cp->fcoe_start_cid = start_cid + MAX_ISCSI_TBL_SZ;
 
        if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
-               cp->max_cid_space += BNX2X_FCOE_NUM_CONNECTIONS;
+               cp->max_cid_space += dev->max_fcoe_conn;
                cp->fcoe_init_cid = ethdev->fcoe_init_cid;
                if (!cp->fcoe_init_cid)
                        cp->fcoe_init_cid = 0x10;
        *work = 4;
 
        l5_cid = req1->fcoe_conn_id;
-       if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS)
+       if (l5_cid >= dev->max_fcoe_conn)
                goto err_reply;
 
        l5_cid += BNX2X_FCOE_L5_CID_BASE;
        req = (struct fcoe_kwqe_conn_enable_disable *) kwqe;
        cid = req->context_id;
        l5_cid = req->conn_id;
-       if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS)
+       if (l5_cid >= dev->max_fcoe_conn)
                return -EINVAL;
 
        l5_cid += BNX2X_FCOE_L5_CID_BASE;
        req = (struct fcoe_kwqe_conn_destroy *) kwqe;
        cid = req->context_id;
        l5_cid = req->conn_id;
-       if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS)
+       if (l5_cid >= dev->max_fcoe_conn)
                return -EINVAL;
 
        l5_cid += BNX2X_FCOE_L5_CID_BASE;
                return -ENOMEM;
 
        if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
-               ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl,
-                                       BNX2X_FCOE_NUM_CONNECTIONS,
+               ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, dev->max_fcoe_conn,
                                        cp->fcoe_start_cid, 0);
 
                if (ret)
            !(ethdev->drv_state & CNIC_DRV_STATE_NO_FCOE))
                cdev->max_fcoe_conn = ethdev->max_fcoe_conn;
 
+       if (cdev->max_fcoe_conn > BNX2X_FCOE_NUM_CONNECTIONS)
+               cdev->max_fcoe_conn = BNX2X_FCOE_NUM_CONNECTIONS;
+
        memcpy(cdev->mac_addr, ethdev->iscsi_mac, 6);
 
        cp->cnic_ops = &cnic_bnx2x_ops;
 
 #define BNX2FC_RQ_WQES_MAX     16
 #define BNX2FC_CQ_WQES_MAX     (BNX2FC_SQ_WQES_MAX + BNX2FC_RQ_WQES_MAX)
 
-#define BNX2FC_NUM_MAX_SESS    128
+#define BNX2FC_NUM_MAX_SESS    1024
 #define BNX2FC_NUM_MAX_SESS_LOG        (ilog2(BNX2FC_NUM_MAX_SESS))
 
 #define BNX2FC_MAX_OUTSTANDING_CMNDS   2048