patch 'net/hns3: fix next-to-use overflow in simple Tx' has been queued to stable release 21.11.3

Kevin Traynor ktraynor at redhat.com
Tue Oct 25 17:07:33 CEST 2022


Hi,

FYI, your patch has been queued to stable release 21.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/01/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/daf6edc3174b090cae59e226206511428629aaa0

Thanks.

Kevin

---
>From daf6edc3174b090cae59e226206511428629aaa0 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen at huawei.com>
Date: Mon, 5 Sep 2022 16:59:34 +0800
Subject: [PATCH] net/hns3: fix next-to-use overflow in simple Tx

[ upstream commit 76a9c980cf61d8ee21402d1d1d650d2f9d49cfb0 ]

If txq's next-to-use plus nb_pkts equal txq's nb_tx_desc when using
simple xmit algorithm, the txq's next-to-use will equal nb_tx_desc
fter the xmit, this does not cause Tx exceptions, but may affect other
ops that depend on this field, such as tx_descriptor_status.

Fixes: 7ef933908f04 ("net/hns3: add simple Tx path")

Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3 at huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 403f811a51..49b116c1b8 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -4138,5 +4138,5 @@ hns3_xmit_pkts_simple(void *tx_queue,
 
 	txq->tx_bd_ready -= nb_pkts;
-	if (txq->next_to_use + nb_pkts > txq->nb_tx_desc) {
+	if (txq->next_to_use + nb_pkts >= txq->nb_tx_desc) {
 		nb_tx = txq->nb_tx_desc - txq->next_to_use;
 		hns3_tx_fill_hw_ring(txq, tx_pkts, nb_tx);
@@ -4144,6 +4144,8 @@ hns3_xmit_pkts_simple(void *tx_queue,
 	}
 
-	hns3_tx_fill_hw_ring(txq, tx_pkts + nb_tx, nb_pkts - nb_tx);
-	txq->next_to_use += nb_pkts - nb_tx;
+	if (nb_pkts > nb_tx) {
+		hns3_tx_fill_hw_ring(txq, tx_pkts + nb_tx, nb_pkts - nb_tx);
+		txq->next_to_use += nb_pkts - nb_tx;
+	}
 
 	hns3_write_txq_tail_reg(txq, nb_pkts);
-- 
2.37.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-10-25 14:19:00.758120693 +0100
+++ 0098-net-hns3-fix-next-to-use-overflow-in-simple-Tx.patch	2022-10-25 14:18:58.540798553 +0100
@@ -1 +1 @@
-From 76a9c980cf61d8ee21402d1d1d650d2f9d49cfb0 Mon Sep 17 00:00:00 2001
+From daf6edc3174b090cae59e226206511428629aaa0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 76a9c980cf61d8ee21402d1d1d650d2f9d49cfb0 ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org
@@ -21 +22 @@
-index a6481bb68b..ecee5363b2 100644
+index 403f811a51..49b116c1b8 100644
@@ -24 +25 @@
-@@ -4127,5 +4127,5 @@ hns3_xmit_pkts_simple(void *tx_queue,
+@@ -4138,5 +4138,5 @@ hns3_xmit_pkts_simple(void *tx_queue,
@@ -31 +32 @@
-@@ -4133,6 +4133,8 @@ hns3_xmit_pkts_simple(void *tx_queue,
+@@ -4144,6 +4144,8 @@ hns3_xmit_pkts_simple(void *tx_queue,



More information about the stable mailing list