Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cnic, bnx2fc: Increase maximum FCoE sessions.

Increase it to NVRAM configured limit or 1024 whichever is less.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Michael Chan and committed by
David S. Miller
dc219a2e 95148229

+10 -8
+8 -6
drivers/net/ethernet/broadcom/cnic.c
··· 1177 1177 cp->fcoe_start_cid = start_cid + MAX_ISCSI_TBL_SZ; 1178 1178 1179 1179 if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) { 1180 - cp->max_cid_space += BNX2X_FCOE_NUM_CONNECTIONS; 1180 + cp->max_cid_space += dev->max_fcoe_conn; 1181 1181 cp->fcoe_init_cid = ethdev->fcoe_init_cid; 1182 1182 if (!cp->fcoe_init_cid) 1183 1183 cp->fcoe_init_cid = 0x10; ··· 2280 2280 *work = 4; 2281 2281 2282 2282 l5_cid = req1->fcoe_conn_id; 2283 - if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) 2283 + if (l5_cid >= dev->max_fcoe_conn) 2284 2284 goto err_reply; 2285 2285 2286 2286 l5_cid += BNX2X_FCOE_L5_CID_BASE; ··· 2384 2384 req = (struct fcoe_kwqe_conn_enable_disable *) kwqe; 2385 2385 cid = req->context_id; 2386 2386 l5_cid = req->conn_id; 2387 - if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) 2387 + if (l5_cid >= dev->max_fcoe_conn) 2388 2388 return -EINVAL; 2389 2389 2390 2390 l5_cid += BNX2X_FCOE_L5_CID_BASE; ··· 2418 2418 req = (struct fcoe_kwqe_conn_destroy *) kwqe; 2419 2419 cid = req->context_id; 2420 2420 l5_cid = req->conn_id; 2421 - if (l5_cid >= BNX2X_FCOE_NUM_CONNECTIONS) 2421 + if (l5_cid >= dev->max_fcoe_conn) 2422 2422 return -EINVAL; 2423 2423 2424 2424 l5_cid += BNX2X_FCOE_L5_CID_BASE; ··· 4850 4850 return -ENOMEM; 4851 4851 4852 4852 if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id)) { 4853 - ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, 4854 - BNX2X_FCOE_NUM_CONNECTIONS, 4853 + ret = cnic_init_id_tbl(&cp->fcoe_cid_tbl, dev->max_fcoe_conn, 4855 4854 cp->fcoe_start_cid, 0); 4856 4855 4857 4856 if (ret) ··· 5290 5291 if (BNX2X_CHIP_IS_E2_PLUS(cp->chip_id) && 5291 5292 !(ethdev->drv_state & CNIC_DRV_STATE_NO_FCOE)) 5292 5293 cdev->max_fcoe_conn = ethdev->max_fcoe_conn; 5294 + 5295 + if (cdev->max_fcoe_conn > BNX2X_FCOE_NUM_CONNECTIONS) 5296 + cdev->max_fcoe_conn = BNX2X_FCOE_NUM_CONNECTIONS; 5293 5297 5294 5298 memcpy(cdev->mac_addr, ethdev->iscsi_mac, 6); 5295 5299
+1 -1
drivers/net/ethernet/broadcom/cnic.h
··· 373 373 #define BNX2X_ISCSI_PBL_NOT_CACHED 0xff 374 374 #define BNX2X_ISCSI_PDU_HEADER_NOT_CACHED 0xff 375 375 376 - #define BNX2X_FCOE_NUM_CONNECTIONS 128 376 + #define BNX2X_FCOE_NUM_CONNECTIONS 1024 377 377 378 378 #define BNX2X_FCOE_L5_CID_BASE MAX_ISCSI_TBL_SZ 379 379
+1 -1
drivers/scsi/bnx2fc/bnx2fc.h
··· 81 81 #define BNX2FC_RQ_WQES_MAX 16 82 82 #define BNX2FC_CQ_WQES_MAX (BNX2FC_SQ_WQES_MAX + BNX2FC_RQ_WQES_MAX) 83 83 84 - #define BNX2FC_NUM_MAX_SESS 128 84 + #define BNX2FC_NUM_MAX_SESS 1024 85 85 #define BNX2FC_NUM_MAX_SESS_LOG (ilog2(BNX2FC_NUM_MAX_SESS)) 86 86 87 87 #define BNX2FC_MAX_OUTSTANDING_CMNDS 2048