X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fethernet%2Fbroadcom%2Fcnic.c;h=73060f4a2f5fa675456c5fa7fd1f9470dadec48e;hb=dc219a2e4812eecdc5438d2a0e2434b03d3efbf2;hp=769816104a6d34e62cfdaa08864ed5b667db36fc;hpb=95148229d32e5c68445a59d981482dba57f91919;p=pandora-kernel.git diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index 769816104a6d..73060f4a2f5f 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;