summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2009-12-02 18:15:35 +0300
committerDavid S. Miller <davem@davemloft.net>2009-12-03 06:57:19 +0300
commitc7596b79feb3d15bea64007254f77233bda811f4 (patch)
treea427ba9f3b555e2feaae8a00441e16b34a8826b2
parent8f9b3f69944ab7eacb9273b4723087c42b5f4046 (diff)
downloadlinux-c7596b79feb3d15bea64007254f77233bda811f4.tar.xz
cnic: Fix ring I/O address for bnx2x devices.
Old code was initializing the ring producers using an incorrect I/O address. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/cnic.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/cnic.c b/drivers/net/cnic.c
index ee7eb9ee77e2..10c5cc356305 100644
--- a/drivers/net/cnic.c
+++ b/drivers/net/cnic.c
@@ -4131,22 +4131,20 @@ static void cnic_init_rings(struct cnic_dev *dev)
cnic_init_bnx2_rx_ring(dev);
} else if (test_bit(CNIC_F_BNX2X_CLASS, &dev->flags)) {
struct cnic_local *cp = dev->cnic_priv;
- struct cnic_eth_dev *ethdev = cp->ethdev;
u32 cli = BNX2X_ISCSI_CL_ID(CNIC_E1HVN(cp));
union l5cm_specific_data l5_data;
struct ustorm_eth_rx_producers rx_prods = {0};
- void __iomem *doorbell;
- int i;
+ u32 off, i;
rx_prods.bd_prod = 0;
rx_prods.cqe_prod = BNX2X_MAX_RCQ_DESC_CNT;
barrier();
- doorbell = ethdev->io_base2 + BAR_USTRORM_INTMEM +
+ off = BAR_USTRORM_INTMEM +
USTORM_RX_PRODS_OFFSET(CNIC_PORT(cp), cli);
for (i = 0; i < sizeof(struct ustorm_eth_rx_producers) / 4; i++)
- writel(((u32 *) &rx_prods)[i], doorbell + i * 4);
+ CNIC_WR(dev, off + i * 4, ((u32 *) &rx_prods)[i]);
cnic_init_bnx2x_tx_ring(dev);
cnic_init_bnx2x_rx_ring(dev);