patch 'net/bnxt: fix queue stop operation' has been queued to stable release 20.11.5
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Fri Feb 18 13:37:54 CET 2022
Hi,
FYI, your patch has been queued to stable release 20.11.5
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/20/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/c612a4bbf3a2dbf2283eefccda3596c704f8476e
Thanks.
Luca Boccassi
---
>From c612a4bbf3a2dbf2283eefccda3596c704f8476e 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 6a3f710d2e..e6571e3ba7 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -5961,3 +5961,26 @@ int bnxt_hwrm_poll_ver_get(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 934a2056b8..926f32df05 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -297,4 +297,5 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp);
int bnxt_hwrm_ring_stats(struct bnxt *bp, uint32_t cid, int idx,
struct bnxt_ring_stats *stats, bool rx);
int bnxt_hwrm_rx_ring_reset(struct bnxt *bp, int queue_index);
+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 a2feb525c4..aa73bd25e1 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -546,6 +546,9 @@ int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
if (active_queue_cnt == 0) {
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. */
bnxt_hwrm_vnic_cfg(bp, vnic);
--
2.30.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2022-02-18 12:37:39.119172284 +0000
+++ 0025-net-bnxt-fix-queue-stop-operation.patch 2022-02-18 12:37:37.582789508 +0000
@@ -1 +1 @@
-From 3e6fae2b65aa778dba5059ec0bc92102f05adc54 Mon Sep 17 00:00:00 2001
+From c612a4bbf3a2dbf2283eefccda3596c704f8476e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3e6fae2b65aa778dba5059ec0bc92102f05adc54 ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index 568f77a87e..6093407986 100644
+index 6a3f710d2e..e6571e3ba7 100644
@@ -26 +27 @@
-@@ -6262,3 +6262,26 @@ int bnxt_hwrm_config_host_mtu(struct bnxt *bp)
+@@ -5961,3 +5961,26 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp)
@@ -54 +55 @@
-index f8f0556201..8202455bf0 100644
+index 934a2056b8..926f32df05 100644
@@ -57,4 +58,4 @@
-@@ -310,4 +310,5 @@ int bnxt_hwrm_stat_ctx_alloc(struct bnxt *bp, struct bnxt_cp_ring_info *cpr);
- 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);
+@@ -297,4 +297,5 @@ int bnxt_hwrm_poll_ver_get(struct bnxt *bp);
+ int bnxt_hwrm_ring_stats(struct bnxt *bp, uint32_t cid, int idx,
+ struct bnxt_ring_stats *stats, bool rx);
+ int bnxt_hwrm_rx_ring_reset(struct bnxt *bp, int queue_index);
@@ -64 +65 @@
-index 1456f8b54f..c9d99039ad 100644
+index a2feb525c4..aa73bd25e1 100644
@@ -67 +68 @@
-@@ -574,6 +574,9 @@ int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -546,6 +546,9 @@ int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
More information about the stable
mailing list