aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/emulex
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h1
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c2
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c22
3 files changed, 14 insertions, 11 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index d266c86a53f7..5b622993ff17 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -110,6 +110,7 @@ static inline char *nic_name(struct pci_dev *pdev)
110#define MAX_RX_POST BE_NAPI_WEIGHT /* Frags posted at a time */ 110#define MAX_RX_POST BE_NAPI_WEIGHT /* Frags posted at a time */
111#define RX_FRAGS_REFILL_WM (RX_Q_LEN - MAX_RX_POST) 111#define RX_FRAGS_REFILL_WM (RX_Q_LEN - MAX_RX_POST)
112 112
113#define MAX_VFS 30 /* Max VFs supported by BE3 FW */
113#define FW_VER_LEN 32 114#define FW_VER_LEN 32
114 115
115struct be_dma_mem { 116struct be_dma_mem {
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 8c63d06ab12b..701b3e9a715b 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -120,7 +120,7 @@ static int be_mcc_compl_process(struct be_adapter *adapter,
120 120
121 if (compl_status == MCC_STATUS_UNAUTHORIZED_REQUEST) { 121 if (compl_status == MCC_STATUS_UNAUTHORIZED_REQUEST) {
122 dev_warn(&adapter->pdev->dev, 122 dev_warn(&adapter->pdev->dev,
123 "opcode %d-%d is not permitted\n", 123 "VF is not privileged to issue opcode %d-%d\n",
124 opcode, subsystem); 124 opcode, subsystem);
125 } else { 125 } else {
126 extd_status = (compl->status >> CQE_STATUS_EXTD_SHIFT) & 126 extd_status = (compl->status >> CQE_STATUS_EXTD_SHIFT) &
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 78b8aa8069f0..111dc8813f68 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2176,8 +2176,7 @@ static uint be_num_rss_want(struct be_adapter *adapter)
2176{ 2176{
2177 u32 num = 0; 2177 u32 num = 0;
2178 if ((adapter->function_caps & BE_FUNCTION_CAPS_RSS) && 2178 if ((adapter->function_caps & BE_FUNCTION_CAPS_RSS) &&
2179 !sriov_want(adapter) && be_physfn(adapter) && 2179 !sriov_want(adapter) && be_physfn(adapter)) {
2180 !be_is_mc(adapter)) {
2181 num = (adapter->be3_native) ? BE3_MAX_RSS_QS : BE2_MAX_RSS_QS; 2180 num = (adapter->be3_native) ? BE3_MAX_RSS_QS : BE2_MAX_RSS_QS;
2182 num = min_t(u32, num, (u32)netif_get_num_default_rss_queues()); 2181 num = min_t(u32, num, (u32)netif_get_num_default_rss_queues());
2183 } 2182 }
@@ -2646,8 +2645,8 @@ static int be_vf_setup(struct be_adapter *adapter)
2646 } 2645 }
2647 2646
2648 for_all_vfs(adapter, vf_cfg, vf) { 2647 for_all_vfs(adapter, vf_cfg, vf) {
2649 status = be_cmd_link_status_query(adapter, NULL, &lnk_speed, 2648 lnk_speed = 1000;
2650 NULL, vf + 1); 2649 status = be_cmd_set_qos(adapter, lnk_speed, vf + 1);
2651 if (status) 2650 if (status)
2652 goto err; 2651 goto err;
2653 vf_cfg->tx_rate = lnk_speed * 10; 2652 vf_cfg->tx_rate = lnk_speed * 10;
@@ -2724,6 +2723,8 @@ static int be_get_config(struct be_adapter *adapter)
2724 if (pos) { 2723 if (pos) {
2725 pci_read_config_word(adapter->pdev, pos + PCI_SRIOV_TOTAL_VF, 2724 pci_read_config_word(adapter->pdev, pos + PCI_SRIOV_TOTAL_VF,
2726 &dev_num_vfs); 2725 &dev_num_vfs);
2726 if (!lancer_chip(adapter))
2727 dev_num_vfs = min_t(u16, dev_num_vfs, MAX_VFS);
2727 adapter->dev_num_vfs = dev_num_vfs; 2728 adapter->dev_num_vfs = dev_num_vfs;
2728 } 2729 }
2729 return 0; 2730 return 0;
@@ -3437,6 +3438,7 @@ static void be_ctrl_cleanup(struct be_adapter *adapter)
3437 if (mem->va) 3438 if (mem->va)
3438 dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va, 3439 dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va,
3439 mem->dma); 3440 mem->dma);
3441 kfree(adapter->pmac_id);
3440} 3442}
3441 3443
3442static int be_ctrl_init(struct be_adapter *adapter) 3444static int be_ctrl_init(struct be_adapter *adapter)
@@ -3473,6 +3475,12 @@ static int be_ctrl_init(struct be_adapter *adapter)
3473 } 3475 }
3474 memset(rx_filter->va, 0, rx_filter->size); 3476 memset(rx_filter->va, 0, rx_filter->size);
3475 3477
3478 /* primary mac needs 1 pmac entry */
3479 adapter->pmac_id = kcalloc(adapter->max_pmac_cnt + 1,
3480 sizeof(*adapter->pmac_id), GFP_KERNEL);
3481 if (!adapter->pmac_id)
3482 return -ENOMEM;
3483
3476 mutex_init(&adapter->mbox_lock); 3484 mutex_init(&adapter->mbox_lock);
3477 spin_lock_init(&adapter->mcc_lock); 3485 spin_lock_init(&adapter->mcc_lock);
3478 spin_lock_init(&adapter->mcc_cq_lock); 3486 spin_lock_init(&adapter->mcc_cq_lock);
@@ -3609,12 +3617,6 @@ static int be_get_initial_config(struct be_adapter *adapter)
3609 else 3617 else
3610 adapter->max_pmac_cnt = BE_VF_UC_PMAC_COUNT; 3618 adapter->max_pmac_cnt = BE_VF_UC_PMAC_COUNT;
3611 3619
3612 /* primary mac needs 1 pmac entry */
3613 adapter->pmac_id = kcalloc(adapter->max_pmac_cnt + 1,
3614 sizeof(u32), GFP_KERNEL);
3615 if (!adapter->pmac_id)
3616 return -ENOMEM;
3617
3618 status = be_cmd_get_cntl_attributes(adapter); 3620 status = be_cmd_get_cntl_attributes(adapter);
3619 if (status) 3621 if (status)
3620 return status; 3622 return status;