[dpdk-stable] patch 'net/bnxt: fix default timeout for getting FW version' has been queued to stable release 19.11.1

luca.boccassi at gmail.com luca.boccassi at gmail.com
Mon Feb 17 18:45:11 CET 2020


Hi,

FYI, your patch has been queued to stable release 19.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/19/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From b4dd49534f61dfe9610e61a626c2422d4ae22144 Mon Sep 17 00:00:00 2001
From: Rahul Gupta <rahul.gupta at broadcom.com>
Date: Thu, 6 Feb 2020 22:03:09 +0530
Subject: [PATCH] net/bnxt: fix default timeout for getting FW version

[ upstream commit 975ff25e7c2d8dfba2c947b5dc23a3bebf51b2d6 ]

Initially when driver is loading, there is no HWRM timeout configured
by FW, the VER_GET command needs use default timeout as 500ms and
while recovering from fatal/non-fatal FW error, it should use timeout
as 50ms.

Fixes: 458f0360e8dc ("net/bnxt: get default HWRM command timeout from FW")

Signed-off-by: Rahul Gupta <rahul.gupta at broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
---
 drivers/net/bnxt/bnxt.h        |  6 ++++--
 drivers/net/bnxt/bnxt_ethdev.c |  4 ++--
 drivers/net/bnxt/bnxt_hwrm.c   | 11 ++++-------
 drivers/net/bnxt/bnxt_hwrm.h   |  2 +-
 4 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
