bnx2: Zero out status block before chip reset.
authorMichael Chan <mchan@broadcom.com>
Fri, 21 Aug 2009 16:20:43 +0000 (16:20 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Aug 2009 00:48:41 +0000 (17:48 -0700)
In case IRQs are shared, we will not mistakenly start processing
the ring based on old status block indices.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2.c

index 756d4b4f0a9fda55053b732bc4562545514fd843..e75b6e94f6521dc26c75901923d5dd0d91e7ff5b 100644 (file)
@@ -4858,6 +4858,7 @@ bnx2_init_chip(struct bnx2 *bp)
        bnx2_reg_wr_ind(bp, BNX2_RBUF_CONFIG2, BNX2_RBUF_CONFIG2_VAL(mtu));
        bnx2_reg_wr_ind(bp, BNX2_RBUF_CONFIG3, BNX2_RBUF_CONFIG3_VAL(mtu));
 
+       memset(bp->bnx2_napi[0].status_blk.msi, 0, bp->status_stats_size);
        for (i = 0; i < BNX2_MAX_MSIX_VEC; i++)
                bp->bnx2_napi[i].last_status_idx = 0;