cnic: Eliminate local copy of pfid.
[cascardo/linux.git] / drivers / net / ethernet / broadcom / cnic.c
index 4f8a535..8142480 100644 (file)
@@ -1184,6 +1184,7 @@ error:
 static int cnic_alloc_bnx2x_context(struct cnic_dev *dev)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        int ctx_blk_size = cp->ethdev->ctx_blk_size;
        int total_mem, blks, i;
 
@@ -1201,7 +1202,7 @@ static int cnic_alloc_bnx2x_context(struct cnic_dev *dev)
 
        cp->ctx_blks = blks;
        cp->ctx_blk_size = ctx_blk_size;
-       if (!BNX2X_CHIP_IS_57710(cp->chip_id))
+       if (!CHIP_IS_E1(bp))
                cp->ctx_align = 0;
        else
                cp->ctx_align = ctx_blk_size;
@@ -1231,6 +1232,7 @@ static int cnic_alloc_bnx2x_context(struct cnic_dev *dev)
 static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct cnic_eth_dev *ethdev = cp->ethdev;
        u32 start_cid = ethdev->starting_cid;
        int i, j, n, ret, pages;
@@ -1240,7 +1242,7 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
        cp->iscsi_start_cid = start_cid;
        cp->fcoe_start_cid = start_cid + MAX_ISCSI_TBL_SZ;
 
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                cp->max_cid_space += dev->max_fcoe_conn;
                cp->fcoe_init_cid = ethdev->fcoe_init_cid;
                if (!cp->fcoe_init_cid)
@@ -1288,7 +1290,7 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
        if (ret)
                goto error;
 
