Commit e6cdfcc5 authored by Parvi Kaustubhi's avatar Parvi Kaustubhi Committed by David S. Miller

enic: reset fetch index

Since we are allowing rx ring size modification, reset fetch index
everytime. Otherwise it could have a stale value that can lead to a null
pointer dereference.
Signed-off-by: default avatarGovindarajulu Varadarajan <gvaradar@cisco.com>
Signed-off-by: default avatarParvi Kaustubhi <pkaustub@cisco.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 59c1cecc
...@@ -139,20 +139,8 @@ void vnic_rq_init(struct vnic_rq *rq, unsigned int cq_index, ...@@ -139,20 +139,8 @@ void vnic_rq_init(struct vnic_rq *rq, unsigned int cq_index,
unsigned int error_interrupt_enable, unsigned int error_interrupt_enable,
unsigned int error_interrupt_offset) unsigned int error_interrupt_offset)
{ {
u32 fetch_index = 0; vnic_rq_init_start(rq, cq_index, 0, 0, error_interrupt_enable,
error_interrupt_offset);
/* Use current fetch_index as the ring starting point */
fetch_index = ioread32(&rq->ctrl->fetch_index);
if (fetch_index == 0xFFFFFFFF) { /* check for hardware gone */
/* Hardware surprise removal: reset fetch_index */
fetch_index = 0;
}
vnic_rq_init_start(rq, cq_index,
fetch_index, fetch_index,
error_interrupt_enable,
error_interrupt_offset);
} }
unsigned int vnic_rq_error_status(struct vnic_rq *rq) unsigned int vnic_rq_error_status(struct vnic_rq *rq)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment