diff options
author | Michael Chan <mchan@broadcom.com> | 2009-12-10 10:40:58 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-11 18:07:55 -0500 |
commit | 4e9c4fd3e7e022c7a5b8bb7cd06bf914b202cfea (patch) | |
tree | 73b54f1aafb6a6da9e6cbb3483105d578bd55a81 /drivers/net/cnic.c | |
parent | 1bcdc32cf4d94442eba79599ce8438ea0b8f78b5 (diff) |
cnic: Zero out status block and Event Queue indices.
To prevent stale indices from causing spurious events when restarting the
bnx2x devices.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cnic.c')
-rw-r--r-- | drivers/net/cnic.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c index a2c33289326a..4332b3a2fafb 100644 --- a/drivers/net/cnic.c +++ b/drivers/net/cnic.c | |||
@@ -1104,6 +1104,8 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev) | |||
1104 | cp->bnx2x_status_blk = cp->status_blk; | 1104 | cp->bnx2x_status_blk = cp->status_blk; |
1105 | cp->bnx2x_def_status_blk = cp->ethdev->irq_arr[1].status_blk; | 1105 | cp->bnx2x_def_status_blk = cp->ethdev->irq_arr[1].status_blk; |
1106 | 1106 | ||
1107 | memset(cp->bnx2x_status_blk, 0, sizeof(struct host_status_block)); | ||
1108 | |||
1107 | cp->l2_rx_ring_size = 15; | 1109 | cp->l2_rx_ring_size = 15; |
1108 | 1110 | ||
1109 | ret = cnic_alloc_l2_rings(dev, 4); | 1111 | ret = cnic_alloc_l2_rings(dev, 4); |
@@ -4295,6 +4297,9 @@ static void cnic_stop_bnx2x_hw(struct cnic_dev *dev) | |||
4295 | offsetof(struct cstorm_status_block_c, | 4297 | offsetof(struct cstorm_status_block_c, |
4296 | index_values[HC_INDEX_C_ISCSI_EQ_CONS]), | 4298 | index_values[HC_INDEX_C_ISCSI_EQ_CONS]), |
4297 | 0); | 4299 | 0); |
4300 | CNIC_WR(dev, BAR_CSTRORM_INTMEM + | ||
4301 | CSTORM_ISCSI_EQ_CONS_OFFSET(cp->func, 0), 0); | ||
4302 | CNIC_WR16(dev, cp->kcq_io_addr, 0); | ||
4298 | cnic_free_resc(dev); | 4303 | cnic_free_resc(dev); |
4299 | } | 4304 | } |
4300 | 4305 | ||