-       if (CNIC_SUPPORTS_FCOE(cp)) {
+       if (CNIC_SUPPORTS_FCOE(bp)) {
                ret = cnic_alloc_kcq(dev, &cp->kcq2, true);
                if (ret)
                        goto error;
@@ -1382,6 +1384,7 @@ static int cnic_submit_kwqe_16(struct cnic_dev *dev, u32 cmd, u32 cid,
                                u32 type, union l5cm_specific_data *l5_data)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct l5cm_spe kwqe;
        struct kwqe_16 *kwq[1];
        u16 type_16;
@@ -1389,10 +1392,10 @@ static int cnic_submit_kwqe_16(struct cnic_dev *dev, u32 cmd, u32 cid,
 
        kwqe.hdr.conn_and_cmd_data =
                cpu_to_le32(((cmd << SPE_HDR_CMD_ID_SHIFT) |
-                            BNX2X_HW_CID(cp, cid)));
+                            BNX2X_HW_CID(bp, cid)));
 
        type_16 = (type << SPE_HDR_CONN_TYPE_SHIFT) & SPE_HDR_CONN_TYPE;
-       type_16 |= (cp->pfid << SPE_HDR_FUNCTION_ID_SHIFT) &
+       type_16 |= (bp->pfid << SPE_HDR_FUNCTION_ID_SHIFT) &
                   SPE_HDR_FUNCTION_ID;
 
        kwqe.hdr.type = cpu_to_le16(type_16);
@@ -1430,7 +1433,6 @@ static void cnic_reply_bnx2x_kcqes(struct cnic_dev *dev, int ulp_type,
 static void cnic_bnx2x_set_tcp_options(struct cnic_dev *dev, int time_stamps,
                                       int en_tcp_dack)
 {
-       struct cnic_local *cp = dev->cnic_priv;
        struct bnx2x *bp = netdev_priv(dev->netdev);
        u8 xstorm_flags = XSTORM_L5CM_TCP_FLAGS_WND_SCL_EN;
        u16 tstorm_flags = 0;
@@ -1443,10 +1445,10 @@ static void cnic_bnx2x_set_tcp_options(struct cnic_dev *dev, int time_stamps,
                tstorm_flags |= TSTORM_L5CM_TCP_FLAGS_DELAYED_ACK_EN;
 
        CNIC_WR8(dev, BAR_XSTRORM_INTMEM +
-                XSTORM_ISCSI_TCP_VARS_FLAGS_OFFSET(cp->pfid), xstorm_flags);
+                XSTORM_ISCSI_TCP_VARS_FLAGS_OFFSET(bp->pfid), xstorm_flags);
 
        CNIC_WR16(dev, BAR_TSTRORM_INTMEM +
-                 TSTORM_ISCSI_TCP_VARS_FLAGS_OFFSET(cp->pfid), tstorm_flags);
+                 TSTORM_ISCSI_TCP_VARS_FLAGS_OFFSET(bp->pfid), tstorm_flags);
 }
 
 static int cnic_bnx2x_iscsi_init1(struct cnic_dev *dev, struct kwqe *kwqe)
@@ -1455,7 +1457,7 @@ static int cnic_bnx2x_iscsi_init1(struct cnic_dev *dev, struct kwqe *kwqe)
        struct bnx2x *bp = netdev_priv(dev->netdev);
        struct iscsi_kwqe_init1 *req1 = (struct iscsi_kwqe_init1 *) kwqe;
        int hq_bds, pages;
-       u32 pfid = cp->pfid;
+       u32 pfid = bp->pfid;
 
        cp->num_iscsi_tasks = req1->num_tasks_per_conn;
        cp->num_ccells = req1->num_ccells_per_conn;
@@ -1538,9 +1540,8 @@ static int cnic_bnx2x_iscsi_init1(struct cnic_dev *dev, struct kwqe *kwqe)
 static int cnic_bnx2x_iscsi_init2(struct cnic_dev *dev, struct kwqe *kwqe)
 {
        struct iscsi_kwqe_init2 *req2 = (struct iscsi_kwqe_init2 *) kwqe;
-       struct cnic_local *cp = dev->cnic_priv;
        struct bnx2x *bp = netdev_priv(dev->netdev);
-       u32 pfid = cp->pfid;
+       u32 pfid = bp->pfid;
        struct iscsi_kcqe kcqe;
        struct kcqe *cqes[1];
 
@@ -1679,6 +1680,7 @@ static int cnic_setup_bnx2x_ctx(struct cnic_dev *dev, struct kwqe *wqes[],
                                u32 num)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct iscsi_kwqe_conn_offload1 *req1 =
                        (struct iscsi_kwqe_conn_offload1 *) wqes[0];
        struct iscsi_kwqe_conn_offload2 *req2 =
@@ -1687,11 +1689,11 @@ static int cnic_setup_bnx2x_ctx(struct cnic_dev *dev, struct kwqe *wqes[],
        struct cnic_context *ctx = &cp->ctx_tbl[req1->iscsi_conn_id];
        struct cnic_iscsi *iscsi = ctx->proto.iscsi;
        u32 cid = ctx->cid;
-       u32 hw_cid = BNX2X_HW_CID(cp, cid);
+       u32 hw_cid = BNX2X_HW_CID(bp, cid);
        struct iscsi_context *ictx;
        struct regpair context_addr;
        int i, j, n = 2, n_max;
-       u8 port = CNIC_PORT(cp);
+       u8 port = BP_PORT(bp);
 
        ctx->ctx_flags = 0;
        if (!req2->num_additional_wqes)
@@ -1745,8 +1747,8 @@ static int cnic_setup_bnx2x_ctx(struct cnic_dev *dev, struct kwqe *wqes[],
                XSTORM_ISCSI_CONTEXT_FLAGS_B_INITIAL_R2T;
        ictx->xstorm_st_context.common.ethernet.reserved_vlan_type =
                ETH_P_8021Q;
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id) &&
-               cp->port_mode == CHIP_2_PORT_MODE) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp) &&
+           bp->common.chip_port_mode == CHIP_2_PORT_MODE) {
 
                port = 0;
        }
@@ -1867,6 +1869,7 @@ static int cnic_bnx2x_iscsi_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
        struct iscsi_kwqe_conn_offload1 *req1;
        struct iscsi_kwqe_conn_offload2 *req2;
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct cnic_context *ctx;
        struct iscsi_kcqe kcqe;
        struct kcqe *cqes[1];
