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: Govindarajulu Varadarajan <gvara...@cisco.com>
Signed-off-by: Parvi Kaustubhi <pkaus...@cisco.com>
---
 drivers/net/ethernet/cisco/enic/vnic_rq.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/cisco/enic/vnic_rq.c 
b/drivers/net/ethernet/cisco/enic/vnic_rq.c
index 36bc2c7..90537d9 100644
--- a/drivers/net/ethernet/cisco/enic/vnic_rq.c
+++ b/drivers/net/ethernet/cisco/enic/vnic_rq.c
@@ -141,18 +141,8 @@ void vnic_rq_init(struct vnic_rq *rq, unsigned int 
cq_index,
 {
        u32 fetch_index = 0;
 
-       /* 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);
+       vnic_rq_init_start(rq, cq_index, 0, 0, error_interrupt_enable,
+                          error_interrupt_offset);
 }
 
 unsigned int vnic_rq_error_status(struct vnic_rq *rq)
-- 
1.8.3.1

Reply via email to