patch 'net/bnxt: fix queue stop operation' has been queued to stable release 21.11.1

Kevin Traynor ktraynor at redhat.com
Mon Feb 21 16:34:01 CET 2022


Hi,

FYI, your patch has been queued to stable release 21.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/26/22. 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.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/880ed791599d25090421fc6d41b204dd85edf6ae

Thanks.

Kevin

---
>From 880ed791599d25090421fc6d41b204dd85edf6ae Mon Sep 17 00:00:00 2001
From: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Date: Tue, 4 Jan 2022 14:08:09 +0530
Subject: [PATCH] net/bnxt: fix queue stop operation

[ upstream commit 3e6fae2b65aa778dba5059ec0bc92102f05adc54 ]

When there are no active Rx queues(i.e when all queues have been
stopped), clear the RSS redirection table of the VNIC on Thor.

Fixes: 9b63c6fd70e3 ("net/bnxt: support Rx/Tx queue start/stop")

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil at broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur at broadcom.com>
Reviewed-by: Lance Richardson <lance.richardson at broadcom.com>
---
 drivers/net/bnxt/bnxt_hwrm.c | 23 +++++++++++++++++++++++
 drivers/net/bnxt/bnxt_hwrm.h |  1 +
 drivers/net/bnxt/bnxt_rxq.c  |  3 +++
 3 files changed, 27 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 568f77a87e..6093407986 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -6263,2 +6263,25 @@ int bnxt_hwrm_config_host_mtu(struct bnxt *bp)
 	return rc;
 }
+
+int
+bnxt_vnic_rss_clear_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+{
+	struct hwrm_vnic_rss_cfg_output *resp = bp->hwrm_cmd_resp_addr;
+	struct hwrm_vnic_rss_cfg_input req = {0};
+	int nr_ctxs = vnic->num_lb_ctxts;
+	int i, rc = 0;
+
+	for (i = 0; i < nr_ctxs; i++) {
+		HWRM_PREP(&req, HWRM_VNIC_RSS_CFG, BNXT_USE_CHIMP_MB);
+
+		req.rss_ctx_idx = rte_cpu_to_le_16(vnic->fw_grp_ids[i]);
+		req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id);
+
+		rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
+
+		HWRM_CHECK_RESULT();
+		HWRM_UNLOCK();
+	}
+
+	return rc;
+}
diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index f8f0556201..8202455bf0 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -311,3 +311,4 @@ void bnxt_free_hwrm_tx_ring(struct bnxt *bp, int queue_index);
 int bnxt_alloc_hwrm_tx_ring(struct bnxt *bp, int queue_index);
 int bnxt_hwrm_config_host_mtu(struct bnxt *bp);
+int bnxt_vnic_rss_clear_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic);
 #endif
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 1456f8b54f..c9d99039ad 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -575,4 +575,7 @@ int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 			uint16_t saved_mru = vnic->mru;
 
+			/* clear RSS setting on vnic. */
+			bnxt_vnic_rss_clear_p5(bp, vnic);
+
 			vnic->mru = 0;
 			/* Reconfigure default receive ring and MRU. */
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-02-21 15:22:45.783220579 +0000
+++ 0052-net-bnxt-fix-queue-stop-operation.patch	2022-02-21 15:22:44.117704184 +0000
@@ -1 +1 @@
-From 3e6fae2b65aa778dba5059ec0bc92102f05adc54 Mon Sep 17 00:00:00 2001
+From 880ed791599d25090421fc6d41b204dd85edf6ae Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3e6fae2b65aa778dba5059ec0bc92102f05adc54 ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list