Commit dc219a2e authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

cnic, bnx2fc: Increase maximum FCoE sessions.

Increase it to NVRAM configured limit or 1024 whichever is less.
Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarBhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 95148229
...@@ -1177,7 +1177,7 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev) ...@@ -1177,7 +1177,7 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev)
cp->fcoe_start_cid = start_cid + MAX_ISCSI_TBL_SZ; 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(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; cp->fcoe_init_cid = ethdev->fcoe_init_cid;
if (!cp->fcoe_init_cid) if (!cp->fcoe_init_cid)
cp->fcoe_init_cid = 0x10; cp->fcoe_init_cid = 0x10;
...@@ -2280,7 +2280,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[], ...@@ -2280,7 +2280,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
*work = 4; *work = 4;
l5_cid = req1->fcoe_conn_id; l5_cid = req1->fcoe_conn_id;
if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) if (l5_cid >= dev->max_fcoe_conn)
goto err_reply; goto err_reply;
l5_cid += BNX2X_FCOE_L5_CID_BASE; l5_cid += BNX2X_FCOE_L5_CID_BASE;
...@@ -2384,7 +2384,7 @@ static int cnic_bnx2x_fcoe_disable(struct cnic_dev *dev, struct kwqe *kwqe) ...@@ -2384,7 +2384,7 @@ static int cnic_bnx2x_fcoe_disable(struct cnic_dev *dev, struct kwqe *kwqe)
req = (struct fcoe_kwqe_conn_enable_disable *) kwqe; req = (struct fcoe_kwqe_conn_enable_disable *) kwqe;
cid = req->context_id; cid = req->context_id;
l5_cid = req->conn_id; l5_cid = req->conn_id;
if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) if (l5_cid >= dev->max_fcoe_conn)
return -EINVAL; return -EINVAL;
l5_cid += BNX2X_FCOE_L5_CID_BASE; l5_cid += BNX2X_FCOE_L5_CID_BASE;
...@@ -2418,7 +2418,7 @@ static int cnic_bnx2x_fcoe_destroy(struct cnic_dev *dev, struct kwqe *kwqe) ...@@ -2418,7 +2418,7 @@ static int cnic_bnx2x_fcoe_destroy(struct cnic_dev *dev, struct kwqe *kwqe)
req = (struct fcoe_kwqe_conn_destroy *) kwqe; req = (struct fcoe_kwqe_conn_destroy *) kwqe;
cid = req->context_id; cid = req->context_id;
l5_cid = req->conn_id; l5_cid = req->conn_id;
if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) if (l5_cid >= dev->max_fcoe_conn)
return -EINVAL; return -EINVAL;
l5_cid += BNX2X_FCOE_L5_CID_BASE; l5_cid += BNX2X_FCOE_L5_CID_BASE;
...@@ -4850,8 +4850,7 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev) ...@@ -4850,8 +4850,7 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev)
return -ENOMEM; return -ENOMEM;
if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) { if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) {
ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, dev->max_fcoe_conn,
BNX2X_FCOE_NUM_CONNECTIONS,
cp->fcoe_start_cid, 0); cp->fcoe_start_cid, 0);
if (ret) if (ret)
...@@ -5292,6 +5291,9 @@ static struct cnic_dev *init_bnx2x_cnic(struct net_device *dev) ...@@ -5292,6 +5291,9 @@ static struct cnic_dev *init_bnx2x_cnic(struct net_device *dev)
!(ethdev->drv_state & CNIC_DRV_STATE_NO_FCOE)) !(ethdev->drv_state & CNIC_DRV_STATE_NO_FCOE))
cdev->max_fcoe_conn = ethdev->max_fcoe_conn; 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); memcpy(cdev->mac_addr, ethdev->iscsi_mac, 6);
cp->cnic_ops = &cnic_bnx2x_ops; cp->cnic_ops = &cnic_bnx2x_ops;
......
...@@ -373,7 +373,7 @@ struct bnx2x_bd_chain_next { ...@@ -373,7 +373,7 @@ struct bnx2x_bd_chain_next {
#define BNX2X_ISCSI_PBL_NOT_CACHED 0xff #define BNX2X_ISCSI_PBL_NOT_CACHED 0xff
#define BNX2X_ISCSI_PDU_HEADER_NOT_CACHED 0xff #define BNX2X_ISCSI_PDU_HEADER_NOT_CACHED 0xff
#define BNX2X_FCOE_NUM_CONNECTIONS 128 #define BNX2X_FCOE_NUM_CONNECTIONS 1024
#define BNX2X_FCOE_L5_CID_BASE MAX_ISCSI_TBL_SZ #define BNX2X_FCOE_L5_CID_BASE MAX_ISCSI_TBL_SZ
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
#define BNX2FC_RQ_WQES_MAX 16 #define BNX2FC_RQ_WQES_MAX 16
#define BNX2FC_CQ_WQES_MAX (BNX2FC_SQ_WQES_MAX + BNX2FC_RQ_WQES_MAX) #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_NUM_MAX_SESS_LOG (ilog2(BNX2FC_NUM_MAX_SESS))
#define BNX2FC_MAX_OUTSTANDING_CMNDS 2048 #define BNX2FC_MAX_OUTSTANDING_CMNDS 2048
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment