Thread (16 messages) 16 messages, 3 authors, 2014-09-04

Re: [PATCH net-next 12/12] be2net: query max_tx_qs for BE3 super-nic profile from FW

From: Sergei Shtylyov <hidden>
Date: 2014-09-01 13:10:29

Hello.

On 9/1/2014 10:24 AM, Sathya Perla wrote:
From: Suresh Reddy <redacted>
In the BE3 super-nic profile, the max_tx_qs value can vary for each function.
So the driver needs to query this value from FW instead of using the
pre-defined constant BE3_MAX_TX_QS.
Signed-off-by: Suresh Reddy <redacted>
Signed-off-by: Sathya Perla <redacted>
---
  drivers/net/ethernet/emulex/benet/be_main.c |   13 +++++++++++--
  1 files changed, 11 insertions(+), 2 deletions(-)
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index f3235d1..a30156b 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -3324,10 +3324,19 @@ static void BEx_get_resources(struct be_adapter *adapter,
  	 */
  	if (BE2_chip(adapter) || use_sriov ||  (adapter->port_num > 1) ||
  	    !be_physfn(adapter) || (be_is_mc(adapter) &&
-	    !(adapter->function_caps & BE_FUNCTION_CAPS_RSS)))
+	    !(adapter->function_caps & BE_FUNCTION_CAPS_RSS))) {
  		res->max_tx_qs = 1;
-	else
+	} else if (adapter->function_caps & BE_FUNCTION_CAPS_SUPER_NIC) {
+		struct be_resources super_nic_res = {0};
    Empty line is needed after declaration.
+		/* On a SuperNIC profile, the driver needs to use the
+		 * GET_PROFILE_CONFIG cmd to query the per-function TXQ limits
+		 */
+		be_cmd_get_profile_config(adapter, &super_nic_res, 0);
+		/* Some old versions of BE3 FW don't report max_tx_qs value */
+		res->max_tx_qs = super_nic_res.max_tx_qs ? : BE3_MAX_TX_QS;
+	} else {
  		res->max_tx_qs = BE3_MAX_TX_QS;
+	}
WBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help