@@ -1920,7 +1923,7 @@ static int cnic_bnx2x_iscsi_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
        }
 
        kcqe.completion_status = ISCSI_KCQE_COMPLETION_STATUS_SUCCESS;
-       kcqe.iscsi_conn_context_id = BNX2X_HW_CID(cp, cp->ctx_tbl[l5_cid].cid);
+       kcqe.iscsi_conn_context_id = BNX2X_HW_CID(bp, cp->ctx_tbl[l5_cid].cid);
 
 done:
        cqes[0] = (struct kcqe *) &kcqe;
@@ -1956,6 +1959,7 @@ static int cnic_bnx2x_iscsi_update(struct cnic_dev *dev, struct kwqe *kwqe)
 static int cnic_bnx2x_destroy_ramrod(struct cnic_dev *dev, u32 l5_cid)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct cnic_context *ctx = &cp->ctx_tbl[l5_cid];
        union l5cm_specific_data l5_data;
        int ret;
@@ -1964,7 +1968,7 @@ static int cnic_bnx2x_destroy_ramrod(struct cnic_dev *dev, u32 l5_cid)
        init_waitqueue_head(&ctx->waitq);
        ctx->wait_cond = 0;
        memset(&l5_data, 0, sizeof(l5_data));
-       hw_cid = BNX2X_HW_CID(cp, ctx->cid);
+       hw_cid = BNX2X_HW_CID(bp, ctx->cid);
 
        ret = cnic_submit_kwqe_16(dev, RAMROD_CMD_ID_COMMON_CFC_DEL,
                                  hw_cid, NONE_CONNECTION_TYPE, &l5_data);
