* [net-next PATCH 1/5] be2net: create RSS rings even in multi-channel configs
[not found] <1346222264-20819-1-git-send-email-sathya.perla@emulex.com>
@ 2012-08-29 6:37 ` Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 2/5] be2net: fix max VFs reported by HW Sathya Perla
` (3 subsequent siblings)
4 siblings, 0 replies; 5+ messages in thread
From: Sathya Perla @ 2012-08-29 6:37 UTC (permalink / raw)
To: netdev; +Cc: Sathya Perla
Changes from commit df505e were incorrectly over-written by commit 10ef9ab.
Fixing the same.
Change log of the original fix:
Currently RSS rings are not created in a multi-channel config.
RSS rings can be created on one (out of four) interfaces per port in a
multi-channel config. Doing this insulates the driver from a FW bug wherin
multi-channel config is wrongly reported even when not enabled. This also
helps performance in a multi-channel config, as one interface per port gets
RSS rings.
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
drivers/net/ethernet/emulex/benet/be_main.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 90a903d8..d86d25c 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)
{
u32 num = 0;
if ((adapter->function_caps & BE_FUNCTION_CAPS_RSS) &&
- !sriov_want(adapter) && be_physfn(adapter) &&
- !be_is_mc(adapter)) {
+ !sriov_want(adapter) && be_physfn(adapter)) {
num = (adapter->be3_native) ? BE3_MAX_RSS_QS : BE2_MAX_RSS_QS;
num = min_t(u32, num, (u32)netif_get_num_default_rss_queues());
}
--
1.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [net-next PATCH 2/5] be2net: fix max VFs reported by HW
[not found] <1346222264-20819-1-git-send-email-sathya.perla@emulex.com>
2012-08-29 6:37 ` [net-next PATCH 1/5] be2net: create RSS rings even in multi-channel configs Sathya Perla
@ 2012-08-29 6:37 ` Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 3/5] be2net: fix FW default for VF tx-rate Sathya Perla
` (2 subsequent siblings)
4 siblings, 0 replies; 5+ messages in thread
From: Sathya Perla @ 2012-08-29 6:37 UTC (permalink / raw)
To: netdev; +Cc: Vasundhara Volam, Sathya Perla
From: Vasundhara Volam <vasundhara.volam@emulex.com>
BE3 FW allocates VF resources for upto 30 VFs per PF while a max value of 32
may be reported via PCI config space. Fix this in the driver.
Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
drivers/net/ethernet/emulex/benet/be.h | 1 +
drivers/net/ethernet/emulex/benet/be_main.c | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index d266c86..5b622993 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)
#define MAX_RX_POST BE_NAPI_WEIGHT /* Frags posted at a time */
#define RX_FRAGS_REFILL_WM (RX_Q_LEN - MAX_RX_POST)
+#define MAX_VFS 30 /* Max VFs supported by BE3 FW */
#define FW_VER_LEN 32
struct be_dma_mem {
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index d86d25c..def2f66 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2723,6 +2723,8 @@ static int be_get_config(struct be_adapter *adapter)
if (pos) {
pci_read_config_word(adapter->pdev, pos + PCI_SRIOV_TOTAL_VF,
&dev_num_vfs);
+ if (!lancer_chip(adapter))
+ dev_num_vfs = min_t(u16, dev_num_vfs, MAX_VFS);
adapter->dev_num_vfs = dev_num_vfs;
}
return 0;
--
1.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [net-next PATCH 3/5] be2net: fix FW default for VF tx-rate
[not found] <1346222264-20819-1-git-send-email-sathya.perla@emulex.com>
2012-08-29 6:37 ` [net-next PATCH 1/5] be2net: create RSS rings even in multi-channel configs Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 2/5] be2net: fix max VFs reported by HW Sathya Perla
@ 2012-08-29 6:37 ` Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 4/5] be2net: fixup malloc/free of adapter->pmac_id Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 5/5] be2net: modify log msg for lack of privilege error Sathya Perla
4 siblings, 0 replies; 5+ messages in thread
From: Sathya Perla @ 2012-08-29 6:37 UTC (permalink / raw)
To: netdev; +Cc: Vasundhara Volam, Sathya Perla
From: Vasundhara Volam <vasundhara.volam@emulex.com>
BE3 FW initializes VF tx-rate to 100Mbps. Fix this to 10Gbps.
Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
drivers/net/ethernet/emulex/benet/be_main.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index def2f66..1494f2fc 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -2645,8 +2645,8 @@ static int be_vf_setup(struct be_adapter *adapter)
}
for_all_vfs(adapter, vf_cfg, vf) {
- status = be_cmd_link_status_query(adapter, NULL, &lnk_speed,
- NULL, vf + 1);
+ lnk_speed = 1000;
+ status = be_cmd_set_qos(adapter, lnk_speed, vf + 1);
if (status)
goto err;
vf_cfg->tx_rate = lnk_speed * 10;
--
1.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [net-next PATCH 4/5] be2net: fixup malloc/free of adapter->pmac_id
[not found] <1346222264-20819-1-git-send-email-sathya.perla@emulex.com>
` (2 preceding siblings ...)
2012-08-29 6:37 ` [net-next PATCH 3/5] be2net: fix FW default for VF tx-rate Sathya Perla
@ 2012-08-29 6:37 ` Sathya Perla
2012-08-29 6:37 ` [net-next PATCH 5/5] be2net: modify log msg for lack of privilege error Sathya Perla
4 siblings, 0 replies; 5+ messages in thread
From: Sathya Perla @ 2012-08-29 6:37 UTC (permalink / raw)
To: netdev; +Cc: Sathya Perla
Free was missing and kcalloc() is better placed in be_ctrl_init()
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
drivers/net/ethernet/emulex/benet/be_main.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 1494f2fc..6d139d6 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3438,6 +3438,7 @@ static void be_ctrl_cleanup(struct be_adapter *adapter)
if (mem->va)
dma_free_coherent(&adapter->pdev->dev, mem->size, mem->va,
mem->dma);
+ kfree(adapter->pmac_id);
}
static int be_ctrl_init(struct be_adapter *adapter)
@@ -3474,6 +3475,12 @@ static int be_ctrl_init(struct be_adapter *adapter)
}
memset(rx_filter->va, 0, rx_filter->size);
+ /* primary mac needs 1 pmac entry */
+ adapter->pmac_id = kcalloc(adapter->max_pmac_cnt + 1,
+ sizeof(*adapter->pmac_id), GFP_KERNEL);
+ if (!adapter->pmac_id)
+ return -ENOMEM;
+
mutex_init(&adapter->mbox_lock);
spin_lock_init(&adapter->mcc_lock);
spin_lock_init(&adapter->mcc_cq_lock);
@@ -3610,12 +3617,6 @@ static int be_get_initial_config(struct be_adapter *adapter)
else
adapter->max_pmac_cnt = BE_VF_UC_PMAC_COUNT;
- /* primary mac needs 1 pmac entry */
- adapter->pmac_id = kcalloc(adapter->max_pmac_cnt + 1,
- sizeof(u32), GFP_KERNEL);
- if (!adapter->pmac_id)
- return -ENOMEM;
-
status = be_cmd_get_cntl_attributes(adapter);
if (status)
return status;
--
1.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [net-next PATCH 5/5] be2net: modify log msg for lack of privilege error
[not found] <1346222264-20819-1-git-send-email-sathya.perla@emulex.com>
` (3 preceding siblings ...)
2012-08-29 6:37 ` [net-next PATCH 4/5] be2net: fixup malloc/free of adapter->pmac_id Sathya Perla
@ 2012-08-29 6:37 ` Sathya Perla
4 siblings, 0 replies; 5+ messages in thread
From: Sathya Perla @ 2012-08-29 6:37 UTC (permalink / raw)
To: netdev; +Cc: Vasundhara Volam, Sathya Perla
From: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
---
drivers/net/ethernet/emulex/benet/be_cmds.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 7fac97b..fc68ca0 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,
if (compl_status == MCC_STATUS_UNAUTHORIZED_REQUEST) {
dev_warn(&adapter->pdev->dev,
- "opcode %d-%d is not permitted\n",
+ "VF is not privileged to issue opcode %d-%d\n",
opcode, subsystem);
} else {
extd_status = (compl->status >> CQE_STATUS_EXTD_SHIFT) &
--
1.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread