forked from Minki/linux
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>
This commit is contained in:
parent
8f9b3f6994
commit
c7596b79fe
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user