@@ -2072,9 +2076,8 @@ static void cnic_init_storm_conn_bufs(struct cnic_dev *dev,
 
 static void cnic_init_bnx2x_mac(struct cnic_dev *dev)
 {
-       struct cnic_local *cp = dev->cnic_priv;
        struct bnx2x *bp = netdev_priv(dev->netdev);
-       u32 pfid = cp->pfid;
+       u32 pfid = bp->pfid;
        u8 *mac = dev->mac_addr;
 
        CNIC_WR8(dev, BAR_XSTRORM_INTMEM +
@@ -2180,7 +2183,7 @@ static int cnic_bnx2x_connect(struct cnic_dev *dev, struct kwqe *wqes[],
        cnic_init_storm_conn_bufs(dev, kwqe1, kwqe3, conn_buf);
 
        CNIC_WR16(dev, BAR_XSTRORM_INTMEM +
-                 XSTORM_ISCSI_LOCAL_VLAN_OFFSET(cp->pfid), csk->vlan_id);
+                 XSTORM_ISCSI_LOCAL_VLAN_OFFSET(bp->pfid), csk->vlan_id);
 
        ret = cnic_submit_kwqe_16(dev, L5CM_RAMROD_CMD_ID_TCP_CONNECT,
                        kwqe1->cid, ISCSI_CONNECTION_TYPE, &l5_data);
@@ -2249,11 +2252,12 @@ static int cnic_bnx2x_fcoe_stat(struct cnic_dev *dev, struct kwqe *kwqe)
        struct fcoe_stat_ramrod_params *fcoe_stat;
        union l5cm_specific_data l5_data;
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        int ret;
        u32 cid;
 
        req = (struct fcoe_kwqe_stat *) kwqe;
-       cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid);
+       cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
 
        fcoe_stat = cnic_get_kwqe_16_data(cp, BNX2X_FCOE_L5_CID_BASE, &l5_data);
        if (!fcoe_stat)
@@ -2272,6 +2276,7 @@ static int cnic_bnx2x_fcoe_init1(struct cnic_dev *dev, struct kwqe *wqes[],
 {
        int ret;
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        u32 cid;
        struct fcoe_init_ramrod_params *fcoe_init;
        struct fcoe_kwqe_init1 *req1;
@@ -2316,7 +2321,7 @@ static int cnic_bnx2x_fcoe_init1(struct cnic_dev *dev, struct kwqe *wqes[],
        fcoe_init->sb_id = HC_INDEX_FCOE_EQ_CONS;
        cp->kcq2.sw_prod_idx = 0;
 
-       cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid);
+       cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
        ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_INIT_FUNC, cid,
                                  FCOE_CONNECTION_TYPE, &l5_data);
        *work = 3;
@@ -2329,6 +2334,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
        int ret = 0;
        u32 cid = -1, l5_cid;
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct fcoe_kwqe_conn_offload1 *req1;
        struct fcoe_kwqe_conn_offload2 *req2;
        struct fcoe_kwqe_conn_offload3 *req3;
@@ -2371,7 +2377,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
 
        fctx = cnic_get_bnx2x_ctx(dev, cid, 1, &ctx_addr);
        if (fctx) {
-               u32 hw_cid = BNX2X_HW_CID(cp, cid);
+               u32 hw_cid = BNX2X_HW_CID(bp, cid);
                u32 val;
 
                val = CDU_RSRVD_VALUE_TYPE_A(hw_cid, CDU_REGION_NUMBER_XCM_AG,
@@ -2395,7 +2401,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
        memcpy(&fcoe_offload->offload_kwqe3, req3, sizeof(*req3));
        memcpy(&fcoe_offload->offload_kwqe4, req4, sizeof(*req4));
 
-       cid = BNX2X_HW_CID(cp, cid);
+       cid = BNX2X_HW_CID(bp, cid);
        ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_OFFLOAD_CONN, cid,
                                  FCOE_CONNECTION_TYPE, &l5_data);
        if (!ret)
@@ -2553,13 +2559,14 @@ static int cnic_bnx2x_fcoe_fw_destroy(struct cnic_dev *dev, struct kwqe *kwqe)
        struct fcoe_kwqe_destroy *req;
        union l5cm_specific_data l5_data;
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        int ret;
        u32 cid;
 
        cnic_bnx2x_delete_wait(dev, MAX_ISCSI_TBL_SZ);
 
        req = (struct fcoe_kwqe_destroy *) kwqe;
-       cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid);
+       cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
 
        memset(&l5_data, 0, sizeof(l5_data));
        ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_DESTROY_FUNC, cid,
@@ -2716,7 +2723,7 @@ static int cnic_submit_bnx2x_iscsi_kwqes(struct cnic_dev *dev,
 static int cnic_submit_bnx2x_fcoe_kwqes(struct cnic_dev *dev,
                                        struct kwqe *wqes[], u32 num_wqes)
 {
-       struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        int i, work, ret;
        u32 opcode;
        struct kwqe *kwqe;
@@ -2724,7 +2731,7 @@ static int cnic_submit_bnx2x_fcoe_kwqes(struct cnic_dev *dev,
        if (!test_bit(CNIC_F_CNIC_UP, &dev->flags))
                return -EAGAIN;         /* bnx2 is down */
 
-       if (!BNX2X_CHIP_IS_E2_PLUS(cp->chip_id))
+       if (!BNX2X_CHIP_IS_E2_PLUS(bp))
                return -EINVAL;
 
        for (i = 0; i < num_wqes; ) {
@@ -3040,8 +3047,8 @@ static irqreturn_t cnic_irq(int irq, void *dev_instance)
 static inline void cnic_ack_bnx2x_int(struct cnic_dev *dev, u8 id, u8 storm,
                                      u16 index, u8 op, u8 update)
 {
-       struct cnic_local *cp = dev->cnic_priv;
-       u32 hc_addr = (HC_REG_COMMAND_REG + CNIC_PORT(cp) * 32 +
+       struct bnx2x *bp = netdev_priv(dev->netdev);
+       u32 hc_addr = (HC_REG_COMMAND_REG + BP_PORT(bp) * 32 +
                       COMMAND_REG_INT_ACK);
        struct igu_ack_register igu_ack;
 
@@ -4218,10 +4225,9 @@ static void cnic_cm_stop_bnx2x_hw(struct cnic_dev *dev)
 
 static int cnic_cm_init_bnx2x_hw(struct cnic_dev *dev)
 {
-       struct cnic_local *cp = dev->cnic_priv;
        struct bnx2x *bp = netdev_priv(dev->netdev);
-       u32 pfid = cp->pfid;
-       u32 port = CNIC_PORT(cp);
+       u32 pfid = bp->pfid;
+       u32 port = BP_PORT(bp);
 
        cnic_init_bnx2x_mac(dev);
        cnic_bnx2x_set_tcp_options(dev, 0, 1);
@@ -4902,6 +4908,7 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev,
                                    struct client_init_ramrod_data *data)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct cnic_uio_dev *udev = cp->udev;
        union eth_tx_bd_types *txbd = (union eth_tx_bd_types *) udev->l2_ring;
        dma_addr_t buf_map, ring_map = udev->l2_ring_map;
@@ -4930,7 +4937,7 @@ static void cnic_init_bnx2x_tx_ring(struct cnic_dev *dev,
                start_bd->general_data &= ~ETH_TX_START_BD_PARSE_NBDS;
                start_bd->general_data |= (1 << ETH_TX_START_BD_HDR_NBDS_SHIFT);
 
-               if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id))
+               if (BNX2X_CHIP_IS_E2_PLUS(bp))
                        pbd_e2->parsing_data = (UNICAST_ADDRESS <<
                                ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT);
                else
@@ -4967,6 +4974,7 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev,
                                    struct client_init_ramrod_data *data)
 {
        struct cnic_local *cp = dev->cnic_priv;
+       struct bnx2x *bp = netdev_priv(dev->netdev);
        struct cnic_uio_dev *udev = cp->udev;
        struct eth_rx_bd *rxbd = (struct eth_rx_bd *) (udev->l2_ring +
                                BNX2_PAGE_SIZE);
@@ -4975,7 +4983,7 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev,
        struct host_sp_status_block *sb = cp->bnx2x_def_status_blk;
        int i;
        u32 cli = cp->ethdev->iscsi_l2_client_id;
-       int cl_qzone_id = BNX2X_CL_QZONE_ID(cp, cli);
+       int cl_qzone_id = BNX2X_CL_QZONE_ID(bp, cli);
        u32 val;
        dma_addr_t ring_map = udev->l2_ring_map;
 
@@ -4984,7 +4992,7 @@ static void cnic_init_bnx2x_rx_ring(struct cnic_dev *dev,
        data->general.activate_flg = 1;
        data->general.sp_client_id = cli;
        data->general.mtu = cpu_to_le16(cp->l2_single_buf_size - 14);
-       data->general.func_id = cp->pfid;
+       data->general.func_id = bp->pfid;
 
        for (i = 0; i < BNX2X_MAX_RX_DESC_CNT; i++, rxbd++) {
                dma_addr_t buf_map;
@@ -5034,13 +5042,13 @@ static void cnic_init_bnx2x_kcq(struct cnic_dev *dev)
 {
        struct cnic_local *cp = dev->cnic_priv;
        struct bnx2x *bp = netdev_priv(dev->netdev);
-       u32 pfid = cp->pfid;
+       u32 pfid = bp->pfid;
 
        cp->kcq1.io_addr = BAR_CSTRORM_INTMEM +
                           CSTORM_ISCSI_EQ_PROD_OFFSET(pfid, 0);
        cp->kcq1.sw_prod_idx = 0;
 
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                struct host_hc_status_block_e2 *sb = cp->status_blk.gen;
 
                cp->kcq1.hw_prod_idx_ptr =
@@ -5056,7 +5064,7 @@ static void cnic_init_bnx2x_kcq(struct cnic_dev *dev)
                        &sb->sb.running_index[SM_RX_ID];
        }
 
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                struct host_hc_status_block_e2 *sb = cp->status_blk.gen;
 
                cp->kcq2.io_addr = BAR_USTRORM_INTMEM +
@@ -5078,12 +5086,10 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev)
        u32 pfid;
 
        dev->stats_addr = ethdev->addr_drv_info_to_mcp;
-       cp->port_mode = bp->common.chip_port_mode;
-       cp->pfid = bp->pfid;
        cp->func = bp->pf_num;
 
        func = CNIC_FUNC(cp);
-       pfid = cp->pfid;
+       pfid = bp->pfid;
 
        ret = cnic_init_id_tbl(&cp->cid_tbl, MAX_ISCSI_TBL_SZ,
                               cp->iscsi_start_cid, 0);
@@ -5091,7 +5097,7 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev)
        if (ret)
                return -ENOMEM;
 
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, dev->max_fcoe_conn,
                                        cp->fcoe_start_cid, 0);
 
@@ -5173,12 +5179,12 @@ static void cnic_init_rings(struct cnic_dev *dev)
                rx_prods.cqe_prod = BNX2X_MAX_RCQ_DESC_CNT;
                barrier();
 
-               cl_qzone_id = BNX2X_CL_QZONE_ID(cp, cli);
+               cl_qzone_id = BNX2X_CL_QZONE_ID(bp, cli);
 
                off = BAR_USTRORM_INTMEM +
-                       (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id) ?
+                       (BNX2X_CHIP_IS_E2_PLUS(bp) ?
                         USTORM_RX_PRODS_E2_OFFSET(cl_qzone_id) :
-                        USTORM_RX_PRODS_E1X_OFFSET(CNIC_PORT(cp), cli));
+                        USTORM_RX_PRODS_E1X_OFFSET(BP_PORT(bp), cli));
 
                for (i = 0; i < sizeof(struct ustorm_eth_rx_producers) / 4; i++)
                        CNIC_WR(dev, off + i * 4, ((u32 *) &rx_prods)[i]);
@@ -5365,7 +5371,7 @@ static void cnic_stop_bnx2x_hw(struct cnic_dev *dev)
 
        cnic_free_irq(dev);
 
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                idx_off = offsetof(struct hc_status_block_e2, index_values) +
                          (hc_index * sizeof(u16));
 
@@ -5382,7 +5388,7 @@ static void cnic_stop_bnx2x_hw(struct cnic_dev *dev)
 
        *cp->kcq1.hw_prod_idx_ptr = 0;
        CNIC_WR(dev, BAR_CSTRORM_INTMEM +
-               CSTORM_ISCSI_EQ_CONS_OFFSET(cp->pfid, 0), 0);
+               CSTORM_ISCSI_EQ_CONS_OFFSET(bp->pfid, 0), 0);
        CNIC_WR16(dev, cp->kcq1.io_addr, 0);
        cnic_free_resc(dev);
 }
@@ -5556,7 +5562,7 @@ static struct cnic_dev *init_bnx2x_cnic(struct net_device *dev)
 
        if (!(ethdev->drv_state & CNIC_DRV_STATE_NO_ISCSI))
                cdev->max_iscsi_conn = ethdev->max_iscsi_conn;
-       if (CNIC_SUPPORTS_FCOE(cp)) {
+       if (CNIC_SUPPORTS_FCOE(bp)) {
                cdev->max_fcoe_conn = ethdev->max_fcoe_conn;
                cdev->max_fcoe_exchanges = ethdev->max_fcoe_exchanges;
        }
@@ -5576,7 +5582,7 @@ static struct cnic_dev *init_bnx2x_cnic(struct net_device *dev)
        cp->stop_cm = cnic_cm_stop_bnx2x_hw;
        cp->enable_int = cnic_enable_bnx2x_int;
        cp->disable_int_sync = cnic_disable_bnx2x_int_sync;
-       if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
+       if (BNX2X_CHIP_IS_E2_PLUS(bp)) {
                cp->ack_int = cnic_ack_bnx2x_e2_msix;
                cp->arm_int = cnic_arm_bnx2x_e2_msix;
        } else {