index 9fba7c022f..6422753a81 100644
--- a/drivers/net/bnxt/bnxt.h
+++ b/drivers/net/bnxt/bnxt.h
@@ -600,8 +600,10 @@ struct bnxt {
 	uint16_t			max_resp_len;
 	uint16_t                        hwrm_max_ext_req_len;
 
-	 /* default command timeout value of 50ms */
-#define HWRM_CMD_TIMEOUT		50000
+	 /* default command timeout value of 500ms */
+#define DFLT_HWRM_CMD_TIMEOUT		500000
+	 /* short command timeout value of 50ms */
+#define SHORT_HWRM_CMD_TIMEOUT		50000
 	/* default HWRM request timeout value */
 	uint32_t			hwrm_cmd_timeout;
 
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 778bdf9367..f123c823e3 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -3832,7 +3832,7 @@ static void bnxt_dev_recover(void *arg)
 	bp->flags &= ~BNXT_FLAG_FATAL_ERROR;
 
 	do {
-		rc = bnxt_hwrm_ver_get(bp);
+		rc = bnxt_hwrm_ver_get(bp, SHORT_HWRM_CMD_TIMEOUT);
 		if (rc == 0)
 			break;
 		rte_delay_ms(BNXT_FW_READY_WAIT_INTERVAL);
@@ -4511,7 +4511,7 @@ static int bnxt_init_fw(struct bnxt *bp)
 
 	bp->fw_cap = 0;
 
-	rc = bnxt_hwrm_ver_get(bp);
+	rc = bnxt_hwrm_ver_get(bp, DFLT_HWRM_CMD_TIMEOUT);
 	if (rc)
 		return rc;
 
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 3f603393b5..ad9ca7c6f1 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -100,11 +100,7 @@ static int bnxt_hwrm_send_message(struct bnxt *bp, void *msg,
 	if (bp->flags & BNXT_FLAG_FATAL_ERROR)
 		return 0;
 
-	/* For VER_GET command, set timeout as 50ms */
-	if (rte_cpu_to_le_16(req->req_type) == HWRM_VER_GET)
-		timeout = HWRM_CMD_TIMEOUT;
-	else
-		timeout = bp->hwrm_cmd_timeout;
+	timeout = bp->hwrm_cmd_timeout;
 
 	if (bp->flags & BNXT_FLAG_SHORT_CMD ||
 	    msg_len > bp->max_req_len) {
@@ -948,7 +944,7 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)
 	return rc;
 }
 
-int bnxt_hwrm_ver_get(struct bnxt *bp)
+int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout)
 {
 	int rc = 0;
 	struct hwrm_ver_get_input req = {.req_type = 0 };
@@ -959,6 +955,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
 	uint32_t dev_caps_cfg;
 
 	bp->max_req_len = HWRM_MAX_REQ_LEN;
+	bp->hwrm_cmd_timeout = timeout;
 	HWRM_PREP(req, VER_GET, BNXT_USE_CHIMP_MB);
 
 	req.hwrm_intf_maj = HWRM_VERSION_MAJOR;
@@ -993,7 +990,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
 	/* convert timeout to usec */
 	bp->hwrm_cmd_timeout *= 1000;
 	if (!bp->hwrm_cmd_timeout)
-		bp->hwrm_cmd_timeout = HWRM_CMD_TIMEOUT;
+		bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT;
 
 	if (resp->hwrm_intf_maj_8b != HWRM_VERSION_MAJOR) {
 		PMD_DRV_LOG(ERR, "Unsupported firmware API version\n");
diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index d8d1360f91..2753720aef 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -120,7 +120,7 @@ int bnxt_hwrm_stat_ctx_free(struct bnxt *bp,
 int bnxt_hwrm_ctx_qstats(struct bnxt *bp, uint32_t cid, int idx,
 			 struct rte_eth_stats *stats, uint8_t rx);
 
-int bnxt_hwrm_ver_get(struct bnxt *bp);
+int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout);
 
 int bnxt_hwrm_vnic_alloc(struct bnxt *bp, struct bnxt_vnic_info *vnic);
 int bnxt_hwrm_vnic_cfg(struct bnxt *bp, struct bnxt_vnic_info *vnic);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-02-17 17:00:15.852852104 +0000
+++ 0019-net-bnxt-fix-default-timeout-for-getting-FW-version.patch	2020-02-17 17:00:15.303950399 +0000
@@ -1,15 +1,16 @@
-From 975ff25e7c2d8dfba2c947b5dc23a3bebf51b2d6 Mon Sep 17 00:00:00 2001
+From b4dd49534f61dfe9610e61a626c2422d4ae22144 Mon Sep 17 00:00:00 2001
 From: Rahul Gupta <rahul.gupta at broadcom.com>
 Date: Thu, 6 Feb 2020 22:03:09 +0530
 Subject: [PATCH] net/bnxt: fix default timeout for getting FW version
 
+[ upstream commit 975ff25e7c2d8dfba2c947b5dc23a3bebf51b2d6 ]
+
 Initially when driver is loading, there is no HWRM timeout configured
 by FW, the VER_GET command needs use default timeout as 500ms and
 while recovering from fatal/non-fatal FW error, it should use timeout
 as 50ms.
 
 Fixes: 458f0360e8dc ("net/bnxt: get default HWRM command timeout from FW")
-Cc: stable at dpdk.org
 
 Signed-off-by: Rahul Gupta <rahul.gupta at broadcom.com>
 Reviewed-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
@@ -23,10 +24,10 @@
  4 files changed, 11 insertions(+), 12 deletions(-)
 
 diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h
-index 68786a89bf..e8a30fa310 100644
+index 9fba7c022f..6422753a81 100644
 --- a/drivers/net/bnxt/bnxt.h
 +++ b/drivers/net/bnxt/bnxt.h
-@@ -606,8 +606,10 @@ struct bnxt {
+@@ -600,8 +600,10 @@ struct bnxt {
  	uint16_t			max_resp_len;
  	uint16_t                        hwrm_max_ext_req_len;
  
@@ -40,10 +41,10 @@
  	uint32_t			hwrm_cmd_timeout;
  
 diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
-index 537820960e..7147cc8fe2 100644
+index 778bdf9367..f123c823e3 100644
 --- a/drivers/net/bnxt/bnxt_ethdev.c
 +++ b/drivers/net/bnxt/bnxt_ethdev.c
-@@ -3998,7 +3998,7 @@ static void bnxt_dev_recover(void *arg)
+@@ -3832,7 +3832,7 @@ static void bnxt_dev_recover(void *arg)
  	bp->flags &= ~BNXT_FLAG_FATAL_ERROR;
  
  	do {
@@ -52,7 +53,7 @@
  		if (rc == 0)
  			break;
  		rte_delay_ms(BNXT_FW_READY_WAIT_INTERVAL);
-@@ -4688,7 +4688,7 @@ static int bnxt_init_fw(struct bnxt *bp)
+@@ -4511,7 +4511,7 @@ static int bnxt_init_fw(struct bnxt *bp)
  
  	bp->fw_cap = 0;
  
@@ -62,7 +63,7 @@
  		return rc;
  
 diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
-index f325aff828..96b34317b2 100644
+index 3f603393b5..ad9ca7c6f1 100644
 --- a/drivers/net/bnxt/bnxt_hwrm.c
 +++ b/drivers/net/bnxt/bnxt_hwrm.c
 @@ -100,11 +100,7 @@ static int bnxt_hwrm_send_message(struct bnxt *bp, void *msg,
@@ -78,7 +79,7 @@
  
  	if (bp->flags & BNXT_FLAG_SHORT_CMD ||
  	    msg_len > bp->max_req_len) {
-@@ -949,7 +945,7 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)
+@@ -948,7 +944,7 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp)
  	return rc;
  }
  
@@ -87,7 +88,7 @@
  {
  	int rc = 0;
  	struct hwrm_ver_get_input req = {.req_type = 0 };
-@@ -960,6 +956,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
+@@ -959,6 +955,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
  	uint32_t dev_caps_cfg;
  
  	bp->max_req_len = HWRM_MAX_REQ_LEN;
@@ -95,7 +96,7 @@
  	HWRM_PREP(req, VER_GET, BNXT_USE_CHIMP_MB);
  
  	req.hwrm_intf_maj = HWRM_VERSION_MAJOR;
-@@ -994,7 +991,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
+@@ -993,7 +990,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)
  	/* convert timeout to usec */
  	bp->hwrm_cmd_timeout *= 1000;
  	if (!bp->hwrm_cmd_timeout)


More information about the stable mailing list