patch 'net/hns3: fix crash in SVE Tx' has been queued to stable release 21.11.3

Kevin Traynor ktraynor at redhat.com
Tue Oct 25 17:07:31 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/2197709643a6bb8beb1b31e241cecd0e8c125622

Thanks.

Kevin

---
>From 2197709643a6bb8beb1b31e241cecd0e8c125622 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen at huawei.com>
Date: Mon, 5 Sep 2022 16:59:32 +0800
Subject: [PATCH] net/hns3: fix crash in SVE Tx

[ upstream commit 905487d35fb3d2481cb46ad9bd0e348e9c188911 ]

Currently, the number of Tx send bytes is obtained by accumulating the
length of the batch 'mbuf' packets of the current loop cycle.
Unfortunately, it uses svcntd (which means all lane, regardless of
whether the corresponding lane is valid) which may lead to overflow,
and thus refers to an invalid mbuf.

Because the SVE xmit algorithm applies only to a single mbuf, the
mbuf's data_len is equal pkt_len, so this patch fixes it by using
svaddv_u64(svbool_t pg, svuint64_t data_len) which only adds valid
lanes.

Fixes: fdcd6a3e0246 ("net/hns3: add bytes stats")

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

diff --git a/drivers/net/hns3/hns3_rxtx_vec_sve.c b/drivers/net/hns3/hns3_rxtx_vec_sve.c
index be1fdbcdf0..b0dfb052bb 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_sve.c
+++ b/drivers/net/hns3/hns3_rxtx_vec_sve.c
@@ -436,7 +436,6 @@ hns3_tx_fill_hw_ring_sve(struct hns3_tx_queue *txq,
 
 		/* Increment bytes counter */
-		uint32_t idx;
-		for (idx = 0; idx < svcntd(); idx++)
-			txq->basic_stats.bytes += pkts[idx]->pkt_len;
+		txq->basic_stats.bytes +=
+			(svaddv_u64(pg, data_len) >> HNS3_UINT16_BIT);
 
 		/* update index for next loop */
-- 
2.37.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-10-25 14:19:00.709366359 +0100
+++ 0096-net-hns3-fix-crash-in-SVE-Tx.patch	2022-10-25 14:18:58.537798542 +0100
@@ -1 +1 @@
-From 905487d35fb3d2481cb46ad9bd0e348e9c188911 Mon Sep 17 00:00:00 2001
+From 2197709643a6bb8beb1b31e241cecd0e8c125622 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 905487d35fb3d2481cb46ad9bd0e348e9c188911 ]
+
@@ -18 +19,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list