From patchwork Fri Aug 26 19:45:39 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 111839 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 930EBB6FD7 for ; Sat, 27 Aug 2011 06:36:56 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755187Ab1HZUgv (ORCPT ); Fri, 26 Aug 2011 16:36:51 -0400 Received: from mms3.broadcom.com ([216.31.210.19]:2132 "EHLO MMS3.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754909Ab1HZUgp (ORCPT ); Fri, 26 Aug 2011 16:36:45 -0400 Received: from [10.9.200.131] by MMS3.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.3.2)); Fri, 26 Aug 2011 13:42:02 -0700 X-Server-Uuid: B55A25B1-5D7D-41F8-BC53-C57E7AD3C201 Received: from mail-irva-13.broadcom.com (10.11.16.103) by IRVEXCHHUB01.corp.ad.broadcom.com (10.9.200.131) with Microsoft SMTP Server id 8.2.247.2; Fri, 26 Aug 2011 13:36:35 -0700 Received: from dell (dhcp-10-12-137-172.irv.broadcom.com [10.12.137.172]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 742FC74D03; Fri, 26 Aug 2011 13:36:35 -0700 (PDT) From: "Michael Chan" To: davem@davemloft.net cc: netdev@vger.kernel.org, "Michael Chan" , "Bhanu Prakash Gollapudi" Subject: [PATCH 1/3 net-next] cnic, bnx2fc: Increase maximum FCoE sessions. Date: Fri, 26 Aug 2011 12:45:39 -0700 Message-ID: <1314387941-2126-1-git-send-email-mchan@broadcom.com> X-Mailer: git-send-email 1.5.5.GIT MIME-Version: 1.0 X-WSS-ID: 6246DA903KO10362102-01-01 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Increase it to NVRAM configured limit or 1024 whichever is less. Signed-off-by: Michael Chan Signed-off-by: Bhanu Prakash Gollapudi --- drivers/net/ethernet/broadcom/cnic.c | 14 ++++++++------ drivers/net/ethernet/broadcom/cnic.h | 2 +- drivers/scsi/bnx2fc/bnx2fc.h | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 7698161..73060f4 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c @@ -1177,7 +1177,7 @@ static int cnic_alloc_bnx2x_resc(struct cnic_dev *dev) 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; @@ -2280,7 +2280,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[], *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; @@ -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; 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; @@ -2418,7 +2418,7 @@ static int cnic_bnx2x_fcoe_destroy(struct cnic_dev *dev, struct kwqe *kwqe) 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; @@ -4850,8 +4850,7 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev) 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) @@ -5292,6 +5291,9 @@ static struct cnic_dev *init_bnx2x_cnic(struct net_device *dev) !(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; diff --git a/drivers/net/ethernet/broadcom/cnic.h b/drivers/net/ethernet/broadcom/cnic.h index 7a2928f..15b1c09 100644 --- a/drivers/net/ethernet/broadcom/cnic.h +++ b/drivers/net/ethernet/broadcom/cnic.h @@ -373,7 +373,7 @@ struct bnx2x_bd_chain_next { #define BNX2X_ISCSI_PBL_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 diff --git a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h index 5613e8a..dd335a2 100644 --- a/drivers/scsi/bnx2fc/bnx2fc.h +++ b/drivers/scsi/bnx2fc/bnx2fc.h @@ -81,7 +81,7 @@ #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