patch 'net/cnxk: fix DF bit in vector mode' has been queued to stable release 21.11.3

Kevin Traynor ktraynor at redhat.com
Tue Oct 25 17:07:09 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/1747e299c284bb61fb6d8ce11290285240605e4b

Thanks.

Kevin

---
>From 1747e299c284bb61fb6d8ce11290285240605e4b Mon Sep 17 00:00:00 2001
From: Hanumanth Pothula <hpothula at marvell.com>
Date: Thu, 1 Sep 2022 11:58:02 +0530
Subject: [PATCH] net/cnxk: fix DF bit in vector mode

[ upstream commit 8a96c7f8a5d7a394eafc94c28a6d30a98a855118 ]

In vector mode, DF bit is not programmed correctly, as the
return value of vsetq_lane_u64() is ignored, which actually
contains the updated value, leading HW to free mbufs though
NIX_TX_OFFLOAD_MBUF_NOFF_F flag is set.

Hence, save return value of vsetq_lane_u64() appropriately so
that DF bit is programmed correctly.

Fixes: 862e28128707 ("net/cnxk: add vector Tx for CN9K")
Fixes: f71b7dbbf04b ("net/cnxk: add vector Tx for CN10K")

Signed-off-by: Hanumanth Pothula <hpothula at marvell.com>
---
 drivers/net/cnxk/cn10k_tx.h | 8 ++++----
 drivers/net/cnxk/cn9k_tx.h  | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index 6704d2d655..a28c9a7e22 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -2351,5 +2351,5 @@ again:
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf0))
-				vsetq_lane_u64(0x80000, xmask01, 0);
+				xmask01 = vsetq_lane_u64(0x80000, xmask01, 0);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -2358,5 +2358,5 @@ again:
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf1))
-				vsetq_lane_u64(0x80000, xmask01, 1);
+				xmask01 = vsetq_lane_u64(0x80000, xmask01, 1);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -2365,5 +2365,5 @@ again:
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf2))
-				vsetq_lane_u64(0x80000, xmask23, 0);
+				xmask23 = vsetq_lane_u64(0x80000, xmask23, 0);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -2372,5 +2372,5 @@ again:
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf3))
-				vsetq_lane_u64(0x80000, xmask23, 1);
+				xmask23 = vsetq_lane_u64(0x80000, xmask23, 1);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
index 8167313a15..66a59ab533 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -1626,5 +1626,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf0))
-				vsetq_lane_u64(0x80000, xmask01, 0);
+				xmask01 = vsetq_lane_u64(0x80000, xmask01, 0);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -1633,5 +1633,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf1))
-				vsetq_lane_u64(0x80000, xmask01, 1);
+				xmask01 = vsetq_lane_u64(0x80000, xmask01, 1);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -1640,5 +1640,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf2))
-				vsetq_lane_u64(0x80000, xmask23, 0);
+				xmask23 = vsetq_lane_u64(0x80000, xmask23, 0);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
@@ -1647,5 +1647,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 			if (cnxk_nix_prefree_seg((struct rte_mbuf *)mbuf3))
-				vsetq_lane_u64(0x80000, xmask23, 1);
+				xmask23 = vsetq_lane_u64(0x80000, xmask23, 1);
 			else
 				RTE_MEMPOOL_CHECK_COOKIES(
-- 
2.37.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-10-25 14:19:00.228250825 +0100
+++ 0074-net-cnxk-fix-DF-bit-in-vector-mode.patch	2022-10-25 14:18:58.503798421 +0100
@@ -1 +1 @@
-From 8a96c7f8a5d7a394eafc94c28a6d30a98a855118 Mon Sep 17 00:00:00 2001
+From 1747e299c284bb61fb6d8ce11290285240605e4b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8a96c7f8a5d7a394eafc94c28a6d30a98a855118 ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -25 +26 @@
-index b87fb29951..492942de15 100644
+index 6704d2d655..a28c9a7e22 100644
@@ -28 +29 @@
-@@ -2603,5 +2603,5 @@ again:
+@@ -2351,5 +2351,5 @@ again:
@@ -35 +36 @@
-@@ -2610,5 +2610,5 @@ again:
+@@ -2358,5 +2358,5 @@ again:
@@ -42 +43 @@
-@@ -2617,5 +2617,5 @@ again:
+@@ -2365,5 +2365,5 @@ again:
@@ -49 +50 @@
-@@ -2624,5 +2624,5 @@ again:
+@@ -2372,5 +2372,5 @@ again:
@@ -57 +58 @@
-index 6ce81f5c96..a609814dfb 100644
+index 8167313a15..66a59ab533 100644
@@ -60 +61 @@
-@@ -1706,5 +1706,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1626,5 +1626,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -67 +68 @@
-@@ -1713,5 +1713,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1633,5 +1633,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -74 +75 @@
-@@ -1720,5 +1720,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1640,5 +1640,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -81 +82 @@
-@@ -1727,5 +1727,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1647,5 +1647,5 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,



More information about the stable mailing list