patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9
@ 2023-06-15  1:31 luca.boccassi
  2023-06-15  1:31 ` patch 'examples/ip_pipeline: fix build with GCC 13' " luca.boccassi
                   ` (61 more replies)
  0 siblings, 62 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:31 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 3f1b6c3280cf9eb0f9ac0b41cdc4a3d92b5a01f9 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Fri, 14 Apr 2023 16:25:22 +0100
Subject: [PATCH] kni: fix build with Linux 6.3

[ upstream commit 5f34cc454df420b9b2da8deb949fb76cba058b87 ]

KNI calls `get_user_pages_remote()` API which is using `FOLL_TOUCH`
flag, but `FOLL_TOUCH` is no more in public headers since v6.3,
causing a build error.

`FOLL_*` defines in Linux kernel first moved to another header [1],
later some of them moved to memory subsystem internal header [2] for 6.3

`get_user_pages_remote()` already sets `FOLL_TOUCH` internally,
no need to set this flag externally anyway, moving flag from the call
altogether.

[1]
Commit b5054174ac7c ("mm: move FOLL_* defs to mm_types.h")

[2]
Commit 2c2241081f7d ("mm/gup: move private gup FOLL_ flags to internal.h")

Fixes: e73831dc6c26 ("kni: support userspace VA")

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 kernel/linux/kni/kni_dev.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
index e8633486ee..6e64380d06 100644
--- a/kernel/linux/kni/kni_dev.h
+++ b/kernel/linux/kni/kni_dev.h
@@ -105,11 +105,9 @@ static inline phys_addr_t iova_to_phys(struct task_struct *tsk,
 
 	/* Read one page struct info */
 #ifdef HAVE_TSK_IN_GUP
-	ret = get_user_pages_remote(tsk, tsk->mm, iova, 1,
-				    FOLL_TOUCH, &page, NULL, NULL);
+	ret = get_user_pages_remote(tsk, tsk->mm, iova, 1, 0, &page, NULL, NULL);
 #else
-	ret = get_user_pages_remote(tsk->mm, iova, 1,
-				    FOLL_TOUCH, &page, NULL, NULL);
+	ret = get_user_pages_remote(tsk->mm, iova, 1, 0, &page, NULL, NULL);
 #endif
 	if (ret < 0)
 		return 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:34.794569772 +0100
+++ 0001-kni-fix-build-with-Linux-6.3.patch	2023-06-15 01:56:34.459538943 +0100
@@ -1 +1 @@
-From 5f34cc454df420b9b2da8deb949fb76cba058b87 Mon Sep 17 00:00:00 2001
+From 3f1b6c3280cf9eb0f9ac0b41cdc4a3d92b5a01f9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5f34cc454df420b9b2da8deb949fb76cba058b87 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index a2c6d9fc1a..21bfb6890e 100644
+index e8633486ee..6e64380d06 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'examples/ip_pipeline: fix build with GCC 13' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
@ 2023-06-15  1:31 ` luca.boccassi
  2023-06-15  1:31 ` patch 'examples/ntb: " luca.boccassi
                   ` (60 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:31 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Cristian Dumitrescu, Ali Alnubani, Daxue Gao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 7fb0754a375c0bbdf2aa5aed7e5f05426d0fac73 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerinj@marvell.com>
Date: Tue, 2 May 2023 19:20:44 +0530
Subject: [PATCH] examples/ip_pipeline: fix build with GCC 13

[ upstream commit aae10e97710eb3b6a43a61e733ca0bbff47ab0c4 ]

Fix the following build issue by initializing req to NULL for
the local variable.

In function 'thread_msg_handle', inlined from 'thread_main' at
../examples/ip_pipeline/thread.c:3130:6:
../examples/ip_pipeline/thread.c:535:20: warning: 'req' may be used
uninitialized [-Wmaybe-uninitialized]
  535 |                 if (req == NULL)
      |                    ^
../examples/ip_pipeline/thread.c: In function 'thread_main':
../examples/ip_pipeline/thread.c:433:32: note: 'req' was declared here
  433 |         struct thread_msg_req *req;

Bugzilla ID: 1220
Fixes: a8bd581de397 ("examples/ip_pipeline: add thread runtime")

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Tested-by: Daxue Gao <daxuex.gao@intel.com>
---
 examples/ip_pipeline/thread.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/ip_pipeline/thread.c b/examples/ip_pipeline/thread.c
index b2e9732705..aeec954394 100644
--- a/examples/ip_pipeline/thread.c
+++ b/examples/ip_pipeline/thread.c
@@ -432,7 +432,7 @@ thread_pipeline_disable(uint32_t thread_id,
 static inline struct thread_msg_req *
 thread_msg_recv(struct rte_ring *msgq_req)
 {
-	struct thread_msg_req *req;
+	struct thread_msg_req *req = NULL;
 
 	int status = rte_ring_sc_dequeue(msgq_req, (void **) &req);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:34.845993845 +0100
+++ 0002-examples-ip_pipeline-fix-build-with-GCC-13.patch	2023-06-15 01:56:34.475539293 +0100
@@ -1 +1 @@
-From aae10e97710eb3b6a43a61e733ca0bbff47ab0c4 Mon Sep 17 00:00:00 2001
+From 7fb0754a375c0bbdf2aa5aed7e5f05426d0fac73 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit aae10e97710eb3b6a43a61e733ca0bbff47ab0c4 ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 82d5f87c38..9817657ca9 100644
+index b2e9732705..aeec954394 100644
@@ -35 +36 @@
-@@ -430,7 +430,7 @@ thread_pipeline_disable(uint32_t thread_id,
+@@ -432,7 +432,7 @@ thread_pipeline_disable(uint32_t thread_id,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'examples/ntb: fix build with GCC 13' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
  2023-06-15  1:31 ` patch 'examples/ip_pipeline: fix build with GCC 13' " luca.boccassi
@ 2023-06-15  1:31 ` luca.boccassi
  2023-06-15  1:31 ` patch 'ring: fix use after free' " luca.boccassi
                   ` (59 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:31 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Ali Alnubani, Junfeng Guo, Daxue Gao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4a58ab873a5b754bc5f480bbd44798389d8ab319 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerinj@marvell.com>
Date: Thu, 4 May 2023 14:23:37 +0530
Subject: [PATCH] examples/ntb: fix build with GCC 13

[ upstream commit dbff181d62c997f128b75db2bbac9f42e8dd0f8f ]

Fix the following build issue by not allowing nb_ids to be zero.
nb_ids can be zero based on rte_rawdev_xstats_get() API
documentation but it is not valid for the case when second
argument is NULL.

examples/ntb/ntb_fwd.c: In function 'ntb_stats_display':
examples/ntb/ntb_fwd.c:945:23: error: 'rte_rawdev_xstats_get'
accessing 8 bytes in a region of size 0 [-Werror=stringop-overflow=]
  945 | if (nb_ids != rte_rawdev_xstats_get(dev_id, ids, values, nb_ids)) {
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

examples/ntb/ntb_fwd.c:945:23: note: referencing argument 3
of type 'uint64_t[0]' {aka 'long unsigned int[]'}
In file included from ../examples/ntb/ntb_fwd.c:17:
lib/rawdev/rte_rawdev.h:504:1: note: in a call to function
'rte_rawdev_xstats_get'
  504 | rte_rawdev_xstats_get(uint16_t dev_id,

Fixes: 5194299d6ef5 ("examples/ntb: support more functions")

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Acked-by: Junfeng Guo <junfeng.guo@intel.com>
Tested-by: Daxue Gao <daxuex.gao@intel.com>
---
 examples/ntb/ntb_fwd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c
index 8f42831399..49b8795e2d 100644
--- a/examples/ntb/ntb_fwd.c
+++ b/examples/ntb/ntb_fwd.c
@@ -865,7 +865,7 @@ ntb_stats_clear(void)
 
 	/* Clear NTB dev stats */
 	nb_ids = rte_rawdev_xstats_names_get(dev_id, NULL, 0);
-	if (nb_ids  < 0) {
+	if (nb_ids <= 0) {
 		printf("Error: Cannot get count of xstats\n");
 		return;
 	}
@@ -923,7 +923,7 @@ ntb_stats_display(void)
 
 	/* Get NTB dev stats and stats names */
 	nb_ids = rte_rawdev_xstats_names_get(dev_id, NULL, 0);
-	if (nb_ids  < 0) {
+	if (nb_ids <= 0) {
 		printf("Error: Cannot get count of xstats\n");
 		return;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:34.900932610 +0100
+++ 0003-examples-ntb-fix-build-with-GCC-13.patch	2023-06-15 01:56:34.479539380 +0100
@@ -1 +1 @@
-From dbff181d62c997f128b75db2bbac9f42e8dd0f8f Mon Sep 17 00:00:00 2001
+From 4a58ab873a5b754bc5f480bbd44798389d8ab319 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dbff181d62c997f128b75db2bbac9f42e8dd0f8f ]
+
@@ -25 +26,0 @@
-Cc: stable@dpdk.org
@@ -36 +37 @@
-index f9abed28e4..585aad9d70 100644
+index 8f42831399..49b8795e2d 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ring: fix use after free' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
  2023-06-15  1:31 ` patch 'examples/ip_pipeline: fix build with GCC 13' " luca.boccassi
  2023-06-15  1:31 ` patch 'examples/ntb: " luca.boccassi
@ 2023-06-15  1:31 ` luca.boccassi
  2023-06-15  1:32 ` patch 'vfio: fix include with musl runtime' " luca.boccassi
                   ` (58 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:31 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Konstantin Ananyev, Honnappa Nagarahalli, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 5491fc6870c551854d6ef31ad1bb3b16d32a2ec6 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Fri, 5 May 2023 14:48:34 +0800
Subject: [PATCH] ring: fix use after free

[ upstream commit ce4bd6e14aa693c80c5218f7d896c98b3b85b54a ]

After the memzone is freed, it is not removed from the 'rte_ring_tailq'.
If rte_ring_lookup is called at this time, it will cause a use-after-free
problem. This change prevents that from happening.

Fixes: 4e32101f9b01 ("ring: support freeing")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
 lib/librte_ring/rte_ring.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/lib/librte_ring/rte_ring.c b/lib/librte_ring/rte_ring.c
index 6a94a038c4..40d29c1bc5 100644
--- a/lib/librte_ring/rte_ring.c
+++ b/lib/librte_ring/rte_ring.c
@@ -341,11 +341,6 @@ rte_ring_free(struct rte_ring *r)
 		return;
 	}
 
-	if (rte_memzone_free(r->memzone) != 0) {
-		RTE_LOG(ERR, RING, "Cannot free memory\n");
-		return;
-	}
-
 	ring_list = RTE_TAILQ_CAST(rte_ring_tailq.head, rte_ring_list);
 	rte_mcfg_tailq_write_lock();
 
@@ -364,6 +359,9 @@ rte_ring_free(struct rte_ring *r)
 
 	rte_mcfg_tailq_write_unlock();
 
+	if (rte_memzone_free(r->memzone) != 0)
+		RTE_LOG(ERR, RING, "Cannot free memory\n");
+
 	rte_free(te);
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:34.954278477 +0100
+++ 0004-ring-fix-use-after-free.patch	2023-06-15 01:56:34.487539555 +0100
@@ -1 +1 @@
-From ce4bd6e14aa693c80c5218f7d896c98b3b85b54a Mon Sep 17 00:00:00 2001
+From 5491fc6870c551854d6ef31ad1bb3b16d32a2ec6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ce4bd6e14aa693c80c5218f7d896c98b3b85b54a ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/ring/rte_ring.c | 8 +++-----
+ lib/librte_ring/rte_ring.c | 8 +++-----
@@ -20,5 +21,5 @@
-diff --git a/lib/ring/rte_ring.c b/lib/ring/rte_ring.c
-index 8ed455043d..057d25ff6f 100644
---- a/lib/ring/rte_ring.c
-+++ b/lib/ring/rte_ring.c
-@@ -333,11 +333,6 @@ rte_ring_free(struct rte_ring *r)
+diff --git a/lib/librte_ring/rte_ring.c b/lib/librte_ring/rte_ring.c
+index 6a94a038c4..40d29c1bc5 100644
+--- a/lib/librte_ring/rte_ring.c
++++ b/lib/librte_ring/rte_ring.c
+@@ -341,11 +341,6 @@ rte_ring_free(struct rte_ring *r)
@@ -36 +37 @@
-@@ -356,6 +351,9 @@ rte_ring_free(struct rte_ring *r)
+@@ -364,6 +359,9 @@ rte_ring_free(struct rte_ring *r)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'vfio: fix include with musl runtime' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (2 preceding siblings ...)
  2023-06-15  1:31 ` patch 'ring: fix use after free' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'kernel/freebsd: fix function parameter list' " luca.boccassi
                   ` (57 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Philip Prindeville; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 550db8485a8bd634c4a5460118bb0d17a592fdee Mon Sep 17 00:00:00 2001
From: Philip Prindeville <philipp@redfish-solutions.com>
Date: Sat, 20 May 2023 12:07:30 -0600
Subject: [PATCH] vfio: fix include with musl runtime

[ upstream commit c41a103c961ded5a0966652f4daf0a661a947352 ]

pread64() and pwrite64() are declared in <unistd.h> in MUSL and
other (i.e. not glibc) C runtimes.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 drivers/bus/pci/linux/pci_vfio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index a4ce51be7b..3b3a548352 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -2,6 +2,7 @@
  * Copyright(c) 2010-2014 Intel Corporation
  */
 
+#include <unistd.h>
 #include <string.h>
 #include <fcntl.h>
 #include <linux/pci_regs.h>
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.016317590 +0100
+++ 0005-vfio-fix-include-with-musl-runtime.patch	2023-06-15 01:56:34.491539643 +0100
@@ -1 +1 @@
-From c41a103c961ded5a0966652f4daf0a661a947352 Mon Sep 17 00:00:00 2001
+From 550db8485a8bd634c4a5460118bb0d17a592fdee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c41a103c961ded5a0966652f4daf0a661a947352 ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -14 +13,0 @@
- .mailmap                         | 1 +
@@ -16 +15 @@
- 2 files changed, 2 insertions(+)
+ 1 file changed, 1 insertion(+)
@@ -18,12 +16,0 @@
-diff --git a/.mailmap b/.mailmap
-index 0443e461a9..db85cc66c6 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -1058,6 +1058,7 @@ Peter Spreadborough <peter.spreadborough@broadcom.com>
- Petr Houska <t-pehous@microsoft.com>
- Phanendra Vukkisala <pvukkisala@marvell.com>
- Phil Yang <phil.yang@arm.com>
-+Philip Prindeville <philipp@redfish-solutions.com>
- Pierre Pfister <ppfister@cisco.com>
- Piotr Azarewicz <piotr.azarewicz@intel.com> <piotrx.t.azarewicz@intel.com>
- Piotr Bartosiewicz <piotr.bartosiewicz@atendesoftware.pl>
@@ -31 +18 @@
-index fab3483d9f..fe83e1a04e 100644
+index a4ce51be7b..3b3a548352 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'kernel/freebsd: fix function parameter list' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (3 preceding siblings ...)
  2023-06-15  1:32 ` patch 'vfio: fix include with musl runtime' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'build: fix case of project language name' " luca.boccassi
                   ` (56 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: John Baldwin, Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4bf90a103246f283e2ff19d1394008b22f1f1f7f Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 22 May 2023 10:22:41 +0100
Subject: [PATCH] kernel/freebsd: fix function parameter list

[ upstream commit 12b7ef3c4a6262e1c0f747bd0037a3a8df38ab4c ]

Functions which take no parameters should explicitly have "(void)" as
the parameter list, rather than "()".

Reported upstream on FreeBSD ports collection [1].

[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271524

Fixes: 764bf26873b9 ("add FreeBSD support")

Reported-by: John Baldwin <jhb@freebsd.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 kernel/freebsd/contigmem/contigmem.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/freebsd/contigmem/contigmem.c b/kernel/freebsd/contigmem/contigmem.c
index bd72f4d620..7dd87599d9 100644
--- a/kernel/freebsd/contigmem/contigmem.c
+++ b/kernel/freebsd/contigmem/contigmem.c
@@ -111,7 +111,7 @@ static struct cdevsw contigmem_ops = {
 };
 
 static int
-contigmem_load()
+contigmem_load(void)
 {
 	char index_string[8], description[32];
 	int  i, error = 0;
@@ -178,7 +178,7 @@ error:
 }
 
 static int
-contigmem_unload()
+contigmem_unload(void)
 {
 	int i;
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.072487523 +0100
+++ 0006-kernel-freebsd-fix-function-parameter-list.patch	2023-06-15 01:56:34.495539730 +0100
@@ -1 +1 @@
-From 12b7ef3c4a6262e1c0f747bd0037a3a8df38ab4c Mon Sep 17 00:00:00 2001
+From 4bf90a103246f283e2ff19d1394008b22f1f1f7f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 12b7ef3c4a6262e1c0f747bd0037a3a8df38ab4c ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'build: fix case of project language name' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (4 preceding siblings ...)
  2023-06-15  1:32 ` patch 'kernel/freebsd: fix function parameter list' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'telemetry: fix autotest on Alpine' " luca.boccassi
                   ` (55 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b998c77e8b65ce51d98e25be83ada7120c8b66b9 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 10 Mar 2023 11:11:37 +0000
Subject: [PATCH] build: fix case of project language name

[ upstream commit f6da046a1528895a96e1fbb7deef2c668efd0a56 ]

According to the meson manual [1], the project language should be given
as 'c', rather than 'C' in the initial "project" function call. While
meson itself does not complain about this, the "muon" project, which
attempts to re-implement meson in C, does complain.

/home/bruce/dpdk/meson.build:4:17: error 'C' is not a valid language
  4 | project('DPDK', 'C',
                      ^

[1] https://mesonbuild.com/Reference-manual_functions.html#project

Fixes: a25a650be5f0 ("build: add infrastructure for meson and ninja builds")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 514b5c51b6..cc3be0019a 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation
 
-project('DPDK', 'C',
+project('DPDK', 'c',
 	# Get version number from file.
 	# Fallback to "more" for Windows compatibility.
 	version: run_command(find_program('cat', 'more'),
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.124136941 +0100
+++ 0007-build-fix-case-of-project-language-name.patch	2023-06-15 01:56:34.499539817 +0100
@@ -1 +1 @@
-From f6da046a1528895a96e1fbb7deef2c668efd0a56 Mon Sep 17 00:00:00 2001
+From b998c77e8b65ce51d98e25be83ada7120c8b66b9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f6da046a1528895a96e1fbb7deef2c668efd0a56 ]
+
@@ -26 +28 @@
-index f91d652bc5..992ca91e88 100644
+index 514b5c51b6..cc3be0019a 100644
@@ -35,3 +37,3 @@
-         # Get version number from file.
-         # Fallback to "more" for Windows compatibility.
-         version: run_command(find_program('cat', 'more'),
+ 	# Get version number from file.
+ 	# Fallback to "more" for Windows compatibility.
+ 	version: run_command(find_program('cat', 'more'),

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'telemetry: fix autotest on Alpine' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (5 preceding siblings ...)
  2023-06-15  1:32 ` patch 'build: fix case of project language name' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'test/malloc: fix missing free' " luca.boccassi
                   ` (54 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From fa193cc3a43f7e495c174bc245686f8f117680ee Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 5 Apr 2023 17:03:22 +0100
Subject: [PATCH] telemetry: fix autotest on Alpine

[ upstream commit 6ffce64857216344f02ee88d92cb69ee241b3c7b ]

On Alpine linux, the telemetry_data_autotest was failing for the
test where we had dictionaries embedded in other dictionaries up
to three levels deep. Indications are that this issue is due to
excess data being stored on the stack, so replace stack-allocated
buffer data with dynamically allocated data in the case where we
are doing recursive processing of telemetry data structures into
json.

Bugzilla ID: 1177
Fixes: c933bb5177ca ("telemetry: support array values in data object")
Fixes: d2671e642a8e ("telemetry: support dict of dicts")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 lib/librte_telemetry/telemetry.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c
index ed00c17d9f..3f80d72c3f 100644
--- a/lib/librte_telemetry/telemetry.c
+++ b/lib/librte_telemetry/telemetry.c
@@ -217,7 +217,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
 				break;
 			case RTE_TEL_CONTAINER:
 			{
-				char temp[buf_len];
+				char *temp = malloc(buf_len);
+				if (temp == NULL)
+					break;
+				*temp = '\0';  /* ensure valid string */
+
 				const struct container *cont =
 						&v->value.container;
 				if (container_to_json(cont->data,
@@ -228,6 +232,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
 							v->name, temp);
 				if (!cont->keep)
 					rte_tel_data_free(cont->data);
+				free(temp);
 			}
 			}
 		}
@@ -259,7 +264,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
 						buf_len, used,
 						d->data.array[i].u64val);
 			else if (d->type == RTE_TEL_ARRAY_CONTAINER) {
-				char temp[buf_len];
+				char *temp = malloc(buf_len);
+				if (temp == NULL)
+					break;
+				*temp = '\0';  /* ensure valid string */
+
 				const struct container *rec_data =
 						&d->data.array[i].container;
 				if (container_to_json(rec_data->data,
@@ -269,6 +278,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
 							buf_len, used, temp);
 				if (!rec_data->keep)
 					rte_tel_data_free(rec_data->data);
+				free(temp);
 			}
 		used += prefix_used;
 		used += strlcat(out_buf + used, "}", sizeof(out_buf) - used);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.175810405 +0100
+++ 0008-telemetry-fix-autotest-on-Alpine.patch	2023-06-15 01:56:34.499539817 +0100
@@ -1 +1 @@
-From 6ffce64857216344f02ee88d92cb69ee241b3c7b Mon Sep 17 00:00:00 2001
+From fa193cc3a43f7e495c174bc245686f8f117680ee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6ffce64857216344f02ee88d92cb69ee241b3c7b ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +23,2 @@
- lib/telemetry/telemetry.c | 21 ++++++++++++++++++---
- 1 file changed, 18 insertions(+), 3 deletions(-)
+ lib/librte_telemetry/telemetry.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
@@ -25,26 +26,5 @@
-diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c
-index deba7f34a3..590720bfa6 100644
---- a/lib/telemetry/telemetry.c
-+++ b/lib/telemetry/telemetry.c
-@@ -208,7 +208,11 @@ container_to_json(const struct rte_tel_data *d, char *out_buf, size_t buf_len)
- 				break;
- 			case RTE_TEL_CONTAINER:
- 			{
--				char temp[buf_len];
-+				char *temp = malloc(buf_len);
-+				if (temp == NULL)
-+					break;
-+				*temp = '\0';  /* ensure valid string */
-+
- 				const struct container *cont =
- 						&v->value.container;
- 				if (container_to_json(cont->data,
-@@ -219,6 +223,7 @@ container_to_json(const struct rte_tel_data *d, char *out_buf, size_t buf_len)
- 							v->name, temp);
- 				if (!cont->keep)
- 					rte_tel_data_free(cont->data);
-+				free(temp);
- 				break;
- 			}
- 			}
-@@ -275,7 +280,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
+diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c
+index ed00c17d9f..3f80d72c3f 100644
+--- a/lib/librte_telemetry/telemetry.c
++++ b/lib/librte_telemetry/telemetry.c
+@@ -217,7 +217,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
@@ -63 +43 @@
-@@ -286,6 +295,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
+@@ -228,6 +232,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
@@ -71 +51 @@
-@@ -311,7 +321,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
+@@ -259,7 +264,11 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
@@ -73,2 +53,2 @@
- 						d->data.array[i].uval);
- 			else if (d->type == TEL_ARRAY_CONTAINER) {
+ 						d->data.array[i].u64val);
+ 			else if (d->type == RTE_TEL_ARRAY_CONTAINER) {
@@ -84 +64 @@
-@@ -321,6 +335,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
+@@ -269,6 +278,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
@@ -90,2 +70,2 @@
- 		break;
- 	}
+ 		used += prefix_used;
+ 		used += strlcat(out_buf + used, "}", sizeof(out_buf) - used);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test/malloc: fix missing free' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (6 preceding siblings ...)
  2023-06-15  1:32 ` patch 'telemetry: fix autotest on Alpine' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'test/malloc: fix statistics checks' " luca.boccassi
                   ` (53 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Feifei Wang, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 684876285d0a68b21162968324899744a30d7228 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Fri, 19 May 2023 12:29:22 +0800
Subject: [PATCH] test/malloc: fix missing free

[ upstream commit ec8ef136b8d9340003118bb25390d7c6989178bf ]

Free the allocated buffer before returning.

Fixes: a40a1f8231b4 ("app: various tests update")

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 app/test/test_malloc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c
index 6d9249f831..cf1af6285f 100644
--- a/app/test/test_malloc.c
+++ b/app/test/test_malloc.c
@@ -927,6 +927,7 @@ test_alloc_single_socket(int32_t socket)
 	if (mem == NULL)
 		return -1;
 	if (addr_to_socket(mem) != desired_socket) {
+		rte_free(mem);
 		return -1;
 	}
 	rte_free(mem);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.220471094 +0100
+++ 0009-test-malloc-fix-missing-free.patch	2023-06-15 01:56:34.503539905 +0100
@@ -1 +1 @@
-From ec8ef136b8d9340003118bb25390d7c6989178bf Mon Sep 17 00:00:00 2001
+From 684876285d0a68b21162968324899744a30d7228 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ec8ef136b8d9340003118bb25390d7c6989178bf ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index de40e50611..f144b89d88 100644
+index 6d9249f831..cf1af6285f 100644
@@ -22 +23 @@
-@@ -937,6 +937,7 @@ test_alloc_single_socket(int32_t socket)
+@@ -927,6 +927,7 @@ test_alloc_single_socket(int32_t socket)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test/malloc: fix statistics checks' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (7 preceding siblings ...)
  2023-06-15  1:32 ` patch 'test/malloc: fix missing free' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eal: avoid calling cleanup twice' " luca.boccassi
                   ` (52 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Feifei Wang, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 60a90b6cede193596c5314744d3d9b6c4f73d565 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Fri, 19 May 2023 12:29:23 +0800
Subject: [PATCH] test/malloc: fix statistics checks

[ upstream commit 19606f83e6c1dffea9bda42a792e1cbbc6d5a043 ]

The case expects all stats to be equal.
Therefore the negative conditions in check should be logically or'ed.

Fixes: a40a1f8231b4 ("app: various tests update")

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 app/test/test_malloc.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c
index cf1af6285f..9008038bfa 100644
--- a/app/test/test_malloc.c
+++ b/app/test/test_malloc.c
@@ -301,11 +301,11 @@ test_multi_alloc_statistics(void)
 	rte_malloc_get_socket_stats(socket,&post_stats);
 	/* Check statistics reported are correct */
 	/* All post stats should be equal to pre stats after alloc freed */
-	if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) &&
-			(post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) &&
-			(post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&&
-			(post_stats.alloc_count!=pre_stats.alloc_count)&&
-			(post_stats.free_count!=pre_stats.free_count)) {
+	if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) ||
+			(post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) ||
+			(post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) ||
+			(post_stats.alloc_count != pre_stats.alloc_count) ||
+			(post_stats.free_count != pre_stats.free_count)) {
 		printf("Malloc statistics are incorrect - freed alloc\n");
 		return -1;
 	}
@@ -362,11 +362,11 @@ test_multi_alloc_statistics(void)
 		return -1;
 	}
 
-	if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) &&
-			(post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) &&
-			(post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&&
-			(post_stats.alloc_count!=pre_stats.alloc_count)&&
-			(post_stats.free_count!=pre_stats.free_count)) {
+	if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) ||
+			(post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) ||
+			(post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) ||
+			(post_stats.alloc_count != pre_stats.alloc_count) ||
+			(post_stats.free_count != pre_stats.free_count)) {
 		printf("Malloc statistics are incorrect - freed alloc\n");
 		return -1;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.266858267 +0100
+++ 0010-test-malloc-fix-statistics-checks.patch	2023-06-15 01:56:34.507539992 +0100
@@ -1 +1 @@
-From 19606f83e6c1dffea9bda42a792e1cbbc6d5a043 Mon Sep 17 00:00:00 2001
+From 60a90b6cede193596c5314744d3d9b6c4f73d565 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 19606f83e6c1dffea9bda42a792e1cbbc6d5a043 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index f144b89d88..ff081dd931 100644
+index cf1af6285f..9008038bfa 100644
@@ -23 +24 @@
-@@ -302,11 +302,11 @@ test_multi_alloc_statistics(void)
+@@ -301,11 +301,11 @@ test_multi_alloc_statistics(void)
@@ -40 +41 @@
-@@ -363,11 +363,11 @@ test_multi_alloc_statistics(void)
+@@ -362,11 +362,11 @@ test_multi_alloc_statistics(void)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eal: avoid calling cleanup twice' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (8 preceding siblings ...)
  2023-06-15  1:32 ` patch 'test/malloc: fix statistics checks' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'pci: fix comment referencing renamed function' " luca.boccassi
                   ` (51 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 91127d04df1641e517396d07c76e3c4208bcd967 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 1 Jun 2023 17:08:55 +0100
Subject: [PATCH] eal: avoid calling cleanup twice

[ upstream commit a4a2ac988679b3802a574e7bb72154da177449a4 ]

If an app calls rte_eal_cleanup() inside it's own code, then cleanup
could be called a second time automatically when the app exits. While
mostly harmless, we can avoid any potential issues by guaranteeing that
cleanup only gets called once, in the same way that eal_init only ever
gets called once.

Note: This patch only touches Linux and FreeBSD. Windows EAL does not
have run-once guard on the init function, so omitting it in the cleanup
function.

Fixes: aec9c13c5257 ("eal: add function to release internal resources")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eal/common/eal_common_debug.c |  5 ++++-
 lib/librte_eal/freebsd/eal.c             | 10 ++++++++++
 lib/librte_eal/linux/eal.c               | 10 ++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_debug.c b/lib/librte_eal/common/eal_common_debug.c
index 15418e957f..37c7c308b9 100644
--- a/lib/librte_eal/common/eal_common_debug.c
+++ b/lib/librte_eal/common/eal_common_debug.c
@@ -3,9 +3,12 @@
  */
 
 #include <stdarg.h>
+#include <errno.h>
+
 #include <rte_eal.h>
 #include <rte_log.h>
 #include <rte_debug.h>
+#include <rte_errno.h>
 
 void
 __rte_panic(const char *funcname, const char *format, ...)
@@ -37,7 +40,7 @@ rte_exit(int exit_code, const char *format, ...)
 	rte_vlog(RTE_LOG_CRIT, RTE_LOGTYPE_EAL, format, ap);
 	va_end(ap);
 
-	if (rte_eal_cleanup() != 0)
+	if (rte_eal_cleanup() != 0 && rte_errno != EALREADY)
 		RTE_LOG(CRIT, EAL,
 			"EAL could not release all resources\n");
 	exit(exit_code);
diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c
index 6f9f12911e..cda713ded8 100644
--- a/lib/librte_eal/freebsd/eal.c
+++ b/lib/librte_eal/freebsd/eal.c
@@ -981,6 +981,16 @@ rte_eal_init(int argc, char **argv)
 int
 rte_eal_cleanup(void)
 {
+	static uint32_t run_once;
+	uint32_t has_run = 0;
+
+	if (!__atomic_compare_exchange_n(&run_once, &has_run, 1, 0,
+			__ATOMIC_RELAXED, __ATOMIC_RELAXED)) {
+		RTE_LOG(WARNING, EAL, "Already called cleanup\n");
+		rte_errno = EALREADY;
+		return -1;
+	}
+
 	struct internal_config *internal_conf =
 		eal_get_internal_configuration();
 	rte_service_finalize();
diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index 5814f9ce69..04942854a3 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -1352,6 +1352,16 @@ mark_freeable(const struct rte_memseg_list *msl, const struct rte_memseg *ms,
 int
 rte_eal_cleanup(void)
 {
+	static uint32_t run_once;
+	uint32_t has_run = 0;
+
+	if (!__atomic_compare_exchange_n(&run_once, &has_run, 1, 0,
+					__ATOMIC_RELAXED, __ATOMIC_RELAXED)) {
+		RTE_LOG(WARNING, EAL, "Already called cleanup\n");
+		rte_errno = EALREADY;
+		return -1;
+	}
+
 	/* if we're in a primary process, we need to mark hugepages as freeable
 	 * so that finalization can release them back to the system.
 	 */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.323684306 +0100
+++ 0011-eal-avoid-calling-cleanup-twice.patch	2023-06-15 01:56:34.515540167 +0100
@@ -1 +1 @@
-From a4a2ac988679b3802a574e7bb72154da177449a4 Mon Sep 17 00:00:00 2001
+From 91127d04df1641e517396d07c76e3c4208bcd967 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a4a2ac988679b3802a574e7bb72154da177449a4 ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -21,10 +22,11 @@
- lib/eal/common/eal_common_debug.c |  4 +++-
- lib/eal/freebsd/eal.c             | 10 ++++++++++
- lib/eal/linux/eal.c               | 10 ++++++++++
- 3 files changed, 23 insertions(+), 1 deletion(-)
-
-diff --git a/lib/eal/common/eal_common_debug.c b/lib/eal/common/eal_common_debug.c
-index dcb554af1e..9cac9c6390 100644
---- a/lib/eal/common/eal_common_debug.c
-+++ b/lib/eal/common/eal_common_debug.c
-@@ -4,10 +4,12 @@
+ lib/librte_eal/common/eal_common_debug.c |  5 ++++-
+ lib/librte_eal/freebsd/eal.c             | 10 ++++++++++
+ lib/librte_eal/linux/eal.c               | 10 ++++++++++
+ 3 files changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/lib/librte_eal/common/eal_common_debug.c b/lib/librte_eal/common/eal_common_debug.c
+index 15418e957f..37c7c308b9 100644
+--- a/lib/librte_eal/common/eal_common_debug.c
++++ b/lib/librte_eal/common/eal_common_debug.c
+@@ -3,9 +3,12 @@
+  */
@@ -33 +34,0 @@
- #include <stdlib.h>
@@ -35 +36 @@
- 
++
@@ -43 +44 @@
-@@ -39,7 +41,7 @@ rte_exit(int exit_code, const char *format, ...)
+@@ -37,7 +40,7 @@ rte_exit(int exit_code, const char *format, ...)
@@ -52,5 +53,5 @@
-diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
-index 7daf22e314..78ffb45c59 100644
---- a/lib/eal/freebsd/eal.c
-+++ b/lib/eal/freebsd/eal.c
-@@ -902,6 +902,16 @@ rte_eal_init(int argc, char **argv)
+diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c
+index 6f9f12911e..cda713ded8 100644
+--- a/lib/librte_eal/freebsd/eal.c
++++ b/lib/librte_eal/freebsd/eal.c
+@@ -981,6 +981,16 @@ rte_eal_init(int argc, char **argv)
@@ -73,5 +74,5 @@
-diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
-index ae323cd492..90e05fe4de 100644
---- a/lib/eal/linux/eal.c
-+++ b/lib/eal/linux/eal.c
-@@ -1365,6 +1365,16 @@ mark_freeable(const struct rte_memseg_list *msl, const struct rte_memseg *ms,
+diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
+index 5814f9ce69..04942854a3 100644
+--- a/lib/librte_eal/linux/eal.c
++++ b/lib/librte_eal/linux/eal.c
+@@ -1352,6 +1352,16 @@ mark_freeable(const struct rte_memseg_list *msl, const struct rte_memseg *ms,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'pci: fix comment referencing renamed function' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (9 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eal: avoid calling cleanup twice' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eal/x86: improve multiple of 64 bytes memcpy performance' " luca.boccassi
                   ` (50 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: Chenbo Xia, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 206434a99e5ef2e830acfe7ea997cb96063b9f5e Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Tue, 30 May 2023 18:02:15 +0200
Subject: [PATCH] pci: fix comment referencing renamed function

[ upstream commit 61f551995030e2d114ccbcaa8a63c8cc052d21b5 ]

When renaming functions eal_parse_pci_*,
a referencing comment was missed in the function rte_pci_device_name().

Fixes: ca52fccbb3b9 ("pci: remove deprecated functions")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
---
 lib/librte_pci/rte_pci.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/librte_pci/rte_pci.h b/lib/librte_pci/rte_pci.h
index f89c7dbbea..cbf578de53 100644
--- a/lib/librte_pci/rte_pci.h
+++ b/lib/librte_pci/rte_pci.h
@@ -100,8 +100,7 @@ struct rte_pci_addr {
 
 /**
  * Utility function to write a pci device name, this device name can later be
- * used to retrieve the corresponding rte_pci_addr using eal_parse_pci_*
- * BDF helpers.
+ * used to retrieve the corresponding rte_pci_addr using rte_pci_addr_parse().
  *
  * @param addr
  *	The PCI Bus-Device-Function address
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.376784251 +0100
+++ 0012-pci-fix-comment-referencing-renamed-function.patch	2023-06-15 01:56:34.519540255 +0100
@@ -1 +1 @@
-From 61f551995030e2d114ccbcaa8a63c8cc052d21b5 Mon Sep 17 00:00:00 2001
+From 206434a99e5ef2e830acfe7ea997cb96063b9f5e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 61f551995030e2d114ccbcaa8a63c8cc052d21b5 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15 +16 @@
- lib/pci/rte_pci.h | 3 +--
+ lib/librte_pci/rte_pci.h | 3 +--
@@ -18,5 +19,5 @@
-diff --git a/lib/pci/rte_pci.h b/lib/pci/rte_pci.h
-index 5088157e74..aab761b918 100644
---- a/lib/pci/rte_pci.h
-+++ b/lib/pci/rte_pci.h
-@@ -104,8 +104,7 @@ struct rte_pci_addr {
+diff --git a/lib/librte_pci/rte_pci.h b/lib/librte_pci/rte_pci.h
+index f89c7dbbea..cbf578de53 100644
+--- a/lib/librte_pci/rte_pci.h
++++ b/lib/librte_pci/rte_pci.h
+@@ -100,8 +100,7 @@ struct rte_pci_addr {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eal/x86: improve multiple of 64 bytes memcpy performance' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (10 preceding siblings ...)
  2023-06-15  1:32 ` patch 'pci: fix comment referencing renamed function' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eventdev/timer: fix timeout event wait behavior' " luca.boccassi
                   ` (49 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Leyi Rong
  Cc: Morten Brørup, Bruce Richardson, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4154fc959d05dfc4462d9c074432d8ba12525796 Mon Sep 17 00:00:00 2001
From: Leyi Rong <leyi.rong@intel.com>
Date: Wed, 29 Mar 2023 17:16:58 +0800
Subject: [PATCH] eal/x86: improve multiple of 64 bytes memcpy performance
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 2ef17be88e8b26f871cfb0265227341e36f486ea ]

In rte_memcpy_aligned(), one redundant round is taken in the 64 bytes
block copy loops if the size is a multiple of 64. So, let the catch-up
copy the last 64 bytes in this case.

Fixes: f5472703c0bd ("eal: optimize aligned memcpy on x86")

Suggested-by: Morten Brørup <mb@smartsharesystems.com>
Signed-off-by: Leyi Rong <leyi.rong@intel.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/librte_eal/x86/include/rte_memcpy.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/x86/include/rte_memcpy.h b/lib/librte_eal/x86/include/rte_memcpy.h
index d4d7a5cfc8..fd151be708 100644
--- a/lib/librte_eal/x86/include/rte_memcpy.h
+++ b/lib/librte_eal/x86/include/rte_memcpy.h
@@ -846,7 +846,7 @@ rte_memcpy_aligned(void *dst, const void *src, size_t n)
 	}
 
 	/* Copy 64 bytes blocks */
-	for (; n >= 64; n -= 64) {
+	for (; n > 64; n -= 64) {
 		rte_mov64((uint8_t *)dst, (const uint8_t *)src);
 		dst = (uint8_t *)dst + 64;
 		src = (const uint8_t *)src + 64;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.431586894 +0100
+++ 0013-eal-x86-improve-multiple-of-64-bytes-memcpy-performa.patch	2023-06-15 01:56:34.519540255 +0100
@@ -1 +1 @@
-From 2ef17be88e8b26f871cfb0265227341e36f486ea Mon Sep 17 00:00:00 2001
+From 4154fc959d05dfc4462d9c074432d8ba12525796 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 2ef17be88e8b26f871cfb0265227341e36f486ea ]
+
@@ -21 +23 @@
- lib/eal/x86/include/rte_memcpy.h | 2 +-
+ lib/librte_eal/x86/include/rte_memcpy.h | 2 +-
@@ -24 +26 @@
-diff --git a/lib/eal/x86/include/rte_memcpy.h b/lib/eal/x86/include/rte_memcpy.h
+diff --git a/lib/librte_eal/x86/include/rte_memcpy.h b/lib/librte_eal/x86/include/rte_memcpy.h
@@ -26,2 +28,2 @@
---- a/lib/eal/x86/include/rte_memcpy.h
-+++ b/lib/eal/x86/include/rte_memcpy.h
+--- a/lib/librte_eal/x86/include/rte_memcpy.h
++++ b/lib/librte_eal/x86/include/rte_memcpy.h

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eventdev/timer: fix timeout event wait behavior' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (11 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eal/x86: improve multiple of 64 bytes memcpy performance' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: fix event timer adapter guide' " luca.boccassi
                   ` (48 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Shijith Thotton; +Cc: Erik Gabriel Carrillo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From e6a734e6270ef1290b26b9ed44d45b9b4788d2c7 Mon Sep 17 00:00:00 2001
From: Shijith Thotton <sthotton@marvell.com>
Date: Tue, 21 Mar 2023 10:50:23 +0530
Subject: [PATCH] eventdev/timer: fix timeout event wait behavior

[ upstream commit fb9c213317b5e07918c9306f2036f8cc07126a85 ]

Improved the accuracy and consistency of timeout event wait behavior by
refactoring it. Previously, the delay function used for waiting could be
inaccurate, leading to inconsistent results. This commit updates the
wait behavior to use a timeout-based approach, enabling the wait for the
exact number of timer ticks before proceeding.

The new function timeout_event_dequeue mimics the behavior of the tested
systems closely. It dequeues timer expiry events until either the
expected number of events have been dequeued or the specified time has
elapsed. The WAIT_TICKS macro defines the waiting behavior based on the
type of timer being used (software or hardware).

Fixes: d1f3385d0076 ("test: add event timer adapter auto-test")

Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
---
 app/test/test_event_timer_adapter.c | 165 +++++++++++-----------------
 1 file changed, 67 insertions(+), 98 deletions(-)

diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c
index 622c62f914..8ea0d84145 100644
--- a/app/test/test_event_timer_adapter.c
+++ b/app/test/test_event_timer_adapter.c
@@ -47,9 +47,10 @@ static uint64_t global_bkt_tck_ns;
 static uint64_t global_info_bkt_tck_ns;
 static volatile uint8_t arm_done;
 
-#define CALC_TICKS(tks)					\
-	ceil((double)(tks * global_bkt_tck_ns) / global_info_bkt_tck_ns)
+#define CALC_TICKS(tks) ceil((double)((tks) * global_bkt_tck_ns) / global_info_bkt_tck_ns)
 
+/* Wait double timeout ticks for software and an extra tick for hardware */
+#define WAIT_TICKS(tks) (using_services ? 2 * (tks) : tks + 1)
 
 static bool using_services;
 static uint32_t test_lcore1;
@@ -385,10 +386,31 @@ timdev_teardown(void)
 	rte_mempool_free(eventdev_test_mempool);
 }
 
+static inline uint16_t
+timeout_event_dequeue(struct rte_event *evs, uint64_t nb_evs, uint64_t ticks)
+{
+	uint16_t ev_cnt = 0;
+	uint64_t end_cycle;
+
+	if (using_services && nb_evs == MAX_TIMERS)
+		ticks = 2 * ticks;
+
+	end_cycle = rte_rdtsc() + ticks * global_bkt_tck_ns * rte_get_tsc_hz() / 1E9;
+
+	while (ev_cnt < nb_evs && rte_rdtsc() < end_cycle) {
+		ev_cnt += rte_event_dequeue_burst(evdev, TEST_PORT_ID, &evs[ev_cnt], nb_evs, 0);
+		rte_pause();
+	}
+
+	return ev_cnt;
+}
+
 static inline int
 test_timer_state(void)
 {
 	struct rte_event_timer *ev_tim;
+	const uint64_t max_ticks = 100;
+	uint64_t ticks, wait_ticks;
 	struct rte_event ev;
 	const struct rte_event_timer tim = {
 		.ev.op = RTE_EVENT_OP_NEW,
@@ -399,11 +421,10 @@ test_timer_state(void)
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
 	};
 
-
 	rte_mempool_get(eventdev_test_mempool, (void **)&ev_tim);
 	*ev_tim = tim;
 	ev_tim->ev.event_ptr = ev_tim;
-	ev_tim->timeout_ticks = CALC_TICKS(120);
+	ev_tim->timeout_ticks = CALC_TICKS(max_ticks + 20);
 
 	TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 0,
 			"Armed timer exceeding max_timeout.");
@@ -411,8 +432,9 @@ test_timer_state(void)
 			"Improper timer state set expected %d returned %d",
 			RTE_EVENT_TIMER_ERROR_TOOLATE, ev_tim->state);
 
+	ticks = 10;
 	ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
-	ev_tim->timeout_ticks = CALC_TICKS(10);
+	ev_tim->timeout_ticks = CALC_TICKS(ticks);
 
 	TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
 			"Failed to arm timer with proper timeout.");
@@ -421,14 +443,15 @@ test_timer_state(void)
 			RTE_EVENT_TIMER_ARMED, ev_tim->state);
 
 	if (!using_services)
-		rte_delay_us(20);
+		wait_ticks = 2 * ticks;
 	else
-		rte_delay_us(1000 + 200);
-	TEST_ASSERT_EQUAL(rte_event_dequeue_burst(evdev, 0, &ev, 1, 0), 1,
-			"Armed timer failed to trigger.");
+		wait_ticks = ticks;
+
+	TEST_ASSERT_EQUAL(timeout_event_dequeue(&ev, 1, WAIT_TICKS(wait_ticks)), 1,
+			  "Armed timer failed to trigger.");
 
 	ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
-	ev_tim->timeout_ticks = CALC_TICKS(90);
+	ev_tim->timeout_ticks = CALC_TICKS(max_ticks - 10);
 	TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
 			"Failed to arm timer with proper timeout.");
 	TEST_ASSERT_EQUAL(rte_event_timer_cancel_burst(timdev, &ev_tim, 1),
@@ -1061,8 +1084,9 @@ stat_inc_reset_ev_enq(void)
 	int ret, i, n;
 	int num_evtims = MAX_TIMERS;
 	struct rte_event_timer *evtims[num_evtims];
-	struct rte_event evs[BATCH_SIZE];
+	struct rte_event evs[num_evtims];
 	struct rte_event_timer_adapter_stats stats;
+	uint64_t ticks = 5;
 	const struct rte_event_timer init_tim = {
 		.ev.op = RTE_EVENT_OP_NEW,
 		.ev.queue_id = TEST_QUEUE_ID,
@@ -1070,7 +1094,7 @@ stat_inc_reset_ev_enq(void)
 		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
-		.timeout_ticks = CALC_TICKS(5), // expire in .5 sec
+		.timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */
 	};
 
 	ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims,
@@ -1095,31 +1119,12 @@ stat_inc_reset_ev_enq(void)
 			  "succeeded = %d, rte_errno = %s",
 			  num_evtims, ret, rte_strerror(rte_errno));
 
-	rte_delay_ms(1000);
-
-#define MAX_TRIES num_evtims
-	int sum = 0;
-	int tries = 0;
-	bool done = false;
-	while (!done) {
-		sum += rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs,
-					       RTE_DIM(evs), 10);
-		if (sum >= num_evtims || ++tries >= MAX_TRIES)
-			done = true;
-
-		rte_delay_ms(10);
-	}
-
-	TEST_ASSERT_EQUAL(sum, num_evtims, "Expected %d timer expiry events, "
-			  "got %d", num_evtims, sum);
-
-	TEST_ASSERT(tries < MAX_TRIES, "Exceeded max tries");
-
-	rte_delay_ms(100);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
+	TEST_ASSERT_EQUAL(n, num_evtims, "Expected %d timer expiry events, got %d",
+			  num_evtims, n);
 
 	/* Make sure the eventdev is still empty */
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs),
-				      10);
+	n = timeout_event_dequeue(evs, 1, WAIT_TICKS(1));
 
 	TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected number of timer expiry "
 			  "events from event device");
@@ -1156,6 +1161,7 @@ event_timer_arm(void)
 	struct rte_event_timer_adapter *adapter = timdev;
 	struct rte_event_timer *evtim = NULL;
 	struct rte_event evs[BATCH_SIZE];
+	uint64_t ticks = 5;
 	const struct rte_event_timer init_tim = {
 		.ev.op = RTE_EVENT_OP_NEW,
 		.ev.queue_id = TEST_QUEUE_ID,
@@ -1163,7 +1169,7 @@ event_timer_arm(void)
 		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
-		.timeout_ticks = CALC_TICKS(5), // expire in .5 sec
+		.timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */
 	};
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
@@ -1190,10 +1196,7 @@ event_timer_arm(void)
 	TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value "
 			  "after arming already armed timer");
 
-	/* Let timer expire */
-	rte_delay_ms(1000);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry "
 			  "events from event device");
 
@@ -1213,6 +1216,7 @@ event_timer_arm_double(void)
 	struct rte_event_timer_adapter *adapter = timdev;
 	struct rte_event_timer *evtim = NULL;
 	struct rte_event evs[BATCH_SIZE];
+	uint64_t ticks = 5;
 	const struct rte_event_timer init_tim = {
 		.ev.op = RTE_EVENT_OP_NEW,
 		.ev.queue_id = TEST_QUEUE_ID,
@@ -1220,7 +1224,7 @@ event_timer_arm_double(void)
 		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
-		.timeout_ticks = CALC_TICKS(5), // expire in .5 sec
+		.timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */
 	};
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
@@ -1240,10 +1244,7 @@ event_timer_arm_double(void)
 	TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value "
 			  "after double-arm");
 
-	/* Let timer expire */
-	rte_delay_ms(600);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 1, "Dequeued incorrect number of expiry events - "
 			  "expected: 1, actual: %d", n);
 
@@ -1270,6 +1271,7 @@ event_timer_arm_expiry(void)
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
 	};
+	uint64_t ticks = 30;
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
 	if (evtim == NULL) {
@@ -1279,7 +1281,7 @@ event_timer_arm_expiry(void)
 
 	/* Set up an event timer */
 	*evtim = init_tim;
-	evtim->timeout_ticks = CALC_TICKS(30),	// expire in 3 secs
+	evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 secs */
 	evtim->ev.event_ptr = evtim;
 
 	ret = rte_event_timer_arm_burst(adapter, &evtim, 1);
@@ -1288,17 +1290,10 @@ event_timer_arm_expiry(void)
 	TEST_ASSERT_EQUAL(evtim->state, RTE_EVENT_TIMER_ARMED, "Event "
 			  "timer in incorrect state");
 
-	rte_delay_ms(2999);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), ticks - 1);
 	TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event");
 
-	/* Delay 100 ms to account for the adapter tick window - should let us
-	 * dequeue one event
-	 */
-	rte_delay_ms(100);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(1));
 	TEST_ASSERT_EQUAL(n, 1, "Dequeued incorrect number (%d) of timer "
 			  "expiry events", n);
 	TEST_ASSERT_EQUAL(evs[0].event_type, RTE_EVENT_TYPE_TIMER,
@@ -1330,6 +1325,7 @@ event_timer_arm_rearm(void)
 		.ev.event_type = RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
 	};
+	uint64_t ticks = 1;
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
 	if (evtim == NULL) {
@@ -1339,7 +1335,7 @@ event_timer_arm_rearm(void)
 
 	/* Set up a timer */
 	*evtim = init_tim;
-	evtim->timeout_ticks = CALC_TICKS(1);  // expire in 0.1 sec
+	evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 0.1 sec */
 	evtim->ev.event_ptr = evtim;
 
 	/* Arm it */
@@ -1347,10 +1343,7 @@ event_timer_arm_rearm(void)
 	TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n",
 			  rte_strerror(rte_errno));
 
-	/* Add 100ms to account for the adapter tick window */
-	rte_delay_ms(100 + 100);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry "
 			  "events from event device");
 
@@ -1367,10 +1360,7 @@ event_timer_arm_rearm(void)
 	TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n",
 			  rte_strerror(rte_errno));
 
-	/* Add 100ms to account for the adapter tick window */
-	rte_delay_ms(100 + 100);
-
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry "
 			  "events from event device");
 
@@ -1392,7 +1382,8 @@ event_timer_arm_max(void)
 	int ret, i, n;
 	int num_evtims = MAX_TIMERS;
 	struct rte_event_timer *evtims[num_evtims];
-	struct rte_event evs[BATCH_SIZE];
+	struct rte_event evs[num_evtims];
+	uint64_t ticks = 5;
 	const struct rte_event_timer init_tim = {
 		.ev.op = RTE_EVENT_OP_NEW,
 		.ev.queue_id = TEST_QUEUE_ID,
@@ -1400,7 +1391,7 @@ event_timer_arm_max(void)
 		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
-		.timeout_ticks = CALC_TICKS(5), // expire in .5 sec
+		.timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */
 	};
 
 	ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims,
@@ -1420,31 +1411,12 @@ event_timer_arm_max(void)
 			  "succeeded = %d, rte_errno = %s",
 			  num_evtims, ret, rte_strerror(rte_errno));
 
-	rte_delay_ms(1000);
-
-#define MAX_TRIES num_evtims
-	int sum = 0;
-	int tries = 0;
-	bool done = false;
-	while (!done) {
-		sum += rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs,
-					       RTE_DIM(evs), 10);
-		if (sum >= num_evtims || ++tries >= MAX_TRIES)
-			done = true;
-
-		rte_delay_ms(10);
-	}
-
-	TEST_ASSERT_EQUAL(sum, num_evtims, "Expected %d timer expiry events, "
-			  "got %d", num_evtims, sum);
-
-	TEST_ASSERT(tries < MAX_TRIES, "Exceeded max tries");
-
-	rte_delay_ms(100);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
+	TEST_ASSERT_EQUAL(n, num_evtims, "Expected %d timer expiry events, got %d",
+			  num_evtims, n);
 
 	/* Make sure the eventdev is still empty */
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs),
-				    10);
+	n = timeout_event_dequeue(evs, 1, WAIT_TICKS(1));
 
 	TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected number of timer expiry "
 			  "events from event device");
@@ -1564,6 +1536,7 @@ event_timer_cancel(void)
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
 	};
+	uint64_t ticks = 30;
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
 	if (evtim == NULL) {
@@ -1581,7 +1554,7 @@ event_timer_cancel(void)
 	/* Set up a timer */
 	*evtim = init_tim;
 	evtim->ev.event_ptr = evtim;
-	evtim->timeout_ticks = CALC_TICKS(30);  // expire in 3 sec
+	evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 sec */
 
 	/* Check that cancelling an inited but unarmed timer fails */
 	ret = rte_event_timer_cancel_burst(adapter, &evtim, 1);
@@ -1605,10 +1578,8 @@ event_timer_cancel(void)
 	TEST_ASSERT_EQUAL(evtim->state, RTE_EVENT_TIMER_CANCELED,
 			  "evtim in incorrect state");
 
-	rte_delay_ms(3000);
-
 	/* Make sure that no expiry event was generated */
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event\n");
 
 	rte_mempool_put(eventdev_test_mempool, evtim);
@@ -1631,8 +1602,8 @@ event_timer_cancel_double(void)
 		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
 		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
 		.state = RTE_EVENT_TIMER_NOT_ARMED,
-		.timeout_ticks = CALC_TICKS(5), // expire in .5 sec
 	};
+	uint64_t ticks = 30;
 
 	rte_mempool_get(eventdev_test_mempool, (void **)&evtim);
 	if (evtim == NULL) {
@@ -1643,7 +1614,7 @@ event_timer_cancel_double(void)
 	/* Set up a timer */
 	*evtim = init_tim;
 	evtim->ev.event_ptr = evtim;
-	evtim->timeout_ticks = CALC_TICKS(30);  // expire in 3 sec
+	evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 sec */
 
 	ret = rte_event_timer_arm_burst(adapter, &evtim, 1);
 	TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n",
@@ -1665,10 +1636,8 @@ event_timer_cancel_double(void)
 	TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value "
 			  "after double-cancel: rte_errno = %d", rte_errno);
 
-	rte_delay_ms(3000);
-
 	/* Still make sure that no expiry event was generated */
-	n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0);
+	n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks));
 	TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event\n");
 
 	rte_mempool_put(eventdev_test_mempool, evtim);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.491691152 +0100
+++ 0014-eventdev-timer-fix-timeout-event-wait-behavior.patch	2023-06-15 01:56:34.523540341 +0100
@@ -1 +1 @@
-From fb9c213317b5e07918c9306f2036f8cc07126a85 Mon Sep 17 00:00:00 2001
+From e6a734e6270ef1290b26b9ed44d45b9b4788d2c7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fb9c213317b5e07918c9306f2036f8cc07126a85 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -24,2 +25,2 @@
- app/test/test_event_timer_adapter.c | 169 +++++++++++-----------------
- 1 file changed, 68 insertions(+), 101 deletions(-)
+ app/test/test_event_timer_adapter.c | 165 +++++++++++-----------------
+ 1 file changed, 67 insertions(+), 98 deletions(-)
@@ -28 +29 @@
-index 5e7feec1c7..510bebcf86 100644
+index 622c62f914..8ea0d84145 100644
@@ -31 +32 @@
-@@ -57,9 +57,10 @@ static uint64_t global_bkt_tck_ns;
+@@ -47,9 +47,10 @@ static uint64_t global_bkt_tck_ns;
@@ -44 +45 @@
-@@ -441,10 +442,31 @@ timdev_teardown(void)
+@@ -385,10 +386,31 @@ timdev_teardown(void)
@@ -76 +77 @@
-@@ -455,11 +477,10 @@ test_timer_state(void)
+@@ -399,11 +421,10 @@ test_timer_state(void)
@@ -89 +90 @@
-@@ -467,8 +488,9 @@ test_timer_state(void)
+@@ -411,8 +432,9 @@ test_timer_state(void)
@@ -100 +101 @@
-@@ -477,14 +499,15 @@ test_timer_state(void)
+@@ -421,14 +443,15 @@ test_timer_state(void)
@@ -121 +122 @@
-@@ -1208,8 +1231,9 @@ stat_inc_reset_ev_enq(void)
+@@ -1061,8 +1084,9 @@ stat_inc_reset_ev_enq(void)
@@ -132 +133 @@
-@@ -1217,7 +1241,7 @@ stat_inc_reset_ev_enq(void)
+@@ -1070,7 +1094,7 @@ stat_inc_reset_ev_enq(void)
@@ -141 +142 @@
-@@ -1242,31 +1266,12 @@ stat_inc_reset_ev_enq(void)
+@@ -1095,31 +1119,12 @@ stat_inc_reset_ev_enq(void)
@@ -177 +178 @@
-@@ -1303,6 +1308,7 @@ event_timer_arm(void)
+@@ -1156,6 +1161,7 @@ event_timer_arm(void)
@@ -185 +186 @@
-@@ -1310,7 +1316,7 @@ event_timer_arm(void)
+@@ -1163,7 +1169,7 @@ event_timer_arm(void)
@@ -194 +195 @@
-@@ -1337,10 +1343,7 @@ event_timer_arm(void)
+@@ -1190,10 +1196,7 @@ event_timer_arm(void)
@@ -206 +207 @@
-@@ -1360,6 +1363,7 @@ event_timer_arm_double(void)
+@@ -1213,6 +1216,7 @@ event_timer_arm_double(void)
@@ -214 +215 @@
-@@ -1367,7 +1371,7 @@ event_timer_arm_double(void)
+@@ -1220,7 +1224,7 @@ event_timer_arm_double(void)
@@ -223 +224 @@
-@@ -1387,10 +1391,7 @@ event_timer_arm_double(void)
+@@ -1240,10 +1244,7 @@ event_timer_arm_double(void)
@@ -235 +236 @@
-@@ -1417,6 +1418,7 @@ event_timer_arm_expiry(void)
+@@ -1270,6 +1271,7 @@ event_timer_arm_expiry(void)
@@ -243 +244 @@
-@@ -1426,7 +1428,7 @@ event_timer_arm_expiry(void)
+@@ -1279,7 +1281,7 @@ event_timer_arm_expiry(void)
@@ -252 +253 @@
-@@ -1435,17 +1437,10 @@ event_timer_arm_expiry(void)
+@@ -1288,17 +1290,10 @@ event_timer_arm_expiry(void)
@@ -272 +273 @@
-@@ -1477,6 +1472,7 @@ event_timer_arm_rearm(void)
+@@ -1330,6 +1325,7 @@ event_timer_arm_rearm(void)
@@ -280 +281 @@
-@@ -1486,7 +1482,7 @@ event_timer_arm_rearm(void)
+@@ -1339,7 +1335,7 @@ event_timer_arm_rearm(void)
@@ -289 +290 @@
-@@ -1494,10 +1490,7 @@ event_timer_arm_rearm(void)
+@@ -1347,10 +1343,7 @@ event_timer_arm_rearm(void)
@@ -301 +302 @@
-@@ -1514,10 +1507,7 @@ event_timer_arm_rearm(void)
+@@ -1367,10 +1360,7 @@ event_timer_arm_rearm(void)
@@ -313 +314 @@
-@@ -1539,7 +1529,8 @@ event_timer_arm_max(void)
+@@ -1392,7 +1382,8 @@ event_timer_arm_max(void)
@@ -323 +324 @@
-@@ -1547,7 +1538,7 @@ event_timer_arm_max(void)
+@@ -1400,7 +1391,7 @@ event_timer_arm_max(void)
@@ -332 +333 @@
-@@ -1567,31 +1558,12 @@ event_timer_arm_max(void)
+@@ -1420,31 +1411,12 @@ event_timer_arm_max(void)
@@ -368 +369 @@
-@@ -1711,6 +1683,7 @@ event_timer_cancel(void)
+@@ -1564,6 +1536,7 @@ event_timer_cancel(void)
@@ -376 +377 @@
-@@ -1728,7 +1701,7 @@ event_timer_cancel(void)
+@@ -1581,7 +1554,7 @@ event_timer_cancel(void)
@@ -385 +386 @@
-@@ -1752,10 +1725,8 @@ event_timer_cancel(void)
+@@ -1605,10 +1578,8 @@ event_timer_cancel(void)
@@ -397 +398 @@
-@@ -1778,8 +1749,8 @@ event_timer_cancel_double(void)
+@@ -1631,8 +1602,8 @@ event_timer_cancel_double(void)
@@ -407 +408 @@
-@@ -1790,7 +1761,7 @@ event_timer_cancel_double(void)
+@@ -1643,7 +1614,7 @@ event_timer_cancel_double(void)
@@ -416 +417 @@
-@@ -1812,10 +1783,8 @@ event_timer_cancel_double(void)
+@@ -1665,10 +1636,8 @@ event_timer_cancel_double(void)
@@ -428,11 +428,0 @@
-@@ -1973,9 +1942,7 @@ test_timer_ticks_remaining(void)
- 		rte_delay_ms(100);
- 	}
- 
--	rte_delay_ms(100);
--
--	TEST_ASSERT_EQUAL(rte_event_dequeue_burst(evdev, 0, &ev, 1, 0), 1,
-+	TEST_ASSERT_EQUAL(timeout_event_dequeue(&ev, 1, WAIT_TICKS(1)), 1,
- 			  "Armed timer failed to trigger.");
- 	TEST_ASSERT_EQUAL(ev_tim->state, RTE_EVENT_TIMER_NOT_ARMED,
- 			  "Improper timer state set expected %d returned %d",

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix event timer adapter guide' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (12 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eventdev/timer: fix timeout event wait behavior' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'event/dsw: free rings on close' " luca.boccassi
                   ` (47 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: Erik Gabriel Carrillo, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 35bdbf0164477ced5b6c406358ea4e3418b101f3 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Fri, 7 Apr 2023 13:44:10 +0530
Subject: [PATCH] doc: fix event timer adapter guide

[ upstream commit 4b6fad5cc8a54647a2ea0c0792b25932da9504fc ]

Remove incorrect spec definition from programmers guide, it is
applications responsibility to set ev.event_ptr to a valid value.

Fixes: 30e7fbd62839 ("doc: add event timer adapter guide")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
---
 doc/guides/prog_guide/event_timer_adapter.rst | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/doc/guides/prog_guide/event_timer_adapter.rst b/doc/guides/prog_guide/event_timer_adapter.rst
index d121dbbdb4..f68a179173 100644
--- a/doc/guides/prog_guide/event_timer_adapter.rst
+++ b/doc/guides/prog_guide/event_timer_adapter.rst
@@ -217,9 +217,7 @@ Note that it is necessary to initialize the event timer state to
 RTE_EVENT_TIMER_NOT_ARMED.  Also note that we have saved a pointer to the
 ``conn`` object in the timer's event payload. This will allow us to locate
 the connection object again once we dequeue the timer expiry event from the
-event device later.  As a convenience, the application may specify no value for
-ev.event_ptr, and the adapter will by default set it to point at the event
-timer itself.
+event device later.
 
 Now we can arm the event timer with ``rte_event_timer_arm_burst()``:
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.545998098 +0100
+++ 0015-doc-fix-event-timer-adapter-guide.patch	2023-06-15 01:56:34.527540429 +0100
@@ -1 +1 @@
-From 4b6fad5cc8a54647a2ea0c0792b25932da9504fc Mon Sep 17 00:00:00 2001
+From 35bdbf0164477ced5b6c406358ea4e3418b101f3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4b6fad5cc8a54647a2ea0c0792b25932da9504fc ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 2a15ed8f5c..adeddbedfc 100644
+index d121dbbdb4..f68a179173 100644
@@ -22 +23 @@
-@@ -247,9 +247,7 @@ Note that it is necessary to initialize the event timer state to
+@@ -217,9 +217,7 @@ Note that it is necessary to initialize the event timer state to

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'event/dsw: free rings on close' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (13 preceding siblings ...)
  2023-06-15  1:32 ` patch 'doc: fix event timer adapter guide' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eventdev/timer: fix buffer flush' " luca.boccassi
                   ` (46 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Mattias Rönnblom; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From a9e8f6d68060f695e2482350e39725077c6df1b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>
Date: Thu, 11 May 2023 08:40:29 +0200
Subject: [PATCH] event/dsw: free rings on close
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 61e4cd6d0ad118c6f4d2724a840b651af9e9ec98 ]

The per-port data and control rings were not freed when the event
device was closed.

Fixes: 1c8e3caa3bfb ("event/dsw: add event scheduling and device start/stop")

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
---
 drivers/event/dsw/dsw_evdev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c
index 933a5a559b..ee3f441c5a 100644
--- a/drivers/event/dsw/dsw_evdev.c
+++ b/drivers/event/dsw/dsw_evdev.c
@@ -366,6 +366,10 @@ static int
 dsw_close(struct rte_eventdev *dev)
 {
 	struct dsw_evdev *dsw = dsw_pmd_priv(dev);
+	uint16_t port_id;
+
+	for (port_id = 0; port_id < dsw->num_ports; port_id++)
+		dsw_port_release(&dsw->ports[port_id]);
 
 	dsw->num_ports = 0;
 	dsw->num_queues = 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.597494963 +0100
+++ 0016-event-dsw-free-rings-on-close.patch	2023-06-15 01:56:34.527540429 +0100
@@ -1 +1 @@
-From 61e4cd6d0ad118c6f4d2724a840b651af9e9ec98 Mon Sep 17 00:00:00 2001
+From a9e8f6d68060f695e2482350e39725077c6df1b6 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 61e4cd6d0ad118c6f4d2724a840b651af9e9ec98 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index ffabf0d23d..6c5cde2468 100644
+index 933a5a559b..ee3f441c5a 100644
@@ -24 +25 @@
-@@ -363,6 +363,10 @@ static int
+@@ -366,6 +366,10 @@ static int

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eventdev/timer: fix buffer flush' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (14 preceding siblings ...)
  2023-06-15  1:32 ` patch 'event/dsw: free rings on close' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eal/linux: fix secondary process crash for mp hotplug' " luca.boccassi
                   ` (45 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Erik Gabriel Carrillo; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 67fbfd84f1d58f28f7190d17d923ba786c4a5b6d Mon Sep 17 00:00:00 2001
From: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Date: Wed, 12 Apr 2023 14:56:37 -0500
Subject: [PATCH] eventdev/timer: fix buffer flush

[ upstream commit 53b97347cc84e8df53426c7917a4b65296264c02 ]

The SW event timer adapter attempts to flush its event buffer on every
adapter tick. If events remain in the buffer after the attempt, another
attempt to flush won't occur until the next adapter tick, which delays
the enqueue of those events to the event device unnecessarily.

Move the buffer flush call so that it happens with every invocation of
the service function, rather than on every adapter tick, to avoid the
delay.

Fixes: cc7b73ea9e3b ("eventdev: add new software timer adapter")

Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
---
 lib/librte_eventdev/rte_event_timer_adapter.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/librte_eventdev/rte_event_timer_adapter.c b/lib/librte_eventdev/rte_event_timer_adapter.c
index fac32e2b2d..67b442ff44 100644
--- a/lib/librte_eventdev/rte_event_timer_adapter.c
+++ b/lib/librte_eventdev/rte_event_timer_adapter.c
@@ -765,17 +765,18 @@ swtim_service_func(void *arg)
 				     sw->n_expired_timers);
 		sw->n_expired_timers = 0;
 
-		event_buffer_flush(&sw->buffer,
-				   adapter->data->event_dev_id,
-				   adapter->data->event_port_id,
-				   &nb_evs_flushed,
-				   &nb_evs_invalid);
-
-		sw->stats.ev_enq_count += nb_evs_flushed;
-		sw->stats.ev_inv_count += nb_evs_invalid;
 		sw->stats.adapter_tick_count++;
 	}
 
+	event_buffer_flush(&sw->buffer,
+			   adapter->data->event_dev_id,
+			   adapter->data->event_port_id,
+			   &nb_evs_flushed,
+			   &nb_evs_invalid);
+
+	sw->stats.ev_enq_count += nb_evs_flushed;
+	sw->stats.ev_inv_count += nb_evs_invalid;
+
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.657806496 +0100
+++ 0017-eventdev-timer-fix-buffer-flush.patch	2023-06-15 01:56:34.531540517 +0100
@@ -1 +1 @@
-From 53b97347cc84e8df53426c7917a4b65296264c02 Mon Sep 17 00:00:00 2001
+From 67fbfd84f1d58f28f7190d17d923ba786c4a5b6d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 53b97347cc84e8df53426c7917a4b65296264c02 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
- lib/eventdev/rte_event_timer_adapter.c | 17 +++++++++--------
+ lib/librte_eventdev/rte_event_timer_adapter.c | 17 +++++++++--------
@@ -23,5 +24,5 @@
-diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c
-index 23eb1d4a7d..427c4c6287 100644
---- a/lib/eventdev/rte_event_timer_adapter.c
-+++ b/lib/eventdev/rte_event_timer_adapter.c
-@@ -855,17 +855,18 @@ swtim_service_func(void *arg)
+diff --git a/lib/librte_eventdev/rte_event_timer_adapter.c b/lib/librte_eventdev/rte_event_timer_adapter.c
+index fac32e2b2d..67b442ff44 100644
+--- a/lib/librte_eventdev/rte_event_timer_adapter.c
++++ b/lib/librte_eventdev/rte_event_timer_adapter.c
+@@ -765,17 +765,18 @@ swtim_service_func(void *arg)
@@ -51,2 +52,2 @@
- 	rte_event_maintain(adapter->data->event_dev_id,
- 			   adapter->data->event_port_id, 0);
+ 	return 0;
+ }

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eal/linux: fix secondary process crash for mp hotplug' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (15 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eventdev/timer: fix buffer flush' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'eal/linux: fix legacy mem init with many segments' " luca.boccassi
                   ` (44 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Zhihong Wang; +Cc: Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 39aa5011a932fb0049c015ea447269af695246af Mon Sep 17 00:00:00 2001
From: Zhihong Wang <wangzhihong.wzh@bytedance.com>
Date: Thu, 8 Jun 2023 15:25:53 +0800
Subject: [PATCH] eal/linux: fix secondary process crash for mp hotplug
 requests

[ upstream commit 66f7ee3f7ab1a7d0295464ab236d4ada08eedee3 ]

Secondary would crash if it tries to handle mp requests before memory
init, since globals such as eth_dev_shared_data_lock are not accessible
to it at this moment.

Fixes: 244d5130719c ("eal: enable hotplug on multi-process")

Signed-off-by: Zhihong Wang <wangzhihong.wzh@bytedance.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/linux/eal.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index 04942854a3..30dbdda38e 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -1058,12 +1058,6 @@ rte_eal_init(int argc, char **argv)
 		}
 	}
 
-	/* register multi-process action callbacks for hotplug */
-	if (eal_mp_dev_hotplug_init() < 0) {
-		rte_eal_init_alert("failed to register mp callback for hotplug");
-		return -1;
-	}
-
 	if (rte_bus_scan()) {
 		rte_eal_init_alert("Cannot scan the buses for devices");
 		rte_errno = ENODEV;
@@ -1202,6 +1196,12 @@ rte_eal_init(int argc, char **argv)
 		return -1;
 	}
 
+	/* register multi-process action callbacks for hotplug after memory init */
+	if (eal_mp_dev_hotplug_init() < 0) {
+		rte_eal_init_alert("failed to register mp callback for hotplug");
+		return -1;
+	}
+
 	if (rte_eal_tailqs_init() < 0) {
 		rte_eal_init_alert("Cannot init tail queues for objects");
 		rte_errno = EFAULT;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.711215787 +0100
+++ 0018-eal-linux-fix-secondary-process-crash-for-mp-hotplug.patch	2023-06-15 01:56:34.535540604 +0100
@@ -1 +1 @@
-From 66f7ee3f7ab1a7d0295464ab236d4ada08eedee3 Mon Sep 17 00:00:00 2001
+From 39aa5011a932fb0049c015ea447269af695246af Mon Sep 17 00:00:00 2001
@@ -6,0 +7,2 @@
+[ upstream commit 66f7ee3f7ab1a7d0295464ab236d4ada08eedee3 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/eal/linux/eal.c | 12 ++++++------
+ lib/librte_eal/linux/eal.c | 12 ++++++------
@@ -20,4 +21,4 @@
-diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
-index 90e05fe4de..99b0a59706 100644
---- a/lib/eal/linux/eal.c
-+++ b/lib/eal/linux/eal.c
+diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
+index 04942854a3..30dbdda38e 100644
+--- a/lib/librte_eal/linux/eal.c
++++ b/lib/librte_eal/linux/eal.c
@@ -37 +38 @@
-@@ -1221,6 +1215,12 @@ rte_eal_init(int argc, char **argv)
+@@ -1202,6 +1196,12 @@ rte_eal_init(int argc, char **argv)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'eal/linux: fix legacy mem init with many segments' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (16 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eal/linux: fix secondary process crash for mp hotplug' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix build warning' " luca.boccassi
                   ` (43 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Fengnan Chang; +Cc: Lin Li, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 154506b8fae5c3b413bd7974ec6648c15f120a07 Mon Sep 17 00:00:00 2001
From: Fengnan Chang <changfengnan@bytedance.com>
Date: Mon, 29 May 2023 19:21:30 +0800
Subject: [PATCH] eal/linux: fix legacy mem init with many segments

[ upstream commit 51a5a72e2a82986b02244fcdd89c6571bc503de3 ]

Under legacy mode, if the number of continuous memsegs greater
than RTE_MAX_MEMSEG_PER_LIST, eal init will failed even though
another memseg list is empty, because only one memseg list used
to check in remap_needed_hugepages.
Fix this by make remap_segment return how many segments mapped,
remap_segment try to map most contiguous segments it can, if it
exceed its capacity, remap_needed_hugepages will continue to
map other left pages.

For example:
hugepage configure:
cat /sys/devices/system/node/node*/hugepages/hugepages-2048kB/nr_hugepages
10241
10239

startup log:
EAL: Detected memory type: socket_id:0 hugepage_sz:2097152
EAL: Detected memory type: socket_id:1 hugepage_sz:2097152
EAL: Creating 4 segment lists: n_segs:8192 socket_id:0 hugepage_sz:2097152
EAL: Creating 4 segment lists: n_segs:8192 socket_id:1 hugepage_sz:2097152
EAL: Requesting 13370 pages of size 2MB from socket 0
EAL: Requesting 7110 pages of size 2MB from socket 1
EAL: Attempting to map 14220M on socket 1
EAL: Allocated 14220M on socket 1
EAL: Attempting to map 26740M on socket 0
EAL: Could not find space for memseg. Please increase 32768 and/or 65536 in
configuration.
EAL: Couldn't remap hugepage files into memseg lists
EAL: FATAL: Cannot init memory
EAL: Cannot init memory

Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")

Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>
Signed-off-by: Lin Li <lilintjpu@bytedance.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/linux/eal_memory.c | 51 ++++++++++++++++++++++---------
 1 file changed, 36 insertions(+), 15 deletions(-)

diff --git a/lib/librte_eal/linux/eal_memory.c b/lib/librte_eal/linux/eal_memory.c
index fda6a159d5..3bd0bc17c5 100644
--- a/lib/librte_eal/linux/eal_memory.c
+++ b/lib/librte_eal/linux/eal_memory.c
@@ -686,6 +686,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
 
 	/* find free space in memseg lists */
 	for (msl_idx = 0; msl_idx < RTE_MAX_MEMSEG_LISTS; msl_idx++) {
+		int free_len;
 		bool empty;
 		msl = &mcfg->memsegs[msl_idx];
 		arr = &msl->memseg_arr;
@@ -697,18 +698,26 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
 
 		/* leave space for a hole if array is not empty */
 		empty = arr->count == 0;
-		ms_idx = rte_fbarray_find_next_n_free(arr, 0,
-				seg_len + (empty ? 0 : 1));
-
-		/* memseg list is full? */
+		/* find start of the biggest contiguous block and its size */
+		ms_idx = rte_fbarray_find_biggest_free(arr, 0);
 		if (ms_idx < 0)
 			continue;
-
+		/* hole is 1 segment long, so at least two segments long. */
+		free_len = rte_fbarray_find_contig_free(arr, ms_idx);
+		if (free_len < 2)
+			continue;
 		/* leave some space between memsegs, they are not IOVA
 		 * contiguous, so they shouldn't be VA contiguous either.
 		 */
-		if (!empty)
+		if (!empty) {
 			ms_idx++;
+			free_len--;
+		}
+
+		/* we might not get all of the space we wanted */
+		free_len = RTE_MIN(seg_len, free_len);
+		seg_end = seg_start + free_len;
+		seg_len = seg_end - seg_start;
 		break;
 	}
 	if (msl_idx == RTE_MAX_MEMSEG_LISTS) {
@@ -792,7 +801,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
 	}
 	RTE_LOG(DEBUG, EAL, "Allocated %" PRIu64 "M on socket %i\n",
 			(seg_len * page_sz) >> 20, socket_id);
-	return 0;
+	return seg_len;
 }
 
 static uint64_t
@@ -1027,10 +1036,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)
 		if (new_memseg) {
 			/* if this isn't the first time, remap segment */
 			if (cur_page != 0) {
-				ret = remap_segment(hugepages, seg_start_page,
-						cur_page);
-				if (ret != 0)
-					return -1;
+				int n_remapped = 0;
+				int n_needed = cur_page - seg_start_page;
+				while (n_remapped < n_needed) {
+					ret = remap_segment(hugepages, seg_start_page,
+							cur_page);
+					if (ret < 0)
+						return -1;
+					n_remapped += ret;
+					seg_start_page += ret;
+				}
 			}
 			/* remember where we started */
 			seg_start_page = cur_page;
@@ -1039,10 +1054,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)
 	}
 	/* we were stopped, but we didn't remap the last segment, do it now */
 	if (cur_page != 0) {
-		ret = remap_segment(hugepages, seg_start_page,
-				cur_page);
-		if (ret != 0)
-			return -1;
+		int n_remapped = 0;
+		int n_needed = cur_page - seg_start_page;
+		while (n_remapped < n_needed) {
+			ret = remap_segment(hugepages, seg_start_page,
+					cur_page);
+			if (ret < 0)
+				return -1;
+			n_remapped += ret;
+			seg_start_page += ret;
+		}
 	}
 	return 0;
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.763327389 +0100
+++ 0019-eal-linux-fix-legacy-mem-init-with-many-segments.patch	2023-06-15 01:56:34.539540691 +0100
@@ -1 +1 @@
-From 51a5a72e2a82986b02244fcdd89c6571bc503de3 Mon Sep 17 00:00:00 2001
+From 154506b8fae5c3b413bd7974ec6648c15f120a07 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 51a5a72e2a82986b02244fcdd89c6571bc503de3 ]
+
@@ -38 +39,0 @@
-Cc: stable@dpdk.org
@@ -44,22 +45,8 @@
- .mailmap                   |  2 +-
- lib/eal/linux/eal_memory.c | 51 +++++++++++++++++++++++++++-----------
- 2 files changed, 37 insertions(+), 16 deletions(-)
-
-diff --git a/.mailmap b/.mailmap
-index 13167dc28b..853a89e9a4 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -766,7 +766,7 @@ Liming Sun <lsun@ezchip.com> <lsun@mellanox.com>
- Linfan Hu <zhongdahulinfan@163.com>
- Lingli Chen <linglix.chen@intel.com>
- Lingyu Liu <lingyu.liu@intel.com>
--Lin Li <lilin24@baidu.com>
-+Lin Li <lilintjpu@bytedance.com> <lilin24@baidu.com>
- Linsi Yuan <yuanlinsi01@baidu.com>
- Lior Margalit <lmargalit@nvidia.com>
- Li Qiang <liq3ea@163.com>
-diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
-index 60fc8cc6ca..0876974631 100644
---- a/lib/eal/linux/eal_memory.c
-+++ b/lib/eal/linux/eal_memory.c
-@@ -681,6 +681,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
+ lib/librte_eal/linux/eal_memory.c | 51 ++++++++++++++++++++++---------
+ 1 file changed, 36 insertions(+), 15 deletions(-)
+
+diff --git a/lib/librte_eal/linux/eal_memory.c b/lib/librte_eal/linux/eal_memory.c
+index fda6a159d5..3bd0bc17c5 100644
+--- a/lib/librte_eal/linux/eal_memory.c
++++ b/lib/librte_eal/linux/eal_memory.c
+@@ -686,6 +686,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
@@ -73 +60 @@
-@@ -692,18 +693,26 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
+@@ -697,18 +698,26 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
@@ -106 +93 @@
-@@ -787,7 +796,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
+@@ -792,7 +801,7 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
@@ -115 +102 @@
-@@ -1022,10 +1031,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)
+@@ -1027,10 +1036,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)
@@ -136 +123 @@
-@@ -1034,10 +1049,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)
+@@ -1039,10 +1054,16 @@ remap_needed_hugepages(struct hugepage_file *hugepages, int n_pages)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix build warning' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (17 preceding siblings ...)
  2023-06-15  1:32 ` patch 'eal/linux: fix legacy mem init with many segments' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/tap: set locally administered bit for fixed MAC address' " luca.boccassi
                   ` (42 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4397ebd4c901c44a2111bd86ccc76227dc2eb952 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerinj@marvell.com>
Date: Tue, 4 Apr 2023 12:25:25 +0530
Subject: [PATCH] net/hns3: fix build warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 60fe5c3cfc3c28952448d2163c4eb1d22d86ccac ]

aarch64 gcc 12.2.0 build complain with below warning[1].
Move the new_link initialization upwards to fix the warning.

[1]
drivers/net/hns3/hns3_ethdev.c: In function ‘hns3_dev_link_update’:
drivers/net/hns3/hns3_ethdev.c:2249:1:
  warning: ‘new_link’ may be used uninitialized [-Wmaybe-uninitialized]

Fixes: 64308555d5bf ("net/hns3: fix link status when port is stopped")

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 8d5e1f4beb..1ffa67f9e7 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2701,6 +2701,7 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
 	struct rte_eth_link new_link;
 	int ret;
 
+	memset(&new_link, 0, sizeof(new_link));
 	/* When port is stopped, report link down. */
 	if (eth_dev->data->dev_started == 0) {
 		new_link.link_autoneg = mac->link_autoneg;
@@ -2716,7 +2717,6 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
 		hns3_err(hw, "failed to get port link info, ret = %d.", ret);
 	}
 
-	memset(&new_link, 0, sizeof(new_link));
 	hns3_setup_linkstatus(eth_dev, &new_link);
 
 out:
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.819944531 +0100
+++ 0020-net-hns3-fix-build-warning.patch	2023-06-15 01:56:34.547540867 +0100
@@ -1 +1 @@
-From 60fe5c3cfc3c28952448d2163c4eb1d22d86ccac Mon Sep 17 00:00:00 2001
+From 4397ebd4c901c44a2111bd86ccc76227dc2eb952 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 60fe5c3cfc3c28952448d2163c4eb1d22d86ccac ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index 36896f8989..a872cb8dd7 100644
+index 8d5e1f4beb..1ffa67f9e7 100644
@@ -30 +31 @@
-@@ -2257,6 +2257,7 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete)
+@@ -2701,6 +2701,7 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
@@ -38,3 +39,3 @@
-@@ -2280,7 +2281,6 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete)
- 		rte_delay_ms(HNS3_LINK_CHECK_INTERVAL);
- 	} while (retry_cnt--);
+@@ -2716,7 +2717,6 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
+ 		hns3_err(hw, "failed to get port link info, ret = %d.", ret);
+ 	}

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/tap: set locally administered bit for fixed MAC address' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (18 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix build warning' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/dpaa2: fix checksum good flags' " luca.boccassi
                   ` (41 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: David Christensen; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 9ffeb66a7461e23e3d6b5a9647287fde77a47117 Mon Sep 17 00:00:00 2001
From: David Christensen <drc@linux.vnet.ibm.com>
Date: Tue, 25 Apr 2023 16:58:06 -0400
Subject: [PATCH] net/tap: set locally administered bit for fixed MAC address

[ upstream commit c3006be2acab49c6b77ae9c9ef04b061e5dacbd6 ]

When the tap driver is loaded and the user selects the optional
"mac=fixed" setting, the tap driver incorrectly uses a globally
unique EUI-48 identifier (as documented in RFC 7042) of
00:64:74:61:70:<iface_idx>. Since this is a locally generated ID,
the Local bit in the MAC address should be set to 1, resulting in
the new address 02:64:74:61:70:<iface_idx>.

Bugzilla ID: 1198
Fixes: f6921783fee6 ("net/tap: add support for fixed MAC addresses")

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 doc/guides/nics/tap.rst       | 8 ++++----
 drivers/net/tap/rte_eth_tap.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst
index 3ce696b605..77e25fec71 100644
--- a/doc/guides/nics/tap.rst
+++ b/doc/guides/nics/tap.rst
@@ -34,14 +34,14 @@ Using the option ``mac=fixed`` you can create a fixed known MAC address::
 
 The MAC address will have a fixed value with the last octet incrementing by one
 for each interface string containing ``mac=fixed``. The MAC address is formatted
-as 00:'d':'t':'a':'p':[00-FF]. Convert the characters to hex and you get the
-actual MAC address: ``00:64:74:61:70:[00-FF]``.
+as 02:'d':'t':'a':'p':[00-FF]. Convert the characters to hex and you get the
+actual MAC address: ``02:64:74:61:70:[00-FF]``.
 
-   --vdev=net_tap0,mac="00:64:74:61:70:11"
+   --vdev=net_tap0,mac="02:64:74:61:70:11"
 
 The MAC address will have a user value passed as string. The MAC address is in
 format with delimiter ``:``. The string is byte converted to hex and you get
-the actual MAC address: ``00:64:74:61:70:11``.
+the actual MAC address: ``02:64:74:61:70:11``.
 
 It is possible to specify a remote netdevice to capture packets from by adding
 ``remote=foo1``, for example::
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index dcc12f32e7..faa95fab6e 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -2292,8 +2292,8 @@ set_mac_type(const char *key __rte_unused,
 	if (!strncasecmp(ETH_TAP_MAC_FIXED, value, strlen(ETH_TAP_MAC_FIXED))) {
 		static int iface_idx;
 
-		/* fixed mac = 00:64:74:61:70:<iface_idx> */
-		memcpy((char *)user_mac->addr_bytes, "\0dtap",
+		/* fixed mac = 02:64:74:61:70:<iface_idx> */
+		memcpy((char *)user_mac->addr_bytes, "\002dtap",
 			RTE_ETHER_ADDR_LEN);
 		user_mac->addr_bytes[RTE_ETHER_ADDR_LEN - 1] =
 			iface_idx++ + '0';
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.881484865 +0100
+++ 0021-net-tap-set-locally-administered-bit-for-fixed-MAC-a.patch	2023-06-15 01:56:34.551540953 +0100
@@ -1 +1 @@
-From c3006be2acab49c6b77ae9c9ef04b061e5dacbd6 Mon Sep 17 00:00:00 2001
+From 9ffeb66a7461e23e3d6b5a9647287fde77a47117 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c3006be2acab49c6b77ae9c9ef04b061e5dacbd6 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 2f7417bddd..07df0d35a2 100644
+index 3ce696b605..77e25fec71 100644
@@ -49 +50 @@
-index 089ac202fa..bf98f75559 100644
+index dcc12f32e7..faa95fab6e 100644
@@ -52 +53 @@
-@@ -2303,8 +2303,8 @@ set_mac_type(const char *key __rte_unused,
+@@ -2292,8 +2292,8 @@ set_mac_type(const char *key __rte_unused,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/dpaa2: fix checksum good flags' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (19 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/tap: set locally administered bit for fixed MAC address' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'app/testpmd: fix GTP L2 length in checksum engine' " luca.boccassi
                   ` (40 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Tianli Lai; +Cc: Sachin Saxena, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 076bdbf8164f628e3ecf6315e8c0c46abe3347f7 Mon Sep 17 00:00:00 2001
From: Tianli Lai <laitianli@tom.com>
Date: Mon, 8 May 2023 18:57:25 +0800
Subject: [PATCH] net/dpaa2: fix checksum good flags

[ upstream commit 7d83632b28db9f0b9bd36d974798aa14627f822b ]

Set check sum good flags when dpaa2 hardware set check result.

Fixes: d2ef05d5c13e ("net/dpaa2: optimize Rx/Tx path")
Fixes: 94d31549c380 ("net/dpaa2: support Rx checksum offload in slow parsing")

Signed-off-by: Tianli Lai <laitianli@tom.com>
Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
---
 drivers/net/dpaa2/dpaa2_rxtx.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 23e193f86c..1ad42747c4 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -187,8 +187,12 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
 
 	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L3CE))
 		mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
-	else if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
+	else
+		mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
+	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
 		mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
+	else
+		mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
 
 	if (BIT_ISSET_AT_POS(annotation->word4, L3_IP_1_FIRST_FRAGMENT |
 	    L3_IP_1_MORE_FRAGMENT |
@@ -230,8 +234,12 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)
 
 	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L3CE))
 		mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
-	else if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
+	else
+		mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
+	if (BIT_ISSET_AT_POS(annotation->word8, DPAA2_ETH_FAS_L4CE))
 		mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
+	else
+		mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
 
 	if (dpaa2_enable_ts[mbuf->port]) {
 		*dpaa2_timestamp_dynfield(mbuf) = annotation->word2;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.935701704 +0100
+++ 0022-net-dpaa2-fix-checksum-good-flags.patch	2023-06-15 01:56:34.555541041 +0100
@@ -1 +1 @@
-From 7d83632b28db9f0b9bd36d974798aa14627f822b Mon Sep 17 00:00:00 2001
+From 076bdbf8164f628e3ecf6315e8c0c46abe3347f7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7d83632b28db9f0b9bd36d974798aa14627f822b ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index f60e78e1fd..85910bbd8f 100644
+index 23e193f86c..1ad42747c4 100644
@@ -22 +23 @@
-@@ -198,8 +198,12 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
+@@ -187,8 +187,12 @@ dpaa2_dev_rx_parse_slow(struct rte_mbuf *mbuf,
@@ -25 +26 @@
- 		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_BAD;
+ 		mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
@@ -28 +29 @@
-+		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_GOOD;
++		mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
@@ -30 +31 @@
- 		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_BAD;
+ 		mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
@@ -32 +33 @@
-+		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_GOOD;
++		mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
@@ -36 +37 @@
-@@ -241,8 +245,12 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)
+@@ -230,8 +234,12 @@ dpaa2_dev_rx_parse(struct rte_mbuf *mbuf, void *hw_annot_addr)
@@ -39 +40 @@
- 		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_BAD;
+ 		mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
@@ -42 +43 @@
-+		mbuf->ol_flags |= RTE_MBUF_F_RX_IP_CKSUM_GOOD;
++		mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
@@ -44 +45 @@
- 		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_BAD;
+ 		mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
@@ -46 +47 @@
-+		mbuf->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_GOOD;
++		mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'app/testpmd: fix GTP L2 length in checksum engine' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (20 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/dpaa2: fix checksum good flags' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/vmxnet3: fix drop of empty segments in Tx' " luca.boccassi
                   ` (39 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Raslan Darawsheh; +Cc: Aman Singh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 75a452410f544c5fd459c5d0f68023ae108cdc34 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@nvidia.com>
Date: Sun, 2 Apr 2023 15:26:19 +0300
Subject: [PATCH] app/testpmd: fix GTP L2 length in checksum engine

[ upstream commit dd827fa42a30a9b0aa87a1d5614af83ea32b19e0 ]

GTP header can be followed by an optional 32 bits extension.

But, l2_len value statically set to RTE_ETHER_GTP_HLEN
which is defined to be
        (sizeof(struct rte_udp_hdr) + sizeof(struct rte_gtp_hdr))

This fixes the l2_len to take into consideration the extension size.

Fixes: d8e5e69f3a9b ("app/testpmd: add GTP parsing and Tx checksum offload")

Signed-off-by: Raslan Darawsheh <rasland@nvidia.com>
Acked-by: Aman Singh <aman.deep.singh@intel.com>
---
 app/test-pmd/csumonly.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 7a91fcb63f..9b12b91ead 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -246,7 +246,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
 		info->l4_proto = 0;
 	}
 
-	info->l2_len += RTE_ETHER_GTP_HLEN;
+	info->l2_len += gtp_len + sizeof(udp_hdr);
 }
 
 /* Parse a vxlan header */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:35.990855341 +0100
+++ 0023-app-testpmd-fix-GTP-L2-length-in-checksum-engine.patch	2023-06-15 01:56:34.555541041 +0100
@@ -1 +1 @@
-From dd827fa42a30a9b0aa87a1d5614af83ea32b19e0 Mon Sep 17 00:00:00 2001
+From 75a452410f544c5fd459c5d0f68023ae108cdc34 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dd827fa42a30a9b0aa87a1d5614af83ea32b19e0 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index fc85c22a77..b50b89367a 100644
+index 7a91fcb63f..9b12b91ead 100644
@@ -27 +28 @@
-@@ -250,7 +250,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
+@@ -246,7 +246,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/vmxnet3: fix drop of empty segments in Tx' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (21 preceding siblings ...)
  2023-06-15  1:32 ` patch 'app/testpmd: fix GTP L2 length in checksum engine' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/txgbe: fix use-after-free on remove' " luca.boccassi
                   ` (38 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ronak Doshi; +Cc: Jochen Behrens, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 798cbf1de5b99243415347b49f97fc6f799a5998 Mon Sep 17 00:00:00 2001
From: Ronak Doshi <doshir@vmware.com>
Date: Mon, 8 May 2023 19:21:06 -0700
Subject: [PATCH] net/vmxnet3: fix drop of empty segments in Tx

[ upstream commit b44f3e1381f3910be50d03c784f5c073c25245dd ]

When empty segments are dropped, some descriptor variable values are
updated in the segment processing loop before it is exited. This can
lead to a wedged queue where all subsequent packets are dropped for
this queue.

Also move the check for empty packet to catch the case of a zero
length packet with multiple segments.

Fixes: d863f19efa4f ("net/vmxnet3: skip empty segments in transmission")

Signed-off-by: Ronak Doshi <doshir@vmware.com>
Acked-by: Jochen Behrens <jbehrens@vmware.com>
---
 drivers/net/vmxnet3/vmxnet3_rxtx.c | 33 +++++++++++++++++-------------
 1 file changed, 19 insertions(+), 14 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
index 40b366854d..91bcfcd6fd 100644
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
@@ -413,8 +413,8 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 	nb_tx = 0;
 	while (nb_tx < nb_pkts) {
-		Vmxnet3_GenericDesc *gdesc;
-		vmxnet3_buf_info_t *tbi;
+		Vmxnet3_GenericDesc *gdesc = NULL;
+		vmxnet3_buf_info_t *tbi = NULL;
 		uint32_t first2fill, avail, dw2;
 		struct rte_mbuf *txm = tx_pkts[nb_tx];
 		struct rte_mbuf *m_seg = txm;
@@ -458,18 +458,18 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 			continue;
 		}
 
+		/* Skip empty packets */
+		if (unlikely(rte_pktmbuf_pkt_len(txm) == 0)) {
+			txq->stats.drop_total++;
+			rte_pktmbuf_free(txm);
+			nb_tx++;
+			continue;
+		}
+
 		if (txm->nb_segs == 1 &&
 		    rte_pktmbuf_pkt_len(txm) <= txq->txdata_desc_size) {
 			struct Vmxnet3_TxDataDesc *tdd;
 
-			/* Skip empty packets */
-			if (unlikely(rte_pktmbuf_pkt_len(txm) == 0)) {
-				txq->stats.drop_total++;
-				rte_pktmbuf_free(txm);
-				nb_tx++;
-				continue;
-			}
-
 			tdd = (struct Vmxnet3_TxDataDesc *)
 				((uint8 *)txq->data_ring.base +
 				 txq->cmd_ring.next2fill *
@@ -482,6 +482,10 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		dw2 = (txq->cmd_ring.gen ^ 0x1) << VMXNET3_TXD_GEN_SHIFT;
 		first2fill = txq->cmd_ring.next2fill;
 		do {
+			/* Skip empty segments */
+			if (unlikely(m_seg->data_len == 0))
+				continue;
+
 			/* Remember the transmit buffer for cleanup */
 			tbi = txq->cmd_ring.buf_info + txq->cmd_ring.next2fill;
 
@@ -491,10 +495,6 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 			 */
 			gdesc = txq->cmd_ring.base + txq->cmd_ring.next2fill;
 
-			/* Skip empty segments */
-			if (unlikely(m_seg->data_len == 0))
-				continue;
-
 			if (copy_size) {
 				uint64 offset =
 					(uint64)txq->cmd_ring.next2fill *
@@ -515,6 +515,11 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 			/* use the right gen for non-SOP desc */
 			dw2 = txq->cmd_ring.gen << VMXNET3_TXD_GEN_SHIFT;
 		} while ((m_seg = m_seg->next) != NULL);
+		/* We must have executed the complete preceding loop at least
+		 * once without skipping an empty segment, as we can't have
+		 * a packet with only empty segments.
+		 * Thus, tbi and gdesc have been initialized.
+		 */
 
 		/* set the last buf_info for the pkt */
 		tbi->m = txm;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.031399370 +0100
+++ 0024-net-vmxnet3-fix-drop-of-empty-segments-in-Tx.patch	2023-06-15 01:56:34.555541041 +0100
@@ -1 +1 @@
-From b44f3e1381f3910be50d03c784f5c073c25245dd Mon Sep 17 00:00:00 2001
+From 798cbf1de5b99243415347b49f97fc6f799a5998 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b44f3e1381f3910be50d03c784f5c073c25245dd ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 39ad0726cb..148f65383e 100644
+index 40b366854d..91bcfcd6fd 100644
@@ -27 +28 @@
-@@ -418,8 +418,8 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -413,8 +413,8 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -38 +39 @@
-@@ -465,18 +465,18 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -458,18 +458,18 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -65 +66 @@
-@@ -489,6 +489,10 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -482,6 +482,10 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -76 +77 @@
-@@ -498,10 +502,6 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -491,10 +495,6 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -87 +88 @@
-@@ -522,6 +522,11 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -515,6 +515,11 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/txgbe: fix use-after-free on remove' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (22 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/vmxnet3: fix drop of empty segments in Tx' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'ethdev: fix MAC address occupies two entries' " luca.boccassi
                   ` (37 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Pengfei Sun, Jiawen Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 3d791ce89a00e5130179fae8fd34043cfc575bc3 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Thu, 18 May 2023 15:11:24 +0800
Subject: [PATCH] net/txgbe: fix use-after-free on remove

[ upstream commit 0105788ebac6c796f30361912377550207084a17 ]

When cleaning up NIC's interrupts, it is possible to add some alarms
at the same time. However, if these alarms are not canceled, it may
cause use-after-free problems. Therefore, after cleaning up NIC's
interrupts, these alarms should also be canceled.

Fixes: d3bb4a04eac1 ("net/txgbe: add SFP hotplug identification")
Fixes: e0d876ef6bbc ("net/txgbe: support device stop and close")

Reported-by: Pengfei Sun <sunpengfei16@huawei.com>
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index dd5b54b83f..a9797ff95b 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1792,8 +1792,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)
 		rte_delay_ms(100);
 	} while (retries++ < (10 + TXGBE_LINK_UP_TIME));
 
-	/* cancel the delay handler before remove dev */
+	/* cancel all alarm handler before remove dev */
 	rte_eal_alarm_cancel(txgbe_dev_interrupt_delayed_handler, dev);
+	rte_eal_alarm_cancel(txgbe_dev_setup_link_alarm_handler, dev);
 
 	/* uninitialize PF if max_vfs not zero */
 	txgbe_pf_host_uninit(dev);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.075650326 +0100
+++ 0025-net-txgbe-fix-use-after-free-on-remove.patch	2023-06-15 01:56:34.559541129 +0100
@@ -1 +1 @@
-From 0105788ebac6c796f30361912377550207084a17 Mon Sep 17 00:00:00 2001
+From 3d791ce89a00e5130179fae8fd34043cfc575bc3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0105788ebac6c796f30361912377550207084a17 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19,3 +20,2 @@
- .mailmap                         | 1 +
- drivers/net/txgbe/txgbe_ethdev.c | 4 +++-
- 2 files changed, 4 insertions(+), 1 deletion(-)
+ drivers/net/txgbe/txgbe_ethdev.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
@@ -23,12 +22,0 @@
-diff --git a/.mailmap b/.mailmap
-index c5dd75633d..034fb27843 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -1049,6 +1049,7 @@ Pawel Rutkowski <pawelx.rutkowski@intel.com>
- Pawel Wodkowski <pawelwod@gmail.com> <pawelx.wodkowski@intel.com> <pawelx.wdkowski@intel.com>
- Pei Chao <peichao85@gmail.com>
- Pei Zhang <pezhang@redhat.com>
-+Pengfei Sun <sunpengfei16@huawei.com>
- Peng He <hepeng.0320@bytedance.com> <xnhp0320@icloud.com>
- Peng Huang <peng.huang@intel.com>
- Peng Sun <peng.a.sun@intel.com>
@@ -36 +24 @@
-index a502618bc5..a3d7461951 100644
+index dd5b54b83f..a9797ff95b 100644
@@ -39 +27 @@
-@@ -2032,8 +2032,10 @@ txgbe_dev_close(struct rte_eth_dev *dev)
+@@ -1792,8 +1792,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)
@@ -46 +33,0 @@
-+	rte_eal_alarm_cancel(txgbe_dev_detect_sfp, dev);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ethdev: fix MAC address occupies two entries' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (23 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/txgbe: fix use-after-free on remove' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix variable type mismatch' " luca.boccassi
                   ` (36 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Huisong Li; +Cc: Chengwen Feng, Thomas Monjalon, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 2928ea4fedd0902a8f85af2aceca90e24c116759 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 19 May 2023 17:31:55 +0800
Subject: [PATCH] ethdev: fix MAC address occupies two entries

[ upstream commit 8f02f472a29432650d999969359d6a49ea6aadca ]

The dev->data->mac_addrs[0] will be changed to a new MAC address when
applications modify the default MAC address by .mac_addr_set(). However,
if the new default one has been added as a non-default MAC address by
.mac_addr_add(), the .mac_addr_set() didn't check this address.
As a result, this MAC address occupies two entries in the list. Like:
add(MAC1)
add(MAC2)
add(MAC3)
add(MAC4)
set_default(MAC3)
default=MAC3, the rest of the list=MAC1, MAC2, MAC3, MAC4
Note: MAC3 occupies two entries.

But .mac_addr_set() cannot remove it implicitly in case of MAC address
shrinking in the list.
So this patch adds a check on whether the new default address was
already in the list and if so requires the user to remove it first.

In addition, this patch documents the position of the default MAC
address and address unique in the list.

Fixes: 854d8ad4ef68 ("ethdev: add default mac address modifier")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_ethdev.c | 10 ++++++++++
 lib/librte_ethdev/rte_ethdev.h |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 4b59854c12..b5c5af3cf5 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -4150,6 +4150,7 @@ int
 rte_eth_dev_default_mac_addr_set(uint16_t port_id, struct rte_ether_addr *addr)
 {
 	struct rte_eth_dev *dev;
+	int index;
 	int ret;
 
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
@@ -4160,6 +4161,15 @@ rte_eth_dev_default_mac_addr_set(uint16_t port_id, struct rte_ether_addr *addr)
 	dev = &rte_eth_devices[port_id];
 	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mac_addr_set, -ENOTSUP);
 
+	/* Keep address unique in dev->data->mac_addrs[]. */
+	index = eth_dev_get_mac_addr_index(port_id, addr);
+	if (index > 0) {
+		RTE_ETHDEV_LOG(ERR,
+			"New default address for port %u was already in the address list. Please remove it first.\n",
+			port_id);
+		return -EEXIST;
+	}
+
 	ret = (*dev->dev_ops->mac_addr_set)(dev, addr);
 	if (ret < 0)
 		return ret;
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 5e8331da1c..709563215f 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3840,6 +3840,9 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,
 
 /**
  * Set the default MAC address.
+ * It replaces the address at index 0 of the MAC address list.
+ * If the address was already in the MAC address list,
+ * please remove it first.
  *
  * @param port_id
  *   The port identifier of the Ethernet device.
@@ -3850,6 +3853,7 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,
  *   - (-ENOTSUP) if hardware doesn't support.
  *   - (-ENODEV) if *port* invalid.
  *   - (-EINVAL) if MAC address is invalid.
+ *   - (-EEXIST) if MAC address was already in the address list.
  */
 int rte_eth_dev_default_mac_addr_set(uint16_t port_id,
 		struct rte_ether_addr *mac_addr);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.122879824 +0100
+++ 0026-ethdev-fix-MAC-address-occupies-two-entries.patch	2023-06-15 01:56:34.575541478 +0100
@@ -1 +1 @@
-From 8f02f472a29432650d999969359d6a49ea6aadca Mon Sep 17 00:00:00 2001
+From 2928ea4fedd0902a8f85af2aceca90e24c116759 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8f02f472a29432650d999969359d6a49ea6aadca ]
+
@@ -28 +29,0 @@
-Cc: stable@dpdk.org
@@ -35,45 +36,9 @@
- doc/guides/rel_notes/release_23_07.rst |  6 ++++++
- lib/ethdev/ethdev_driver.h             |  6 +++++-
- lib/ethdev/rte_ethdev.c                | 10 ++++++++++
- lib/ethdev/rte_ethdev.h                |  4 ++++
- 4 files changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/doc/guides/rel_notes/release_23_07.rst b/doc/guides/rel_notes/release_23_07.rst
-index 11cf5c6a0c..58d4e59487 100644
---- a/doc/guides/rel_notes/release_23_07.rst
-+++ b/doc/guides/rel_notes/release_23_07.rst
-@@ -108,6 +108,12 @@ API Changes
-    Also, make sure to start the actual text at the margin.
-    =======================================================
- 
-+* ethdev: Ensured all entries in MAC address list are uniques.
-+  When setting a default MAC address with the function
-+  ``rte_eth_dev_default_mac_addr_set``,
-+  the default one needs to be removed by the user
-+  if it was already in the address list.
-+
- 
- ABI Changes
- -----------
-diff --git a/lib/ethdev/ethdev_driver.h b/lib/ethdev/ethdev_driver.h
-index 2c9d615fb5..367c0c4878 100644
---- a/lib/ethdev/ethdev_driver.h
-+++ b/lib/ethdev/ethdev_driver.h
-@@ -117,7 +117,11 @@ struct rte_eth_dev_data {
- 
- 	uint64_t rx_mbuf_alloc_failed; /**< Rx ring mbuf allocation failures */
- 
--	/** Device Ethernet link address. @see rte_eth_dev_release_port() */
-+	/**
-+	 * Device Ethernet link addresses.
-+	 * All entries are unique.
-+	 * The first entry (index zero) is the default address.
-+	 */
- 	struct rte_ether_addr *mac_addrs;
- 	/** Bitmap associating MAC addresses to pools */
- 	uint64_t mac_pool_sel[RTE_ETH_NUM_RECEIVE_MAC_ADDR];
-diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
-index 4d03255683..d46e74504e 100644
---- a/lib/ethdev/rte_ethdev.c
-+++ b/lib/ethdev/rte_ethdev.c
-@@ -4898,6 +4898,7 @@ int
+ lib/librte_ethdev/rte_ethdev.c | 10 ++++++++++
+ lib/librte_ethdev/rte_ethdev.h |  4 ++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
+index 4b59854c12..b5c5af3cf5 100644
+--- a/lib/librte_ethdev/rte_ethdev.c
++++ b/lib/librte_ethdev/rte_ethdev.c
+@@ -4150,6 +4150,7 @@ int
@@ -87,3 +52,3 @@
-@@ -4916,6 +4917,15 @@ rte_eth_dev_default_mac_addr_set(uint16_t port_id, struct rte_ether_addr *addr)
- 	if (*dev->dev_ops->mac_addr_set == NULL)
- 		return -ENOTSUP;
+@@ -4160,6 +4161,15 @@ rte_eth_dev_default_mac_addr_set(uint16_t port_id, struct rte_ether_addr *addr)
+ 	dev = &rte_eth_devices[port_id];
+ 	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mac_addr_set, -ENOTSUP);
@@ -103,5 +68,5 @@
-diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
-index 99fe9e238b..fe8f7466c8 100644
---- a/lib/ethdev/rte_ethdev.h
-+++ b/lib/ethdev/rte_ethdev.h
-@@ -4381,6 +4381,9 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,
+diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
+index 5e8331da1c..709563215f 100644
+--- a/lib/librte_ethdev/rte_ethdev.h
++++ b/lib/librte_ethdev/rte_ethdev.h
+@@ -3840,6 +3840,9 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,
@@ -117 +82 @@
-@@ -4391,6 +4394,7 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,
+@@ -3850,6 +3853,7 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix variable type mismatch' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (24 preceding siblings ...)
  2023-06-15  1:32 ` patch 'ethdev: fix MAC address occupies two entries' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix Rx multiple firmware reset interrupts' " luca.boccassi
                   ` (35 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From cb532b2040d32a84c7356766f37d73d0f2c2666a Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 22 May 2023 21:17:38 +0800
Subject: [PATCH] net/hns3: fix variable type mismatch

[ upstream commit 1bbac8785cdf51bc6c5005c6754eab4d517cc4b0 ]

Loop conditions are compared with different variable types,
which may cause overflow risks.

Fixes: 67d010346933 ("net/hns3: adjust data type of some variables")
Fixes: 6ee07e3cb589 ("net/hns3: fix insecure way to query MAC statistics")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_regs.c  | 5 +++--
 drivers/net/hns3/hns3_stats.c | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hns3/hns3_regs.c b/drivers/net/hns3/hns3_regs.c
index cbc377adee..91261b1b1f 100644
--- a/drivers/net/hns3/hns3_regs.c
+++ b/drivers/net/hns3/hns3_regs.c
@@ -270,8 +270,9 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	uint32_t *origin_data_ptr = data;
 	uint32_t reg_offset;
-	int reg_num;
-	int i, j;
+	size_t reg_num;
+	uint16_t j;
+	size_t i;
 
 	/* fetching per-PF registers values from PF PCIe register space */
 	reg_num = sizeof(cmdq_reg_addrs) / sizeof(uint32_t);
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
index 16cca25862..7e645361cf 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -338,7 +338,7 @@ hns3_update_mac_stats(struct hns3_hw *hw)
 	uint32_t stats_iterms;
 	uint64_t *desc_data;
 	uint32_t desc_num;
-	uint16_t i;
+	uint32_t i;
 	int ret;
 
 	/* The first desc has a 64-bit header, so need to consider it. */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.176557594 +0100
+++ 0027-net-hns3-fix-variable-type-mismatch.patch	2023-06-15 01:56:34.575541478 +0100
@@ -1 +1 @@
-From 1bbac8785cdf51bc6c5005c6754eab4d517cc4b0 Mon Sep 17 00:00:00 2001
+From cb532b2040d32a84c7356766f37d73d0f2c2666a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1bbac8785cdf51bc6c5005c6754eab4d517cc4b0 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17 @@
- .mailmap                      | 1 +
- drivers/net/hns3/hns3_regs.c  | 3 ++-
+ drivers/net/hns3/hns3_regs.c  | 5 +++--
@@ -19 +19 @@
- 3 files changed, 4 insertions(+), 2 deletions(-)
+ 2 files changed, 4 insertions(+), 3 deletions(-)
@@ -21,12 +20,0 @@
-diff --git a/.mailmap b/.mailmap
-index 863dbecdb0..f00c1e5457 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -301,6 +301,7 @@ Deepak Khandelwal <deepak.khandelwal@intel.com>
- Deepak Kumar Jain <deepak.k.jain@intel.com>
- Deirdre O'Connor <deirdre.o.connor@intel.com>
- Dekel Peled <dekelp@nvidia.com> <dekelp@mellanox.com>
-+Dengdui Huang <huangdengdui@huawei.com>
- Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
- Dennis Marinus <dmarinus@amazon.com>
- Derek Chickles <derek.chickles@caviumnetworks.com>
@@ -34 +22 @@
-index 33392fd1f0..5d6f92e4bb 100644
+index cbc377adee..91261b1b1f 100644
@@ -37 +25 @@
-@@ -294,8 +294,9 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)
+@@ -270,8 +270,9 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)
@@ -41,2 +29,3 @@
--	uint16_t i, j;
- 	size_t reg_num;
+-	int reg_num;
+-	int i, j;
++	size_t reg_num;
@@ -49 +38 @@
-index bad65fcbed..c2e692a2c5 100644
+index 16cca25862..7e645361cf 100644
@@ -52 +41 @@
-@@ -317,7 +317,7 @@ hns3_update_mac_stats(struct hns3_hw *hw)
+@@ -338,7 +338,7 @@ hns3_update_mac_stats(struct hns3_hw *hw)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix Rx multiple firmware reset interrupts' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (25 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix variable type mismatch' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode for 200G ports' " luca.boccassi
                   ` (34 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From cce2668a9359a171d9742886b0db905aeb094586 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Mon, 22 May 2023 21:17:39 +0800
Subject: [PATCH] net/hns3: fix Rx multiple firmware reset interrupts

[ upstream commit e3c71325cec3353c4b9623310ece363a7c79604f ]

In the firmware (also known as IMP) reset scenario, driver interrupt
processing and firmware watchdog initialization are asynchronous.

If the driver interrupt processing is faster than firmware watchdog
initialization (that is, the driver clears the firmware reset
interrupt source before the firmware watchdog is initialized), the
driver will receive multiple firmware reset interrupts.

In the Kunpeng 920 platform, the above situation does not exist. But
it does on the newer platforms. So we add 5ms delay before drivers
clears the IMP reset interrupt source.

As for the impact of 5ms, the number of PFs managed by a firmware is
limited. Therefore, even if a DPDK process takes over all the PFs
which managed by the firmware, the delay is controllable.

Fixes: ee930d38ffca ("net/hns3: fix timing of clearing interrupt source")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 1ffa67f9e7..5561e80045 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -226,6 +226,19 @@ hns3_clear_all_event_cause(struct hns3_hw *hw)
 	hns3_clear_event_cause(hw, HNS3_VECTOR0_EVENT_MBX, 0);
 }
 
+static void
+hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uint32_t regclr)
+{
+#define IMPRESET_WAIT_MS_TIME	5
+
+	if (event_type == HNS3_VECTOR0_EVENT_RST &&
+	    regclr & BIT(HNS3_VECTOR0_IMPRESET_INT_B) &&
+	    hw->revision >= PCI_REVISION_ID_HIP09_A) {
+		rte_delay_ms(IMPRESET_WAIT_MS_TIME);
+		hns3_dbg(hw, "wait firmware watchdog initialization completed.");
+	}
+}
+
 static void
 hns3_interrupt_handler(void *param)
 {
@@ -239,6 +252,7 @@ hns3_interrupt_handler(void *param)
 	hns3_pf_disable_irq0(hw);
 
 	event_cause = hns3_check_event_cause(hns, &clearval);
+	hns3_delay_before_clear_event_cause(hw, event_cause, clearval);
 	hns3_clear_event_cause(hw, event_cause, clearval);
 	/* vector 0 interrupt is shared with reset and mailbox source events. */
 	if (event_cause == HNS3_VECTOR0_EVENT_ERR) {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.220911976 +0100
+++ 0028-net-hns3-fix-Rx-multiple-firmware-reset-interrupts.patch	2023-06-15 01:56:34.583541653 +0100
@@ -1 +1 @@
-From e3c71325cec3353c4b9623310ece363a7c79604f Mon Sep 17 00:00:00 2001
+From cce2668a9359a171d9742886b0db905aeb094586 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e3c71325cec3353c4b9623310ece363a7c79604f ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -32 +33 @@
-index 5ef66f96c6..664226a6ef 100644
+index 1ffa67f9e7..5561e80045 100644
@@ -35,2 +36,2 @@
-@@ -286,6 +286,19 @@ hns3_handle_mac_tnl(struct hns3_hw *hw)
- 	}
+@@ -226,6 +226,19 @@ hns3_clear_all_event_cause(struct hns3_hw *hw)
+ 	hns3_clear_event_cause(hw, HNS3_VECTOR0_EVENT_MBX, 0);
@@ -55,4 +56,4 @@
-@@ -305,6 +318,7 @@ hns3_interrupt_handler(void *param)
- 	vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
- 	ras_int = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
- 	cmdq_int = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
+@@ -239,6 +252,7 @@ hns3_interrupt_handler(void *param)
+ 	hns3_pf_disable_irq0(hw);
+ 
+ 	event_cause = hns3_check_event_cause(hns, &clearval);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix FEC mode for 200G ports' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (26 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix Rx multiple firmware reset interrupts' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode check' " luca.boccassi
                   ` (33 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Jie Hai; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From adbae13f9db61b672fb397f5773a509fabd44568 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Sat, 8 Apr 2023 10:27:33 +0800
Subject: [PATCH] net/hns3: fix FEC mode for 200G ports

[ upstream commit 0f015da9e207d43a8676714661209b76a8f062d1 ]

The hardware does not support NOFEC for 200G ports. So delete this
bit.

Fixes: 9bf2ea8dbc65 ("net/hns3: support FEC")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 5561e80045..c1b90ab025 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -83,8 +83,7 @@ static const struct rte_eth_fec_capa speed_fec_capa_tbl[] = {
 			      RTE_ETH_FEC_MODE_CAPA_MASK(AUTO) |
 			      RTE_ETH_FEC_MODE_CAPA_MASK(RS) },
 
-	{ ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(NOFEC) |
-			      RTE_ETH_FEC_MODE_CAPA_MASK(AUTO) |
+	{ ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(AUTO) |
 			      RTE_ETH_FEC_MODE_CAPA_MASK(RS) }
 };
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.267730698 +0100
+++ 0029-net-hns3-fix-FEC-mode-for-200G-ports.patch	2023-06-15 01:56:34.591541828 +0100
@@ -1 +1 @@
-From 0f015da9e207d43a8676714661209b76a8f062d1 Mon Sep 17 00:00:00 2001
+From adbae13f9db61b672fb397f5773a509fabd44568 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0f015da9e207d43a8676714661209b76a8f062d1 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 07d907d6a1..94eadefb8e 100644
+index 5561e80045..c1b90ab025 100644
@@ -26 +27 @@
--	{ RTE_ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(NOFEC) |
+-	{ ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(NOFEC) |
@@ -28 +29 @@
-+	{ RTE_ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(AUTO) |
++	{ ETH_SPEED_NUM_200G, RTE_ETH_FEC_MODE_CAPA_MASK(AUTO) |

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix FEC mode check' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (27 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode for 200G ports' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: fix format in flow API guide' " luca.boccassi
                   ` (32 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Jie Hai; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 511ebf2d683b28f3175b28b172b4ba4af39b2270 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Sat, 8 Apr 2023 10:27:34 +0800
Subject: [PATCH] net/hns3: fix FEC mode check

[ upstream commit 0cf0f931267ae751c503dba929307bb2a6acbbfa ]

The function is_fec_mode_one_bit_set() is used to check whether
the binary of the mode from user only contains one '1'. But it
uses the bytes number this mode variable occupied to calculate
the count. So this patch uses __builtin_popcount() to replace it.

This patch also extracts the code for verifying mode parameter into
a function.

Fixes: 9bf2ea8dbc65 ("net/hns3: support FEC")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 51 ++++++++++++++++------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index c1b90ab025..5d685b17f4 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -6095,53 +6095,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa)
 	return cur_capa;
 }
 
-static bool
-is_fec_mode_one_bit_set(uint32_t mode)
-{
-	int cnt = 0;
-	uint8_t i;
-
-	for (i = 0; i < sizeof(mode); i++)
-		if (mode >> i & 0x1)
-			cnt++;
-
-	return cnt == 1 ? true : false;
-}
-
 static int
-hns3_fec_set(struct rte_eth_dev *dev, uint32_t mode)
+hns3_fec_mode_valid(struct rte_eth_dev *dev, uint32_t mode)
 {
 #define FEC_CAPA_NUM 2
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(hns);
-	struct hns3_pf *pf = &hns->pf;
-
 	struct rte_eth_fec_capa fec_capa[FEC_CAPA_NUM];
-	uint32_t cur_capa;
 	uint32_t num = FEC_CAPA_NUM;
+	uint32_t cur_capa;
 	int ret;
 
+	if (__builtin_popcount(mode) != 1) {
+		hns3_err(hw, "FEC mode(0x%x) should be only one bit set", mode);
+		return -EINVAL;
+	}
+
 	ret = hns3_fec_get_capability(dev, fec_capa, num);
 	if (ret < 0)
 		return ret;
-
-	/* HNS3 PMD only support one bit set mode, e.g. 0x1, 0x4 */
-	if (!is_fec_mode_one_bit_set(mode)) {
-		hns3_err(hw, "FEC mode(0x%x) not supported in HNS3 PMD, "
-			     "FEC mode should be only one bit set", mode);
-		return -EINVAL;
-	}
-
 	/*
 	 * Check whether the configured mode is within the FEC capability.
 	 * If not, the configured mode will not be supported.
 	 */
 	cur_capa = get_current_speed_fec_cap(hw, fec_capa);
-	if (!(cur_capa & mode)) {
-		hns3_err(hw, "unsupported FEC mode = 0x%x", mode);
+	if ((cur_capa & mode) == 0) {
+		hns3_err(hw, "unsupported FEC mode(0x%x)", mode);
 		return -EINVAL;
 	}
 
+	return 0;
+}
+
+static int
+hns3_fec_set(struct rte_eth_dev *dev, uint32_t mode)
+{
+	struct hns3_adapter *hns = dev->data->dev_private;
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(hns);
+	struct hns3_pf *pf = &hns->pf;
+	int ret;
+
+	ret = hns3_fec_mode_valid(dev, mode);
+	if (ret != 0)
+		return ret;
+
 	rte_spinlock_lock(&hw->lock);
 	ret = hns3_set_fec_hw(hw, mode);
 	if (ret) {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.313822933 +0100
+++ 0030-net-hns3-fix-FEC-mode-check.patch	2023-06-15 01:56:34.599542003 +0100
@@ -1 +1 @@
-From 0cf0f931267ae751c503dba929307bb2a6acbbfa Mon Sep 17 00:00:00 2001
+From 511ebf2d683b28f3175b28b172b4ba4af39b2270 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0cf0f931267ae751c503dba929307bb2a6acbbfa ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -20,2 +21,2 @@
- drivers/net/hns3/hns3_ethdev.c | 50 ++++++++++++++++------------------
- 1 file changed, 24 insertions(+), 26 deletions(-)
+ drivers/net/hns3/hns3_ethdev.c | 51 ++++++++++++++++------------------
+ 1 file changed, 24 insertions(+), 27 deletions(-)
@@ -24 +25 @@
-index 94eadefb8e..4e8efa468d 100644
+index c1b90ab025..5d685b17f4 100644
@@ -27 +28 @@
-@@ -6139,52 +6139,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa)
+@@ -6095,53 +6095,50 @@ get_current_speed_fec_cap(struct hns3_hw *hw, struct rte_eth_fec_capa *fec_capa)
@@ -51,0 +53 @@
+-

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix format in flow API guide' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (28 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode check' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started during reset' " luca.boccassi
                   ` (31 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Michael Baum; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f4151bae8a345edbe7a74f378185cfaf45b01752 Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba@nvidia.com>
Date: Wed, 24 May 2023 00:31:53 +0300
Subject: [PATCH] doc: fix format in flow API guide

[ upstream commit 5d254667810fffe59190ca208a078bcb666a2a71 ]

The modify field action description inside "Generic flow API (rte_flow)"
documentation, lists all operations supported for a destination field.
In addition, it lists the values supported for a encapsulation level
field.
Before the lists, in both cases, miss a blank line causing them to look
regular text lines.
This patch adds the blank lines.

The asynchronous operations description inside "Generic flow API
(rte_flow)" documentation, adds some bullets to describe asynchronous
operations behavior.
Before the first bullet, miss a blank line causing it to look a regular
text line.
This patch adds the blank line.

The RSS action description inside "Generic flow API (rte_flow)"
documentation, lists the values supported for a encapsulation level
field.
For "2" value, it uses 3 spaces as an indentation instead of 2 after
line breaking, causing the first line to be bold.
This patch updates the number of spaces in the indentation.

Fixes: 73b68f4c54a0 ("ethdev: introduce generic modify flow action")
Fixes: 197e820c6685 ("ethdev: bring in async queue-based flow rules operations")
Fixes: 18aee2861a1f ("ethdev: add encap level to RSS flow API action")

Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 doc/guides/prog_guide/rte_flow.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 10e6d06853..6ac00d424f 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -1800,8 +1800,8 @@ Also, regarding packet encapsulation ``level``:
   level.
 
 - ``2`` and subsequent values request RSS to be performed on the specified
-   inner packet encapsulation level, from outermost to innermost (lower to
-   higher values).
+  inner packet encapsulation level, from outermost to innermost (lower to
+  higher values).
 
 Values other than ``0`` are not necessarily supported.
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.360753612 +0100
+++ 0031-doc-fix-format-in-flow-API-guide.patch	2023-06-15 01:56:34.603542090 +0100
@@ -1 +1 @@
-From 5d254667810fffe59190ca208a078bcb666a2a71 Mon Sep 17 00:00:00 2001
+From f4151bae8a345edbe7a74f378185cfaf45b01752 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5d254667810fffe59190ca208a078bcb666a2a71 ]
+
@@ -31 +32,0 @@
-Cc: stable@dpdk.org
@@ -36,2 +37,2 @@
- doc/guides/prog_guide/rte_flow.rst | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
+ doc/guides/prog_guide/rte_flow.rst | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
@@ -40 +41 @@
-index 27fa3dd304..7116c9ce23 100644
+index 10e6d06853..6ac00d424f 100644
@@ -43 +44 @@
-@@ -1968,8 +1968,8 @@ Also, regarding packet encapsulation ``level``:
+@@ -1800,8 +1800,8 @@ Also, regarding packet encapsulation ``level``:
@@ -54,38 +54,0 @@
-@@ -3049,20 +3049,23 @@ The immediate value ``RTE_FLOW_FIELD_VALUE`` (or a pointer to it
- ``RTE_FLOW_FIELD_START`` is used to point to the beginning of a packet.
- See ``enum rte_flow_field_id`` for the list of supported fields.
- 
--``op`` selects the operation to perform on a destination field.
-+``op`` selects the operation to perform on a destination field:
-+
- - ``set`` copies the data from ``src`` field to ``dst`` field.
- - ``add`` adds together ``dst`` and ``src`` and stores the result into ``dst``.
--- ``sub`` subtracts ``src`` from ``dst`` and stores the result into ``dst``
-+- ``sub`` subtracts ``src`` from ``dst`` and stores the result into ``dst``.
- 
- ``width`` defines a number of bits to use from ``src`` field.
- 
- ``level`` is used to access any packet field on any encapsulation level
--as well as any tag element in the tag array.
--- ``0`` means the default behaviour. Depending on the packet type, it can
--mean outermost, innermost or anything in between.
-+as well as any tag element in the tag array:
-+
-+- ``0`` means the default behaviour. Depending on the packet type,
-+  it can mean outermost, innermost or anything in between.
- - ``1`` requests access to the outermost packet encapsulation level.
- - ``2`` and subsequent values requests access to the specified packet
--encapsulation level, from outermost to innermost (lower to higher values).
-+  encapsulation level, from outermost to innermost (lower to higher values).
-+
- For the tag array (in case of multiple tags are supported and present)
- ``level`` translates directly into the array index.
- 
-@@ -3856,6 +3859,7 @@ Asynchronous operations
- -----------------------
- 
- Flow rules management can be done via special lockless flow management queues.
-+
- - Queue operations are asynchronous and not thread-safe.
- 
- - Operations can thus be invoked by the app's datapath,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix mbuf leakage when RxQ started during reset' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (29 preceding siblings ...)
  2023-06-15  1:32 ` patch 'doc: fix format in flow API guide' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started after " luca.boccassi
                   ` (30 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From dea7a629dfa59c9e051e75e8f64a526e83562f01 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Fri, 2 Jun 2023 19:41:59 +0800
Subject: [PATCH] net/hns3: fix mbuf leakage when RxQ started during reset

[ upstream commit bbc5a31b8ead8a353da5b1c46e0209d2fa9dae24 ]

In the reset restore-conf phase, the reset process will allocate for
the Rx ring mbufs unconditionlly.

And the rte_eth_dev_rx_queue_start() will also allocate for the Rx ring
mbufs unconditionlly.

So if the rte_eth_dev_rx_queue_start() is invoked before restore-conf
phase, then the mbufs allocated by rte_eth_dev_rx_queue_start() will
leak.

Because the hw->reset.resetting was always true during the phases from
stop-service to restore-conf, so fix it by returning an error if the
hw->reset.resetting is set.

This patch adds the above logic in both rx_queue_start/rx_queue_stop/
tx_queue_start/tx_queue_stop ops.

Fixes: fa29fe45a7b4 ("net/hns3: support queue start and stop")

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

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 18b2b42508..86fac45d5f 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -3997,6 +3997,13 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 		return -ENOTSUP;
 
 	rte_spinlock_lock(&hw->lock);
+
+	if (rte_atomic16_read(&hw->reset.resetting)) {
+		hns3_err(hw, "fail to start Rx queue during resetting.");
+		rte_spinlock_unlock(&hw->lock);
+		return -EIO;
+	}
+
 	ret = hns3_reset_queue(hw, rx_queue_id, HNS3_RING_TYPE_RX);
 	if (ret) {
 		hns3_err(hw, "fail to reset Rx queue %u, ret = %d.",
@@ -4043,6 +4050,13 @@ hns3_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 		return -ENOTSUP;
 
 	rte_spinlock_lock(&hw->lock);
+
+	if (rte_atomic16_read(&hw->reset.resetting)) {
+		hns3_err(hw, "fail to stop Rx queue during resetting.");
+		rte_spinlock_unlock(&hw->lock);
+		return -EIO;
+	}
+
 	hns3_enable_rxq(rxq, false);
 
 	hns3_rx_queue_release_mbufs(rxq);
@@ -4065,6 +4079,13 @@ hns3_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 		return -ENOTSUP;
 
 	rte_spinlock_lock(&hw->lock);
+
+	if (rte_atomic16_read(&hw->reset.resetting)) {
+		hns3_err(hw, "fail to start Tx queue during resetting.");
+		rte_spinlock_unlock(&hw->lock);
+		return -EIO;
+	}
+
 	ret = hns3_reset_queue(hw, tx_queue_id, HNS3_RING_TYPE_TX);
 	if (ret) {
 		hns3_err(hw, "fail to reset Tx queue %u, ret = %d.",
@@ -4091,6 +4112,13 @@ hns3_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 		return -ENOTSUP;
 
 	rte_spinlock_lock(&hw->lock);
+
+	if (rte_atomic16_read(&hw->reset.resetting)) {
+		hns3_err(hw, "fail to stop Tx queue during resetting.");
+		rte_spinlock_unlock(&hw->lock);
+		return -EIO;
+	}
+
 	hns3_enable_txq(txq, false);
 	hns3_tx_queue_release_mbufs(txq);
 	/*
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.406305518 +0100
+++ 0032-net-hns3-fix-mbuf-leakage-when-RxQ-started-during-re.patch	2023-06-15 01:56:34.607542177 +0100
@@ -1 +1 @@
-From bbc5a31b8ead8a353da5b1c46e0209d2fa9dae24 Mon Sep 17 00:00:00 2001
+From dea7a629dfa59c9e051e75e8f64a526e83562f01 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bbc5a31b8ead8a353da5b1c46e0209d2fa9dae24 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index 6468da903e..2bfc5507e3 100644
+index 18b2b42508..86fac45d5f 100644
@@ -36 +37 @@
-@@ -4523,6 +4523,13 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -3997,6 +3997,13 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
@@ -41 +42 @@
-+	if (__atomic_load_n(&hw->reset.resetting, __ATOMIC_RELAXED)) {
++	if (rte_atomic16_read(&hw->reset.resetting)) {
@@ -50 +51 @@
-@@ -4569,6 +4576,13 @@ hns3_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -4043,6 +4050,13 @@ hns3_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id)
@@ -55 +56 @@
-+	if (__atomic_load_n(&hw->reset.resetting, __ATOMIC_RELAXED)) {
++	if (rte_atomic16_read(&hw->reset.resetting)) {
@@ -64 +65 @@
-@@ -4591,6 +4605,13 @@ hns3_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
+@@ -4065,6 +4079,13 @@ hns3_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
@@ -69 +70 @@
-+	if (__atomic_load_n(&hw->reset.resetting, __ATOMIC_RELAXED)) {
++	if (rte_atomic16_read(&hw->reset.resetting)) {
@@ -78 +79 @@
-@@ -4617,6 +4638,13 @@ hns3_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
+@@ -4091,6 +4112,13 @@ hns3_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
@@ -83 +84 @@
-+	if (__atomic_load_n(&hw->reset.resetting, __ATOMIC_RELAXED)) {
++	if (rte_atomic16_read(&hw->reset.resetting)) {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix mbuf leakage when RxQ started after reset' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (30 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started during reset' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix device start return value' " luca.boccassi
                   ` (29 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 755159ae805c7d106b72f8a2157e338581454377 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Fri, 2 Jun 2023 19:42:00 +0800
Subject: [PATCH] net/hns3: fix mbuf leakage when RxQ started after reset

[ upstream commit f81a18f491522c56ca7ee6ea78be10c784f2ae32 ]

In the reset restore-conf phase, the reset process will allocate for
the Rx ring mbufs unconditionlly.

And the rte_eth_dev_rx_queue_start() will also allocate for the Rx ring
mbufs unconditionlly.

So if the rte_eth_dev_rx_queue_start() is invoked after restore-conf
phase, then the mbufs allocated in restore-conf phase will leak.

So fix it by conditional release Rx ring mbufs in
rte_eth_dev_rx_queue_start(): if the Rx ring mbufs were allocated then
release them first.

This patch also set all sw-ring[]'s mbuf is NULL when release Rx ring
mbufs so that we can determine whether the Rx ring mbufs were allocated
based only on the first sw-ring[0]'s mbuf.

Fixes: fa29fe45a7b4 ("net/hns3: support queue start and stop")

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

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 86fac45d5f..bf07a5071a 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -54,6 +54,8 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
 				rxq->sw_ring[i].mbuf = NULL;
 			}
 		}
+		for (i = 0; i < rxq->rx_rearm_nb; i++)
+			rxq->sw_ring[rxq->rx_rearm_start + i].mbuf = NULL;
 	}
 
 	for (i = 0; i < rxq->bulk_mbuf_num; i++)
@@ -4012,6 +4014,9 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 		return ret;
 	}
 
+	if (rxq->sw_ring[0].mbuf != NULL)
+		hns3_rx_queue_release_mbufs(rxq);
+
 	ret = hns3_init_rxq(hns, rx_queue_id);
 	if (ret) {
 		hns3_err(hw, "fail to init Rx queue %u, ret = %d.",
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.451052121 +0100
+++ 0033-net-hns3-fix-mbuf-leakage-when-RxQ-started-after-res.patch	2023-06-15 01:56:34.611542265 +0100
@@ -1 +1 @@
-From f81a18f491522c56ca7ee6ea78be10c784f2ae32 Mon Sep 17 00:00:00 2001
+From 755159ae805c7d106b72f8a2157e338581454377 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f81a18f491522c56ca7ee6ea78be10c784f2ae32 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index 2bfc5507e3..2493748683 100644
+index 86fac45d5f..bf07a5071a 100644
@@ -36 +37 @@
-@@ -50,6 +50,8 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
+@@ -54,6 +54,8 @@ hns3_rx_queue_release_mbufs(struct hns3_rx_queue *rxq)
@@ -45 +46 @@
-@@ -4538,6 +4540,9 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
+@@ -4012,6 +4014,9 @@ hns3_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix device start return value' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (31 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started after " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix uninitialized variable' " luca.boccassi
                   ` (28 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 76ad0dd4e749b9b75622fce4c862e238c926165d Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Fri, 2 Jun 2023 19:42:01 +0800
Subject: [PATCH] net/hns3: fix device start return value

[ upstream commit a9e2ac08156cbbe5cd3c72300618b871dedffd15 ]

If hns3_init_queues() return failed, the hns3vf_do_start() should
return errcode. This patch fixes it.

Fixes: 43d8adf3891c ("net/hns3: fix RSS flow rule restore")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 94652dfb1d..f5664201bb 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2090,8 +2090,10 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
 		return ret;
 
 	ret = hns3_init_queues(hns, reset_queue);
-	if (ret)
+	if (ret) {
 		hns3_err(hw, "failed to init queues, ret = %d.", ret);
+		return ret;
+	}
 
 	return hns3_restore_filter(hns);
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.496220784 +0100
+++ 0034-net-hns3-fix-device-start-return-value.patch	2023-06-15 01:56:34.615542352 +0100
@@ -1 +1 @@
-From a9e2ac08156cbbe5cd3c72300618b871dedffd15 Mon Sep 17 00:00:00 2001
+From 76ad0dd4e749b9b75622fce4c862e238c926165d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a9e2ac08156cbbe5cd3c72300618b871dedffd15 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index d051a1357b..5aac62a41f 100644
+index 94652dfb1d..f5664201bb 100644
@@ -22,2 +23,2 @@
-@@ -1674,8 +1674,10 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
- 	hns3_enable_rxd_adv_layout(hw);
+@@ -2090,8 +2090,10 @@ hns3vf_do_start(struct hns3_adapter *hns, bool reset_queue)
+ 		return ret;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix uninitialized variable' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (32 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix device start return value' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix inaccurate log' " luca.boccassi
                   ` (27 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Jie Hai; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b184f7f728fea63a846b05c162b7dfc5bbf055a3 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 2 Jun 2023 19:42:02 +0800
Subject: [PATCH] net/hns3: fix uninitialized variable

[ upstream commit 156496da7a527e36066596a7be7758037b2541b4 ]

This patch fixes possible use of uninitialized variable
"old_tuple_fields".

Fixes: e3069658da9f ("net/hns3: reimplement hash flow function")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_flow.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index 3bc6061f30..79910ff982 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -1934,8 +1934,9 @@ hns3_flow_set_rss_ptype_tuple(struct hns3_hw *hw,
 	if (ret != 0)
 		return ret;
 
-	hns3_info(hw, "RSS tuple fields changed from 0x%" PRIx64 " to 0x%" PRIx64,
-		  old_tuple_fields, new_tuple_fields);
+	if (!cfg_global_tuple)
+		hns3_info(hw, "RSS tuple fields changed from 0x%" PRIx64 " to 0x%" PRIx64,
+			  old_tuple_fields, new_tuple_fields);
 
 	return 0;
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.540321478 +0100
+++ 0035-net-hns3-fix-uninitialized-variable.patch	2023-06-15 01:56:34.615542352 +0100
@@ -1 +1 @@
-From 156496da7a527e36066596a7be7758037b2541b4 Mon Sep 17 00:00:00 2001
+From b184f7f728fea63a846b05c162b7dfc5bbf055a3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 156496da7a527e36066596a7be7758037b2541b4 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index e132d88fa1..a5a7e452d8 100644
+index 3bc6061f30..79910ff982 100644
@@ -22 +23 @@
-@@ -1944,8 +1944,9 @@ hns3_flow_set_rss_ptype_tuple(struct hns3_hw *hw,
+@@ -1934,8 +1934,9 @@ hns3_flow_set_rss_ptype_tuple(struct hns3_hw *hw,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix inaccurate log' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (33 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix uninitialized variable' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix redundant line break in " luca.boccassi
                   ` (26 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From e765fbe6b8e9703ce8f10f5b637bc4e09a14e7be Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 2 Jun 2023 19:42:04 +0800
Subject: [PATCH] net/hns3: fix inaccurate log

[ upstream commit 94e9574f0bc5c1b5c2ac15b86ffb28bdbdc238c4 ]

This patch fix inaccurate log

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")
Fixes: a951c1ed3ab5 ("net/hns3: support different numbers of Rx and Tx queues")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index bf07a5071a..963a20627b 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -581,7 +581,7 @@ hns3_tqp_enable(struct hns3_hw *hw, uint16_t queue_id, bool enable)
 
 	ret = hns3_cmd_send(hw, &desc, 1);
 	if (ret)
-		hns3_err(hw, "TQP enable fail, ret = %d", ret);
+		hns3_err(hw, "TQP %s fail, ret = %d", enable ? "enable" : "disable", ret);
 
 	return ret;
 }
@@ -1638,7 +1638,7 @@ hns3_set_fake_rx_or_tx_queues(struct rte_eth_dev *dev, uint16_t nb_rx_q,
 
 	ret = hns3_fake_tx_queue_config(hw, tx_need_add_nb_q);
 	if (ret) {
-		hns3_err(hw, "Fail to configure fake rx queues: %d", ret);
+		hns3_err(hw, "Fail to configure fake tx queues: %d", ret);
 		goto cfg_fake_tx_q_fail;
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.583440573 +0100
+++ 0036-net-hns3-fix-inaccurate-log.patch	2023-06-15 01:56:34.623542527 +0100
@@ -1 +1 @@
-From 94e9574f0bc5c1b5c2ac15b86ffb28bdbdc238c4 Mon Sep 17 00:00:00 2001
+From e765fbe6b8e9703ce8f10f5b637bc4e09a14e7be Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 94e9574f0bc5c1b5c2ac15b86ffb28bdbdc238c4 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index cf04dc857e..f3c3b38c55 100644
+index bf07a5071a..963a20627b 100644
@@ -22 +23 @@
-@@ -586,7 +586,7 @@ hns3_tqp_enable(struct hns3_hw *hw, uint16_t queue_id, bool enable)
+@@ -581,7 +581,7 @@ hns3_tqp_enable(struct hns3_hw *hw, uint16_t queue_id, bool enable)
@@ -31 +32 @@
-@@ -1635,7 +1635,7 @@ hns3_set_fake_rx_or_tx_queues(struct rte_eth_dev *dev, uint16_t nb_rx_q,
+@@ -1638,7 +1638,7 @@ hns3_set_fake_rx_or_tx_queues(struct rte_eth_dev *dev, uint16_t nb_rx_q,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix redundant line break in log' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (34 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix inaccurate log' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/hns3: fix IMP reset trigger' " luca.boccassi
                   ` (25 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f839abd1207c496ffba606b3763dced1ce07187f Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 2 Jun 2023 19:42:05 +0800
Subject: [PATCH] net/hns3: fix redundant line break in log

[ upstream commit 0b5e15ea5f8841e43c63350e47cbfddbb92dc25c ]

This patch remove log redundant line break

Fixes: d51867db65c1 ("net/hns3: add initialization")
Fixes: c6332c3cf9f0 ("net/hns3: support module EEPROM dump")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 5d685b17f4..552280f35d 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4088,7 +4088,7 @@ hns3_get_mac_ethertype_cmd_status(uint16_t cmdq_resp, uint8_t resp_code)
 
 	if (cmdq_resp) {
 		PMD_INIT_LOG(ERR,
-			     "cmdq execute failed for get_mac_ethertype_cmd_status, status=%u.\n",
+			     "cmdq execute failed for get_mac_ethertype_cmd_status, status=%u.",
 			     cmdq_resp);
 		return -EIO;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.629128980 +0100
+++ 0037-net-hns3-fix-redundant-line-break-in-log.patch	2023-06-15 01:56:34.627542615 +0100
@@ -1 +1 @@
-From 0b5e15ea5f8841e43c63350e47cbfddbb92dc25c Mon Sep 17 00:00:00 2001
+From f839abd1207c496ffba606b3763dced1ce07187f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0b5e15ea5f8841e43c63350e47cbfddbb92dc25c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +16,2 @@
- drivers/net/hns3/hns3_ethdev.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ drivers/net/hns3/hns3_ethdev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
@@ -19 +20 @@
-index 64028778d0..dccd1d416f 100644
+index 5d685b17f4..552280f35d 100644
@@ -22 +23 @@
-@@ -3631,7 +3631,7 @@ hns3_get_mac_ethertype_cmd_status(uint16_t cmdq_resp, uint8_t resp_code)
+@@ -4088,7 +4088,7 @@ hns3_get_mac_ethertype_cmd_status(uint16_t cmdq_resp, uint8_t resp_code)
@@ -30,36 +30,0 @@
- 	}
-@@ -6235,7 +6235,7 @@ hns3_optical_module_existed(struct hns3_hw *hw)
- 	ret = hns3_cmd_send(hw, &desc, 1);
- 	if (ret) {
- 		hns3_err(hw,
--			 "fail to get optical module exist state, ret = %d.\n",
-+			 "fail to get optical module exist state, ret = %d.",
- 			 ret);
- 		return false;
- 	}
-@@ -6273,7 +6273,7 @@ hns3_get_module_eeprom_data(struct hns3_hw *hw, uint32_t offset,
- 
- 	ret = hns3_cmd_send(hw, desc, HNS3_SFP_INFO_CMD_NUM);
- 	if (ret) {
--		hns3_err(hw, "fail to get module EEPROM info, ret = %d.\n",
-+		hns3_err(hw, "fail to get module EEPROM info, ret = %d.",
- 				ret);
- 		return ret;
- 	}
-@@ -6310,7 +6310,7 @@ hns3_get_module_eeprom(struct rte_eth_dev *dev,
- 		return -ENOTSUP;
- 
- 	if (!hns3_optical_module_existed(hw)) {
--		hns3_err(hw, "fail to read module EEPROM: no module is connected.\n");
-+		hns3_err(hw, "fail to read module EEPROM: no module is connected.");
- 		return -EIO;
- 	}
- 
-@@ -6373,7 +6373,7 @@ hns3_get_module_info(struct rte_eth_dev *dev,
- 		modinfo->eeprom_len = RTE_ETH_MODULE_SFF_8636_MAX_LEN;
- 		break;
- 	default:
--		hns3_err(hw, "unknown module, type = %u, extra_type = %u.\n",
-+		hns3_err(hw, "unknown module, type = %u, extra_type = %u.",
- 			 sfp_type.type, sfp_type.ext_type);
- 		return -EINVAL;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix IMP reset trigger' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (35 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix redundant line break in " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/nfp: fix offloading flows' " luca.boccassi
                   ` (24 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Huisong Li; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 56685a6aa93353786a3ba245c1e2d55d70313deb Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 6 Jun 2023 20:10:28 +0800
Subject: [PATCH] net/hns3: fix IMP reset trigger

[ upstream commit 56a6c88ba27bfba838b56796de364db04c59b84b ]

Currently, driver sends the command with an unknown opcode to the
firmware to trigger IMP reset when some hardware error happened.
This unknown opcode cannot be parsed by the firmware.

So this patch fixes the way by writing register to do it.

Fixes: 2790c6464725 ("net/hns3: support device reset")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 552280f35d..2da2f1e9ec 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -44,6 +44,7 @@
 #define HNS3_VECTOR0_IMP_CMDQ_ERR_B	4U
 #define HNS3_VECTOR0_IMP_RD_POISON_B	5U
 #define HNS3_VECTOR0_ALL_MSIX_ERR_B	6U
+#define HNS3_VECTOR0_TRIGGER_IMP_RESET_B	7U
 
 #define HNS3_RESET_WAIT_MS	100
 #define HNS3_RESET_WAIT_CNT	200
@@ -5532,17 +5533,6 @@ hns3_func_reset_cmd(struct hns3_hw *hw, int func_id)
 	return hns3_cmd_send(hw, &desc, 1);
 }
 
-static int
-hns3_imp_reset_cmd(struct hns3_hw *hw)
-{
-	struct hns3_cmd_desc desc;
-
-	hns3_cmd_setup_basic_desc(&desc, 0xFFFE, false);
-	desc.data[0] = 0xeedd;
-
-	return hns3_cmd_send(hw, &desc, 1);
-}
-
 static void
 hns3_msix_process(struct hns3_adapter *hns, enum hns3_reset_level reset_level)
 {
@@ -5560,7 +5550,9 @@ hns3_msix_process(struct hns3_adapter *hns, enum hns3_reset_level reset_level)
 
 	switch (reset_level) {
 	case HNS3_IMP_RESET:
-		hns3_imp_reset_cmd(hw);
+		val = hns3_read_dev(hw, HNS3_VECTOR0_OTER_EN_REG);
+		hns3_set_bit(val, HNS3_VECTOR0_TRIGGER_IMP_RESET_B, 1);
+		hns3_write_dev(hw, HNS3_VECTOR0_OTER_EN_REG, val);
 		hns3_warn(hw, "IMP Reset requested time=%ld.%.6ld",
 			  tv.tv_sec, tv.tv_usec);
 		break;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.676668059 +0100
+++ 0038-net-hns3-fix-IMP-reset-trigger.patch	2023-06-15 01:56:34.635542789 +0100
@@ -1 +1 @@
-From 56a6c88ba27bfba838b56796de364db04c59b84b Mon Sep 17 00:00:00 2001
+From 56685a6aa93353786a3ba245c1e2d55d70313deb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 56a6c88ba27bfba838b56796de364db04c59b84b ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index dccd1d416f..95c72e86aa 100644
+index 552280f35d..2da2f1e9ec 100644
@@ -33 +34 @@
-@@ -5575,17 +5576,6 @@ hns3_func_reset_cmd(struct hns3_hw *hw, int func_id)
+@@ -5532,17 +5533,6 @@ hns3_func_reset_cmd(struct hns3_hw *hw, int func_id)
@@ -51 +52 @@
-@@ -5603,7 +5593,9 @@ hns3_msix_process(struct hns3_adapter *hns, enum hns3_reset_level reset_level)
+@@ -5560,7 +5550,9 @@ hns3_msix_process(struct hns3_adapter *hns, enum hns3_reset_level reset_level)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/nfp: fix offloading flows' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (36 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/hns3: fix IMP reset trigger' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/vmxnet3: fix return code in initializing' " luca.boccassi
                   ` (23 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Chaoyong He; +Cc: Niklas Söderlund, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 0b8a7a74c25bdf9dab4450df4add516b8d8f0517 Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he@corigine.com>
Date: Wed, 7 Jun 2023 09:57:00 +0800
Subject: [PATCH] net/nfp: fix offloading flows
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 925c27ec8de92efe69f4cb56e3fc0e413354c739 ]

The symbol '_abi_flower_extra_features' is in IMEM for NFP4000,
but in EMU_CACHE for NFP3800 because which does not have IMEM.

The original logic can't read symbol from EMU_CACHE, so the probe
process will fail when we try to offload flows use NFP3800.

Modify the related data structure and logics to support read symbol
from EMU_CACHE.

Fixes: c7e9729da6b5 ("net/nfp: support CPP")

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
---
 drivers/net/nfp/nfp_net.c             |   4 +-
 drivers/net/nfp/nfpcore/nfp_cpp.h     |   7 +-
 drivers/net/nfp/nfpcore/nfp_cppcore.c |  52 +++++++---
 drivers/net/nfp/nfpcore/nfp_rtsym.c   | 134 +++++++++++++++++++++++---
 4 files changed, 172 insertions(+), 25 deletions(-)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index ed1b4ff0bd..17e48f1710 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -2797,6 +2797,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 
 	uint64_t tx_bar_off = 0, rx_bar_off = 0;
 	uint32_t start_q;
+	uint32_t cpp_id;
 	int stride = 4;
 	int port = 0;
 	int err;
@@ -2908,7 +2909,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 
 	if (hw->is_pf && port == 0) {
 		/* configure access to tx/rx vNIC BARs */
-		hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, 0, 0,
+		cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0);
+		hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, cpp_id,
 						      NFP_PCIE_QUEUE(0),
 						      NFP_QCP_QUEUE_AREA_SZ,
 						      &hw->hwqueues_area);
diff --git a/drivers/net/nfp/nfpcore/nfp_cpp.h b/drivers/net/nfp/nfpcore/nfp_cpp.h
index 08d656da14..84482df14a 100644
--- a/drivers/net/nfp/nfpcore/nfp_cpp.h
+++ b/drivers/net/nfp/nfpcore/nfp_cpp.h
@@ -34,6 +34,9 @@ struct nfp_cpp {
 	 */
 	uint32_t imb_cat_table[16];
 
+	/* MU access type bit offset */
+	uint32_t mu_locality_lsb;
+
 	int driver_lock_needed;
 };
 
@@ -363,7 +366,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp,
  */
 void nfp_cpp_area_release_free(struct nfp_cpp_area *area);
 
-uint8_t *nfp_cpp_map_area(struct nfp_cpp *cpp, int domain, int target,
+uint8_t *nfp_cpp_map_area(struct nfp_cpp *cpp, uint32_t cpp_id,
 			   uint64_t addr, unsigned long size,
 			   struct nfp_cpp_area **area);
 /*
@@ -778,4 +781,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex);
  */
 int nfp_cpp_mutex_trylock(struct nfp_cpp_mutex *mutex);
 
+uint32_t nfp_cpp_mu_locality_lsb(struct nfp_cpp *cpp);
+
 #endif /* !__NFP_CPP_H__ */
diff --git a/drivers/net/nfp/nfpcore/nfp_cppcore.c b/drivers/net/nfp/nfpcore/nfp_cppcore.c
index 40d70b9625..b74892a8d0 100644
--- a/drivers/net/nfp/nfpcore/nfp_cppcore.c
+++ b/drivers/net/nfp/nfpcore/nfp_cppcore.c
@@ -11,6 +11,7 @@
 #include <errno.h>
 #include <sys/types.h>
 
+#include <rte_bitops.h>
 #include <rte_byteorder.h>
 #include <rte_ethdev_pci.h>
 
@@ -118,6 +119,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area)
 	return cpp_area->name;
 }
 
+#define NFP_IMB_TGTADDRESSMODECFG_MODE_of(_x)       (((_x) >> 13) & 0x7)
+#define NFP_IMB_TGTADDRESSMODECFG_ADDRMODE          RTE_BIT32(12)
+
+static int
+nfp_cpp_set_mu_locality_lsb(struct nfp_cpp *cpp)
+{
+	int ret;
+	int mode;
+	int addr40;
+	uint32_t imbcppat;
+
+	imbcppat = cpp->imb_cat_table[NFP_CPP_TARGET_MU];
+	mode = NFP_IMB_TGTADDRESSMODECFG_MODE_of(imbcppat);
+	addr40 = imbcppat & NFP_IMB_TGTADDRESSMODECFG_ADDRMODE;
+
+	ret = nfp_cppat_mu_locality_lsb(mode, addr40);
+	if (ret < 0)
+		return ret;
+
+	cpp->mu_locality_lsb = ret;
+
+	return 0;
+}
+
+uint32_t
+nfp_cpp_mu_locality_lsb(struct nfp_cpp *cpp)
+{
+	return cpp->mu_locality_lsb;
+}
+
 /*
  * nfp_cpp_area_alloc - allocate a new CPP area
  * @cpp:    CPP handle
@@ -142,10 +173,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest,
 	if (!cpp)
 		return NULL;
 
-	/* CPP bus uses only a 40-bit address */
-	if ((address + size) > (1ULL << 40))
-		return NFP_ERRPTR(EFAULT);
-
 	/* Remap from cpp_island to cpp_target */
 	err = nfp_target_cpp(dest, tmp64, &dest, &tmp64, cpp->imb_cat_table);
 	if (err < 0)
@@ -588,6 +615,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed)
 		}
 	}
 
+	err = nfp_cpp_set_mu_locality_lsb(cpp);
+	if (err < 0) {
+		printf("Can't calculate MU locality bit offset");
+		free(cpp);
+		return NULL;
+	}
+
 	return cpp;
 }
 
@@ -819,8 +853,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
 /*
  * nfp_cpp_map_area() - Helper function to map an area
  * @cpp:    NFP CPP handler
- * @domain: CPP domain
- * @target: CPP target
+ * @cpp_id: CPP ID
  * @addr:   CPP address
  * @size:   Size of the area
  * @area:   Area handle (output)
@@ -831,15 +864,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
  * Return: Pointer to memory mapped area or ERR_PTR
  */
 uint8_t *
-nfp_cpp_map_area(struct nfp_cpp *cpp, int domain, int target, uint64_t addr,
+nfp_cpp_map_area(struct nfp_cpp *cpp, uint32_t cpp_id, uint64_t addr,
 		 unsigned long size, struct nfp_cpp_area **area)
 {
 	uint8_t *res;
-	uint32_t dest;
 
-	dest = NFP_CPP_ISLAND_ID(target, NFP_CPP_ACTION_RW, 0, domain);
-
-	*area = nfp_cpp_area_alloc_acquire(cpp, dest, addr, size);
+	*area = nfp_cpp_area_alloc_acquire(cpp, cpp_id, addr, size);
 	if (!*area)
 		goto err_eio;
 
diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.c b/drivers/net/nfp/nfpcore/nfp_rtsym.c
index 2feca2ed81..1258fdb0e1 100644
--- a/drivers/net/nfp/nfpcore/nfp_rtsym.c
+++ b/drivers/net/nfp/nfpcore/nfp_rtsym.c
@@ -232,6 +232,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name)
 	return NULL;
 }
 
+static uint64_t
+nfp_rtsym_size(const struct nfp_rtsym *sym)
+{
+	switch (sym->type) {
+	case NFP_RTSYM_TYPE_NONE:
+		printf("rtsym '%s': type NONE", sym->name);
+		return 0;
+	case NFP_RTSYM_TYPE_OBJECT:    /* Fall through */
+	case NFP_RTSYM_TYPE_FUNCTION:
+		return sym->size;
+	case NFP_RTSYM_TYPE_ABS:
+		return sizeof(uint64_t);
+	default:
+		printf("rtsym '%s': unknown type: %d", sym->name, sym->type);
+		return 0;
+	}
+}
+
+static int
+nfp_rtsym_to_dest(struct nfp_cpp *cpp,
+		const struct nfp_rtsym *sym,
+		uint8_t action,
+		uint8_t token,
+		uint64_t offset,
+		uint32_t *cpp_id,
+		uint64_t *addr)
+{
+	if (sym->type != NFP_RTSYM_TYPE_OBJECT) {
+		printf("rtsym '%s': direct access to non-object rtsym",
+				sym->name);
+		return -EINVAL;
+	}
+
+	*addr = sym->addr + offset;
+
+	if (sym->target >= 0) {
+		*cpp_id = NFP_CPP_ISLAND_ID(sym->target, action, token, sym->domain);
+	} else if (sym->target == NFP_RTSYM_TARGET_EMU_CACHE) {
+		int locality_off = nfp_cpp_mu_locality_lsb(cpp);
+
+		*addr &= ~(NFP_MU_ADDR_ACCESS_TYPE_MASK << locality_off);
+		*addr |= NFP_MU_ADDR_ACCESS_TYPE_DIRECT << locality_off;
+
+		*cpp_id = NFP_CPP_ISLAND_ID(NFP_CPP_TARGET_MU, action, token,
+				sym->domain);
+	} else {
+		printf("rtsym '%s': unhandled target encoding: %d",
+				sym->name, sym->target);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int
+nfp_rtsym_readl(struct nfp_cpp *cpp,
+		const struct nfp_rtsym *sym,
+		uint8_t action,
+		uint8_t token,
+		uint64_t offset,
+		uint32_t *value)
+{
+	int ret;
+	uint64_t addr;
+	uint32_t cpp_id;
+
+	if (offset + 4 > nfp_rtsym_size(sym)) {
+		printf("rtsym '%s': readl out of bounds", sym->name);
+		return -ENXIO;
+	}
+
+	ret = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+	if (ret != 0)
+		return ret;
+
+	return nfp_cpp_readl(cpp, cpp_id, addr, value);
+}
+
+static int
+nfp_rtsym_readq(struct nfp_cpp *cpp,
+		const struct nfp_rtsym *sym,
+		uint8_t action,
+		uint8_t token,
+		uint64_t offset,
+		uint64_t *value)
+{
+	int ret;
+	uint64_t addr;
+	uint32_t cpp_id;
+
+	if (offset + 8 > nfp_rtsym_size(sym)) {
+		printf("rtsym '%s': readq out of bounds", sym->name);
+		return -ENXIO;
+	}
+
+	if (sym->type == NFP_RTSYM_TYPE_ABS) {
+		*value = sym->addr;
+		return 0;
+	}
+
+	ret = nfp_rtsym_to_dest(cpp, sym, action, token, offset, &cpp_id, &addr);
+	if (ret != 0)
+		return ret;
+
+	return nfp_cpp_readq(cpp, cpp_id, addr, value);
+}
+
 /*
  * nfp_rtsym_read_le() - Read a simple unsigned scalar value from symbol
  * @rtbl:	NFP RTsym table
@@ -248,7 +355,7 @@ uint64_t
 nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error)
 {
 	const struct nfp_rtsym *sym;
-	uint32_t val32, id;
+	uint32_t val32;
 	uint64_t val;
 	int err;
 
@@ -258,19 +365,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error)
 		goto exit;
 	}
 
-	id = NFP_CPP_ISLAND_ID(sym->target, NFP_CPP_ACTION_RW, 0, sym->domain);
-
-#ifdef DEBUG
-	printf("Reading symbol %s with size %" PRIu64 " at %" PRIx64 "\n",
-		name, sym->size, sym->addr);
-#endif
 	switch (sym->size) {
 	case 4:
-		err = nfp_cpp_readl(rtbl->cpp, id, sym->addr, &val32);
+		err = nfp_rtsym_readl(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val32);
 		val = val32;
 		break;
 	case 8:
-		err = nfp_cpp_readq(rtbl->cpp, id, sym->addr, &val);
+		err = nfp_rtsym_readq(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0, &val);
 		break;
 	default:
 		printf("rtsym '%s' unsupported size: %" PRId64 "\n",
@@ -295,8 +396,11 @@ uint8_t *
 nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name,
 	      unsigned int min_size, struct nfp_cpp_area **area)
 {
-	const struct nfp_rtsym *sym;
+	int ret;
 	uint8_t *mem;
+	uint64_t addr;
+	uint32_t cpp_id;
+	const struct nfp_rtsym *sym;
 
 #ifdef DEBUG
 	printf("mapping symbol %s\n", name);
@@ -307,14 +411,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name,
 		return NULL;
 	}
 
+	ret = nfp_rtsym_to_dest(rtbl->cpp, sym, NFP_CPP_ACTION_RW, 0, 0,
+			&cpp_id, &addr);
+	if (ret != 0) {
+		printf("rtsym '%s': mapping failed", name);
+		return NULL;
+	}
+
 	if (sym->size < min_size) {
 		printf("Symbol %s too small (%" PRIu64 " < %u)\n", name,
 			sym->size, min_size);
 		return NULL;
 	}
 
-	mem = nfp_cpp_map_area(rtbl->cpp, sym->domain, sym->target, sym->addr,
-			       sym->size, area);
+	mem = nfp_cpp_map_area(rtbl->cpp, cpp_id, addr, sym->size, area);
 	if (!mem) {
 		printf("Failed to map symbol %s\n", name);
 		return NULL;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.723101016 +0100
+++ 0039-net-nfp-fix-offloading-flows.patch	2023-06-15 01:56:34.639542877 +0100
@@ -1 +1 @@
-From 925c27ec8de92efe69f4cb56e3fc0e413354c739 Mon Sep 17 00:00:00 2001
+From 0b8a7a74c25bdf9dab4450df4add516b8d8f0517 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 925c27ec8de92efe69f4cb56e3fc0e413354c739 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
- drivers/net/nfp/nfp_ethdev.c          |   4 +-
+ drivers/net/nfp/nfp_net.c             |   4 +-
@@ -26,3 +27,3 @@
- drivers/net/nfp/nfpcore/nfp_cppcore.c |  51 +++++++---
- drivers/net/nfp/nfpcore/nfp_rtsym.c   | 132 ++++++++++++++++++++++++--
- 4 files changed, 171 insertions(+), 23 deletions(-)
+ drivers/net/nfp/nfpcore/nfp_cppcore.c |  52 +++++++---
+ drivers/net/nfp/nfpcore/nfp_rtsym.c   | 134 +++++++++++++++++++++++---
+ 4 files changed, 172 insertions(+), 25 deletions(-)
@@ -30,8 +31,8 @@
-diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
-index f73bffc09b..e84d2ac82e 100644
---- a/drivers/net/nfp/nfp_ethdev.c
-+++ b/drivers/net/nfp/nfp_ethdev.c
-@@ -937,6 +937,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
- 	int ret;
- 	int err = 0;
- 	uint64_t addr;
+diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
+index ed1b4ff0bd..17e48f1710 100644
+--- a/drivers/net/nfp/nfp_net.c
++++ b/drivers/net/nfp/nfp_net.c
+@@ -2797,6 +2797,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
+ 
+ 	uint64_t tx_bar_off = 0, rx_bar_off = 0;
+ 	uint32_t start_q;
@@ -39,6 +40,4 @@
- 	struct nfp_cpp *cpp;
- 	enum nfp_app_fw_id app_fw_id;
- 	struct nfp_pf_dev *pf_dev;
-@@ -1036,7 +1037,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
- 		goto pf_cleanup;
- 	}
+ 	int stride = 4;
+ 	int port = 0;
+ 	int err;
+@@ -2908,7 +2909,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
@@ -46,6 +45,8 @@
--	pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0,
-+	cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0);
-+	pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, cpp_id,
- 			addr, NFP_QCP_QUEUE_AREA_SZ,
- 			&pf_dev->hwqueues_area);
- 	if (pf_dev->hw_queues == NULL) {
+ 	if (hw->is_pf && port == 0) {
+ 		/* configure access to tx/rx vNIC BARs */
+-		hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, 0, 0,
++		cpp_id = NFP_CPP_ISLAND_ID(0, NFP_CPP_ACTION_RW, 0, 0);
++		hwport0->hw_queues = nfp_cpp_map_area(hw->cpp, cpp_id,
+ 						      NFP_PCIE_QUEUE(0),
+ 						      NFP_QCP_QUEUE_AREA_SZ,
+ 						      &hw->hwqueues_area);
@@ -53 +54 @@
-index 2441012b95..8f87c09327 100644
+index 08d656da14..84482df14a 100644
@@ -56 +57 @@
-@@ -31,6 +31,9 @@ struct nfp_cpp {
+@@ -34,6 +34,9 @@ struct nfp_cpp {
@@ -66 +67 @@
-@@ -455,7 +458,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp,
+@@ -363,7 +366,7 @@ struct nfp_cpp_area *nfp_cpp_area_alloc_acquire(struct nfp_cpp *cpp,
@@ -75 +76 @@
-@@ -869,4 +872,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex);
+@@ -778,4 +781,6 @@ int nfp_cpp_mutex_unlock(struct nfp_cpp_mutex *mutex);
@@ -83 +84 @@
-index 681ec93b96..6daee313ce 100644
+index 40d70b9625..b74892a8d0 100644
@@ -86 +87,9 @@
-@@ -118,6 +118,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area)
+@@ -11,6 +11,7 @@
+ #include <errno.h>
+ #include <sys/types.h>
+ 
++#include <rte_bitops.h>
+ #include <rte_byteorder.h>
+ #include <rte_ethdev_pci.h>
+ 
+@@ -118,6 +119,36 @@ nfp_cpp_area_name(struct nfp_cpp_area *cpp_area)
@@ -123,2 +132,2 @@
-@@ -142,10 +172,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest,
- 	if (cpp == NULL)
+@@ -142,10 +173,6 @@ nfp_cpp_area_alloc_with_name(struct nfp_cpp *cpp, uint32_t dest,
+ 	if (!cpp)
@@ -129 +138 @@
--		return NULL;
+-		return NFP_ERRPTR(EFAULT);
@@ -134 +143 @@
-@@ -578,6 +604,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed)
+@@ -588,6 +615,13 @@ nfp_cpp_alloc(struct rte_pci_device *dev, int driver_lock_needed)
@@ -140 +149 @@
-+		PMD_DRV_LOG(ERR, "Can't calculate MU locality bit offset");
++		printf("Can't calculate MU locality bit offset");
@@ -148 +157 @@
-@@ -809,8 +842,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
+@@ -819,8 +853,7 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
@@ -158,2 +167,2 @@
-@@ -821,15 +853,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
-  * Return: Pointer to memory mapped area or NULL
+@@ -831,15 +864,12 @@ __nfp_cpp_model_autodetect(struct nfp_cpp *cpp, uint32_t *model)
+  * Return: Pointer to memory mapped area or ERR_PTR
@@ -173 +182 @@
- 	if (*area == NULL)
+ 	if (!*area)
@@ -177 +186 @@
-index 9713605580..343b0d0bcf 100644
+index 2feca2ed81..1258fdb0e1 100644
@@ -180 +189 @@
-@@ -211,6 +211,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name)
+@@ -232,6 +232,113 @@ nfp_rtsym_lookup(struct nfp_rtsym_table *rtbl, const char *name)
@@ -189 +198 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': type NONE", sym->name);
++		printf("rtsym '%s': type NONE", sym->name);
@@ -197 +206 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': unknown type: %d", sym->name, sym->type);
++		printf("rtsym '%s': unknown type: %d", sym->name, sym->type);
@@ -212 +221 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': direct access to non-object rtsym",
++		printf("rtsym '%s': direct access to non-object rtsym",
@@ -230 +239 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': unhandled target encoding: %d",
++		printf("rtsym '%s': unhandled target encoding: %d",
@@ -251 +260 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': readl out of bounds", sym->name);
++		printf("rtsym '%s': readl out of bounds", sym->name);
@@ -275 +284 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': readq out of bounds", sym->name);
++		printf("rtsym '%s': readq out of bounds", sym->name);
@@ -294 +303 @@
-@@ -227,7 +334,7 @@ uint64_t
+@@ -248,7 +355,7 @@ uint64_t
@@ -303 +312 @@
-@@ -237,17 +344,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error)
+@@ -258,19 +365,13 @@ nfp_rtsym_read_le(struct nfp_rtsym_table *rtbl, const char *name, int *error)
@@ -309 +318,2 @@
--	PMD_DRV_LOG(DEBUG, "Reading symbol %s with size %" PRIu64 " at %" PRIx64 "",
+-#ifdef DEBUG
+-	printf("Reading symbol %s with size %" PRIu64 " at %" PRIx64 "\n",
@@ -310,0 +321 @@
+-#endif
@@ -322,2 +333,2 @@
- 		PMD_DRV_LOG(ERR, "rtsym '%s' unsupported size: %" PRId64,
-@@ -272,8 +375,11 @@ uint8_t *
+ 		printf("rtsym '%s' unsupported size: %" PRId64 "\n",
+@@ -295,8 +396,11 @@ uint8_t *
@@ -334,3 +345,3 @@
- 	PMD_DRV_LOG(DEBUG, "mapping symbol %s", name);
- 	sym = nfp_rtsym_lookup(rtbl, name);
-@@ -282,14 +388,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name,
+ #ifdef DEBUG
+ 	printf("mapping symbol %s\n", name);
+@@ -307,14 +411,20 @@ nfp_rtsym_map(struct nfp_rtsym_table *rtbl, const char *name,
@@ -343 +354 @@
-+		PMD_DRV_LOG(ERR, "rtsym '%s': mapping failed", name);
++		printf("rtsym '%s': mapping failed", name);
@@ -348 +359 @@
- 		PMD_DRV_LOG(ERR, "Symbol %s too small (%" PRIu64 " < %u)", name,
+ 		printf("Symbol %s too small (%" PRIu64 " < %u)\n", name,
@@ -356,2 +367,2 @@
- 	if (mem == NULL) {
- 		PMD_INIT_LOG(ERR, "Failed to map symbol %s", name);
+ 	if (!mem) {
+ 		printf("Failed to map symbol %s\n", name);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/vmxnet3: fix return code in initializing' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (37 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/nfp: fix offloading flows' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: fix auth algos in cryptoperf app' " luca.boccassi
                   ` (22 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Kaijun Zeng; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From fa78b38a87afb809472ac28d2fe0bb7f6c0118a7 Mon Sep 17 00:00:00 2001
From: Kaijun Zeng <corezeng@gmail.com>
Date: Wed, 7 Jun 2023 13:57:25 -0400
Subject: [PATCH] net/vmxnet3: fix return code in initializing

[ upstream commit 8a2de735318b38ba93a041cb2f209889bde02689 ]

Improve error handling

Bugzilla ID: 1239
Fixes: dfaff37fc46d ("vmxnet3: import new vmxnet3 poll mode driver implementation")

Signed-off-by: Kaijun Zeng <corezeng@gmail.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/vmxnet3/vmxnet3_rxtx.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
index 91bcfcd6fd..19691d5372 100644
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
@@ -1270,11 +1270,18 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)
 		for (j = 0; j < VMXNET3_RX_CMDRING_SIZE; j++) {
 			/* Passing 0 as alloc_num will allocate full ring */
 			ret = vmxnet3_post_rx_bufs(rxq, j);
-			if (ret <= 0) {
+
+			/* Zero number of descriptors in the configuration of the RX queue */
+			if (ret == 0) {
 				PMD_INIT_LOG(ERR,
-					     "ERROR: Posting Rxq: %d buffers ring: %d",
-					     i, j);
-				return -ret;
+					"Invalid configuration in Rx queue: %d, buffers ring: %d\n",
+					i, j);
+				return -EINVAL;
+			}
+			/* Return the error number */
+			if (ret < 0) {
+				PMD_INIT_LOG(ERR, "Posting Rxq: %d buffers ring: %d", i, j);
+				return ret;
 			}
 			/*
 			 * Updating device with the index:next2fill to fill the
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.767158075 +0100
+++ 0040-net-vmxnet3-fix-return-code-in-initializing.patch	2023-06-15 01:56:34.643542964 +0100
@@ -1 +1 @@
-From 8a2de735318b38ba93a041cb2f209889bde02689 Mon Sep 17 00:00:00 2001
+From fa78b38a87afb809472ac28d2fe0bb7f6c0118a7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8a2de735318b38ba93a041cb2f209889bde02689 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15 +15,0 @@
- .mailmap                           |  1 +
@@ -17 +17 @@
- 2 files changed, 12 insertions(+), 4 deletions(-)
+ 1 file changed, 11 insertions(+), 4 deletions(-)
@@ -19,12 +18,0 @@
-diff --git a/.mailmap b/.mailmap
-index 42f198f284..986ba9c988 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -687,6 +687,7 @@ Jun Yang <jun.yang@nxp.com>
- Junyu Jiang <junyux.jiang@intel.com>
- Juraj Linkeš <juraj.linkes@pantheon.tech>
- Kai Ji <kai.ji@intel.com>
-+Kaijun Zeng <corezeng@gmail.com>
- Kaisen You <kaisenx.you@intel.com>
- Kaiwen Deng <kaiwenx.deng@intel.com>
- Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
@@ -32 +20 @@
-index 148f65383e..380f41f98b 100644
+index 91bcfcd6fd..19691d5372 100644
@@ -35 +23 @@
-@@ -1337,11 +1337,18 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)
+@@ -1270,11 +1270,18 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix auth algos in cryptoperf app' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (38 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/vmxnet3: fix return code in initializing' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'crypto/scheduler: fix last element for valid args' " luca.boccassi
                   ` (21 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Akhil Goyal; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 85415e9fcd19e92a19d1ca8e805352f14633ee8c Mon Sep 17 00:00:00 2001
From: Akhil Goyal <gakhil@marvell.com>
Date: Tue, 11 Apr 2023 18:34:58 +0530
Subject: [PATCH] doc: fix auth algos in cryptoperf app

[ upstream commit eaea52c3cc997318c5587366caf22d7ab1b7578c ]

3des-cbc is not an authentication algorithm,
hence need to be removed.

Fixes: c6baca7adc94 ("doc: describe new performance test application")

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 doc/guides/tools/cryptoperf.rst | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst
index 79359fe894..ef22f2c968 100644
--- a/doc/guides/tools/cryptoperf.rst
+++ b/doc/guides/tools/cryptoperf.rst
@@ -228,7 +228,6 @@ The following are the application command-line options:
         Set authentication algorithm name, where ``name`` is one
         of the following::
 
-           3des-cbc
            aes-cbc-mac
            aes-cmac
            aes-gmac
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.811678468 +0100
+++ 0041-doc-fix-auth-algos-in-cryptoperf-app.patch	2023-06-15 01:56:34.643542964 +0100
@@ -1 +1 @@
-From eaea52c3cc997318c5587366caf22d7ab1b7578c Mon Sep 17 00:00:00 2001
+From 85415e9fcd19e92a19d1ca8e805352f14633ee8c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit eaea52c3cc997318c5587366caf22d7ab1b7578c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index c77e253417..f30784674d 100644
+index 79359fe894..ef22f2c968 100644
@@ -22 +23 @@
-@@ -232,7 +232,6 @@ The following are the application command-line options:
+@@ -228,7 +228,6 @@ The following are the application command-line options:

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'crypto/scheduler: fix last element for valid args' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (39 preceding siblings ...)
  2023-06-15  1:32 ` patch 'doc: fix auth algos in cryptoperf app' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'test/crypto: fix session creation check' " luca.boccassi
                   ` (20 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ciara Power; +Cc: Kai Ji, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 186f0fe587ab45b8bcad15e2bd92d61a120d5ce5 Mon Sep 17 00:00:00 2001
From: Ciara Power <ciara.power@intel.com>
Date: Fri, 14 Apr 2023 12:33:06 +0000
Subject: [PATCH] crypto/scheduler: fix last element for valid args

[ upstream commit 34019b7b65d4d936649fab29fdee45ec3ada1a8d ]

The list of valid arguments for Scheduler PMD should be terminated with
a NULL entry, as expected by rte_kvargs_parse.

Without this, if an invalid key name was used, a global buffer overflow
occurred resulting in a segmentation fault.

Fixes: 503e9c5afb38 ("crypto/scheduler: register as vdev driver")

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Kai Ji <kai.ji@intel.com>
---
 drivers/crypto/scheduler/scheduler_pmd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c
index 632197833c..49eda059ca 100644
--- a/drivers/crypto/scheduler/scheduler_pmd.c
+++ b/drivers/crypto/scheduler/scheduler_pmd.c
@@ -47,7 +47,8 @@ static const char * const scheduler_valid_params[] = {
 	RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
 	RTE_CRYPTODEV_VDEV_SOCKET_ID,
 	RTE_CRYPTODEV_VDEV_COREMASK,
-	RTE_CRYPTODEV_VDEV_CORELIST
+	RTE_CRYPTODEV_VDEV_CORELIST,
+	NULL
 };
 
 struct scheduler_parse_map {
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.852801839 +0100
+++ 0042-crypto-scheduler-fix-last-element-for-valid-args.patch	2023-06-15 01:56:34.643542964 +0100
@@ -1 +1 @@
-From 34019b7b65d4d936649fab29fdee45ec3ada1a8d Mon Sep 17 00:00:00 2001
+From 186f0fe587ab45b8bcad15e2bd92d61a120d5ce5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 34019b7b65d4d936649fab29fdee45ec3ada1a8d ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 9d1ce46622..4e8bbf0e09 100644
+index 632197833c..49eda059ca 100644
@@ -25 +26 @@
-@@ -50,7 +50,8 @@ static const char * const scheduler_valid_params[] = {
+@@ -47,7 +47,8 @@ static const char * const scheduler_valid_params[] = {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test/crypto: fix session creation check' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (40 preceding siblings ...)
  2023-06-15  1:32 ` patch 'crypto/scheduler: fix last element for valid args' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'vhost: fix invalid call FD handling' " luca.boccassi
                   ` (19 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Tejasree Kondoj; +Cc: Anoob Joseph, Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From fc2e56e15aefc4c9d4aa6a23284f3558ae7f0d82 Mon Sep 17 00:00:00 2001
From: Tejasree Kondoj <ktejasree@marvell.com>
Date: Fri, 5 May 2023 22:23:48 +0530
Subject: [PATCH] test/crypto: fix session creation check

[ upstream commit 142a8f4c578e420b916f84649873f99bad985412 ]

Fixing return value if session failure occurs
due to unsupported feature.

Fixes: eec136f3c54f ("aesni_gcm: add driver for AES-GCM crypto operations")

Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index e43ad30bc8..34d162f48f 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -7709,7 +7709,7 @@ test_authenticated_encryption(const struct aead_test_data *tdata)
 			tdata->key.data, tdata->key.len,
 			tdata->aad.len, tdata->auth_tag.len,
 			tdata->iv.len);
-	if (retval < 0)
+	if (retval != TEST_SUCCESS)
 		return retval;
 
 	if (tdata->aad.len > MBUF_SIZE) {
@@ -9762,7 +9762,7 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
 			tdata->key.data, tdata->key.len,
 			tdata->aad.len, tdata->auth_tag.len,
 			tdata->iv.len);
-	if (retval < 0)
+	if (retval != TEST_SUCCESS)
 		return retval;
 
 	/* alloc mbuf and set payload */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.895237904 +0100
+++ 0043-test-crypto-fix-session-creation-check.patch	2023-06-15 01:56:34.659543314 +0100
@@ -1 +1 @@
-From 142a8f4c578e420b916f84649873f99bad985412 Mon Sep 17 00:00:00 2001
+From fc2e56e15aefc4c9d4aa6a23284f3558ae7f0d82 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 142a8f4c578e420b916f84649873f99bad985412 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 0b2ce5ea65..bbc7e8dd18 100644
+index e43ad30bc8..34d162f48f 100644
@@ -23 +24 @@
-@@ -8778,7 +8778,7 @@ test_authenticated_encryption(const struct aead_test_data *tdata)
+@@ -7709,7 +7709,7 @@ test_authenticated_encryption(const struct aead_test_data *tdata)
@@ -32 +33 @@
-@@ -11482,7 +11482,7 @@ test_authenticated_decryption(const struct aead_test_data *tdata)
+@@ -9762,7 +9762,7 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'vhost: fix invalid call FD handling' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (41 preceding siblings ...)
  2023-06-15  1:32 ` patch 'test/crypto: fix session creation check' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/virtio: fix initialization to return negative errno' " luca.boccassi
                   ` (18 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: Eelco Chaudron, Chenbo Xia, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From bdc6b54535796759d20b0762b9568483540c212a Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Thu, 1 Jun 2023 09:40:08 +0200
Subject: [PATCH] vhost: fix invalid call FD handling

[ upstream commit 0445f81883a3aa727ac7f8531beee2c225d3001a ]

This patch fixes cases where IRQ injection is tried while
the call FD is not valid, which should not happen.

Fixes: b1cce26af1dc ("vhost: add notification for packed ring")
Fixes: e37ff954405a ("vhost: support virtqueue interrupt/notification suppression")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
---
 lib/librte_vhost/vhost.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index e96f2d836a..0f6672af3d 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -764,9 +764,9 @@ vhost_vring_call_split(struct virtio_net *dev, struct vhost_virtqueue *vq)
 			vhost_used_event(vq),
 			old, new);
 
-		if ((vhost_need_event(vhost_used_event(vq), new, old) &&
-					(vq->callfd >= 0)) ||
-				unlikely(!signalled_used_valid)) {
+		if ((vhost_need_event(vhost_used_event(vq), new, old) ||
+					unlikely(!signalled_used_valid)) &&
+				vq->callfd >= 0) {
 			eventfd_write(vq->callfd, (eventfd_t) 1);
 			if (dev->notify_ops->guest_notified)
 				dev->notify_ops->guest_notified(dev->vid);
@@ -829,7 +829,7 @@ vhost_vring_call_packed(struct virtio_net *dev, struct vhost_virtqueue *vq)
 	if (vhost_need_event(off, new, old))
 		kick = true;
 kick:
-	if (kick) {
+	if (kick && vq->callfd >= 0) {
 		eventfd_write(vq->callfd, (eventfd_t)1);
 		if (dev->notify_ops->guest_notified)
 			dev->notify_ops->guest_notified(dev->vid);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.952971880 +0100
+++ 0044-vhost-fix-invalid-call-FD-handling.patch	2023-06-15 01:56:34.659543314 +0100
@@ -1 +1 @@
-From 0445f81883a3aa727ac7f8531beee2c225d3001a Mon Sep 17 00:00:00 2001
+From bdc6b54535796759d20b0762b9568483540c212a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0445f81883a3aa727ac7f8531beee2c225d3001a ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/vhost/vhost.h | 8 ++++----
+ lib/librte_vhost/vhost.h | 8 ++++----
@@ -20,7 +21,7 @@
-diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
-index 8554ab4002..40863f7bfd 100644
---- a/lib/vhost/vhost.h
-+++ b/lib/vhost/vhost.h
-@@ -902,9 +902,9 @@ vhost_vring_call_split(struct virtio_net *dev, struct vhost_virtqueue *vq)
- 			"%s: used_event_idx=%d, old=%d, new=%d\n",
- 			__func__, vhost_used_event(vq), old, new);
+diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
+index e96f2d836a..0f6672af3d 100644
+--- a/lib/librte_vhost/vhost.h
++++ b/lib/librte_vhost/vhost.h
+@@ -764,9 +764,9 @@ vhost_vring_call_split(struct virtio_net *dev, struct vhost_virtqueue *vq)
+ 			vhost_used_event(vq),
+ 			old, new);
@@ -35,3 +36,3 @@
- 			if (dev->flags & VIRTIO_DEV_STATS_ENABLED)
- 				vq->stats.guest_notifications++;
-@@ -971,7 +971,7 @@ vhost_vring_call_packed(struct virtio_net *dev, struct vhost_virtqueue *vq)
+ 			if (dev->notify_ops->guest_notified)
+ 				dev->notify_ops->guest_notified(dev->vid);
+@@ -829,7 +829,7 @@ vhost_vring_call_packed(struct virtio_net *dev, struct vhost_virtqueue *vq)
@@ -44,2 +45,2 @@
- 		if (dev->flags & VIRTIO_DEV_STATS_ENABLED)
- 			vq->stats.guest_notifications++;
+ 		if (dev->notify_ops->guest_notified)
+ 			dev->notify_ops->guest_notified(dev->vid);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/virtio: fix initialization to return negative errno' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (42 preceding siblings ...)
  2023-06-15  1:32 ` patch 'vhost: fix invalid call FD handling' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/virtio-user: fix leak when initialisation fails' " luca.boccassi
                   ` (17 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Boleslav Stankevich; +Cc: Andrew Rybchenko, Chenbo Xia, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 08faea99b9c9334771c5e39373fefeef12fde63a Mon Sep 17 00:00:00 2001
From: Boleslav Stankevich <boleslav.stankevich@oktetlabs.ru>
Date: Wed, 22 Mar 2023 13:23:25 +0300
Subject: [PATCH] net/virtio: fix initialization to return negative errno

[ upstream commit 55e19d06f8a8a865297532071453c10544a07a24 ]

virtio_init_device() and called helper functions sometimes return -1
when return code should be negative errno. Fix all such cases to return
correct negative errno instead.

Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts")
Fixes: 0c9d66207054 ("net/virtio: support RSS")
Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
Fixes: 49d26d9e3f47 ("net/virtio: support MTU feature")

Signed-off-by: Boleslav Stankevich <boleslav.stankevich@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
---
 drivers/net/virtio/virtio_ethdev.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 011130c61f..1ee738f8cc 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1695,15 +1695,17 @@ static int
 virtio_configure_intr(struct rte_eth_dev *dev)
 {
 	struct virtio_hw *hw = dev->data->dev_private;
+	int ret;
 
 	if (!rte_intr_cap_multiple(dev->intr_handle)) {
 		PMD_INIT_LOG(ERR, "Multiple intr vector not supported");
 		return -ENOTSUP;
 	}
 
-	if (rte_intr_efd_enable(dev->intr_handle, dev->data->nb_rx_queues)) {
+	ret = rte_intr_efd_enable(dev->intr_handle, dev->data->nb_rx_queues);
+	if (ret < 0) {
 		PMD_INIT_LOG(ERR, "Fail to create eventfd");
-		return -1;
+		return ret;
 	}
 
 	if (!dev->intr_handle->intr_vec) {
@@ -1735,12 +1737,13 @@ virtio_configure_intr(struct rte_eth_dev *dev)
 	 */
 	if (virtio_intr_enable(dev) < 0) {
 		PMD_DRV_LOG(ERR, "interrupt enable failed");
-		return -1;
+		return -EINVAL;
 	}
 
-	if (virtio_queues_bind_intr(dev) < 0) {
+	ret = virtio_queues_bind_intr(dev);
+	if (ret < 0) {
 		PMD_INIT_LOG(ERR, "Failed to bind queue/interrupt");
-		return -1;
+		return ret;
 	}
 
 	return 0;
@@ -1796,7 +1799,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 	/* Tell the host we've known how to drive the device. */
 	vtpci_set_status(hw, VIRTIO_CONFIG_STATUS_DRIVER);
 	if (virtio_negotiate_features(hw, req_features) < 0)
-		return -1;
+		return -EINVAL;
 
 	hw->weak_barriers = !vtpci_with_feature(hw, VIRTIO_F_ORDER_PLATFORM);
 
@@ -1881,7 +1884,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 			if (config->mtu < RTE_ETHER_MIN_MTU) {
 				PMD_INIT_LOG(ERR, "invalid max MTU value (%u)",
 						config->mtu);
-				return -1;
+				return -EINVAL;
 			}
 
 			hw->max_mtu = config->mtu;
@@ -1913,10 +1916,11 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		return ret;
 
 	if (eth_dev->data->dev_conf.intr_conf.rxq) {
-		if (virtio_configure_intr(eth_dev) < 0) {
+		ret = virtio_configure_intr(eth_dev);
+		if (ret < 0) {
 			PMD_INIT_LOG(ERR, "failed to configure interrupt");
 			virtio_free_queues(hw);
-			return -1;
+			return ret;
 		}
 	}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:36.995835046 +0100
+++ 0045-net-virtio-fix-initialization-to-return-negative-err.patch	2023-06-15 01:56:34.659543314 +0100
@@ -1 +1 @@
-From 55e19d06f8a8a865297532071453c10544a07a24 Mon Sep 17 00:00:00 2001
+From 08faea99b9c9334771c5e39373fefeef12fde63a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 55e19d06f8a8a865297532071453c10544a07a24 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -20,2 +21,2 @@
- drivers/net/virtio/virtio_ethdev.c | 33 +++++++++++++++++-------------
- 1 file changed, 19 insertions(+), 14 deletions(-)
+ drivers/net/virtio/virtio_ethdev.c | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
@@ -24 +25 @@
-index a81110e70a..2c23f1c00e 100644
+index 011130c61f..1ee738f8cc 100644
@@ -27 +28,8 @@
-@@ -1360,9 +1360,10 @@ virtio_configure_intr(struct rte_eth_dev *dev)
+@@ -1695,15 +1695,17 @@ static int
+ virtio_configure_intr(struct rte_eth_dev *dev)
+ {
+ 	struct virtio_hw *hw = dev->data->dev_private;
++	int ret;
+ 
+ 	if (!rte_intr_cap_multiple(dev->intr_handle)) {
+ 		PMD_INIT_LOG(ERR, "Multiple intr vector not supported");
@@ -39,2 +47,2 @@
- 	ret = rte_intr_vec_list_alloc(dev->intr_handle, "intr_vec",
-@@ -1391,12 +1392,13 @@ virtio_configure_intr(struct rte_eth_dev *dev)
+ 	if (!dev->intr_handle->intr_vec) {
+@@ -1735,12 +1737,13 @@ virtio_configure_intr(struct rte_eth_dev *dev)
@@ -57,19 +65 @@
-@@ -1719,7 +1721,7 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev)
- 				eth_dev->device->numa_node);
- 		if (!hw->rss_key) {
- 			PMD_INIT_LOG(ERR, "Failed to allocate RSS key");
--			return -1;
-+			return -ENOMEM;
- 		}
- 	}
- 
-@@ -1741,7 +1743,7 @@ virtio_dev_rss_init(struct rte_eth_dev *eth_dev)
- 				eth_dev->device->numa_node);
- 		if (!hw->rss_reta) {
- 			PMD_INIT_LOG(ERR, "Failed to allocate RSS reta");
--			return -1;
-+			return -ENOMEM;
- 		}
- 
- 		hw->rss_rx_queues = 0;
-@@ -1781,7 +1783,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -1796,7 +1799,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
@@ -77,2 +67,2 @@
- 	virtio_set_status(hw, VIRTIO_CONFIG_STATUS_DRIVER);
- 	if (virtio_ethdev_negotiate_features(hw, req_features) < 0)
+ 	vtpci_set_status(hw, VIRTIO_CONFIG_STATUS_DRIVER);
+ 	if (virtio_negotiate_features(hw, req_features) < 0)
@@ -82 +72 @@
- 	hw->weak_barriers = !virtio_with_feature(hw, VIRTIO_F_ORDER_PLATFORM);
+ 	hw->weak_barriers = !vtpci_with_feature(hw, VIRTIO_F_ORDER_PLATFORM);
@@ -84 +74 @@
-@@ -1863,7 +1865,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -1881,7 +1884,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
@@ -93,16 +83 @@
-@@ -1876,9 +1878,11 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
- 		}
- 
- 		hw->rss_hash_types = 0;
--		if (virtio_with_feature(hw, VIRTIO_NET_F_RSS))
--			if (virtio_dev_rss_init(eth_dev))
--				return -1;
-+		if (virtio_with_feature(hw, VIRTIO_NET_F_RSS)) {
-+			ret = virtio_dev_rss_init(eth_dev);
-+			if (ret < 0)
-+				return ret;
-+		}
- 
- 		PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=%d",
- 				config->max_virtqueue_pairs);
-@@ -1900,10 +1904,11 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -1913,10 +1916,11 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/virtio-user: fix leak when initialisation fails' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (43 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/virtio: fix initialization to return negative errno' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/mlx5: enhance error log for tunnel offloading' " luca.boccassi
                   ` (16 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: David Marchand; +Cc: Maxime Coquelin, Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 1b227ed34a39b5ecd789d19d941a8d91a3cb288b Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 13 Apr 2023 12:10:41 +0200
Subject: [PATCH] net/virtio-user: fix leak when initialisation fails

[ upstream commit c8254ef1a96c4897293b1d1db8c8a786dfb19e9d ]

Caught with ASan.
If initialising a virtio_user port fails, we may leak the ifname passed
via a devargs.

Fixes: 4214a1b493f2 ("net/virtio-user: support changing tap interface name")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index 73f6fd7313..cbcd0fedc0 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -475,10 +475,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
 
 	parse_mac(dev, mac);
 
-	if (*ifname) {
-		dev->ifname = *ifname;
-		*ifname = NULL;
-	}
+	dev->ifname = *ifname;
 
 	if (virtio_user_dev_setup(dev) < 0) {
 		PMD_INIT_LOG(ERR, "backend set up fails");
@@ -592,6 +589,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
 		}
 	}
 
+	*ifname = NULL;
 	return 0;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.039629787 +0100
+++ 0046-net-virtio-user-fix-leak-when-initialisation-fails.patch	2023-06-15 01:56:34.663543401 +0100
@@ -1 +1 @@
-From c8254ef1a96c4897293b1d1db8c8a786dfb19e9d Mon Sep 17 00:00:00 2001
+From 1b227ed34a39b5ecd789d19d941a8d91a3cb288b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c8254ef1a96c4897293b1d1db8c8a786dfb19e9d ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +18,2 @@
- drivers/net/virtio/virtio_user/virtio_user_dev.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
+ drivers/net/virtio/virtio_user/virtio_user_dev.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
@@ -21 +22 @@
-index 2b4607a291..af1f8c8237 100644
+index 73f6fd7313..cbcd0fedc0 100644
@@ -24,5 +25,4 @@
-@@ -696,11 +696,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, uint16_t queues,
- 	dev->frontend_features = 0;
- 	dev->unsupported_features = 0;
- 	dev->backend_type = backend_type;
--
+@@ -475,10 +475,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
+ 
+ 	parse_mac(dev, mac);
+ 
@@ -36,2 +36,2 @@
- 		PMD_INIT_LOG(ERR, "(%s) backend set up fails", dev->path);
-@@ -794,6 +790,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, uint16_t queues,
+ 		PMD_INIT_LOG(ERR, "backend set up fails");
+@@ -592,6 +589,7 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
@@ -42,0 +43 @@
+ }
@@ -44 +44,0 @@
- notify_uninit:

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: enhance error log for tunnel offloading' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (44 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/virtio-user: fix leak when initialisation fails' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/mlx5: fix duplicated tag index matching in SWS' " luca.boccassi
                   ` (15 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: David Marchand; +Cc: Gregory Etelson, Raslan Darawsheh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f56bb621ae8449b7ad15216dfaddc8f60065d439 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 27 Apr 2023 13:55:34 +0200
Subject: [PATCH] net/mlx5: enhance error log for tunnel offloading

[ upstream commit c9fecc1cc2886bcd626a656a5493841363dec6dd ]

Tunnel offloading is linked to running a port with the non-obvious
dv_xmeta_en=3 devargs. Hint at it for "normal" users.

Fixes: 4ec6360de37d ("net/mlx5: implement tunnel offload")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Raslan Darawsheh <rasland@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index ad11611027..aad3c5b920 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -7918,7 +7918,7 @@ mlx5_flow_tunnel_validate(struct rte_eth_dev *dev,
 	if (!is_tunnel_offload_active(dev))
 		return rte_flow_error_set(error, ENOTSUP,
 					  RTE_FLOW_ERROR_TYPE_ACTION_CONF, NULL,
-					  "tunnel offload was not activated");
+					  "tunnel offload was not activated, consider setting dv_xmeta_en=3");
 	if (!tunnel)
 		return rte_flow_error_set(error, EINVAL,
 					  RTE_FLOW_ERROR_TYPE_ACTION_CONF, NULL,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.081351938 +0100
+++ 0047-net-mlx5-enhance-error-log-for-tunnel-offloading.patch	2023-06-15 01:56:34.671543576 +0100
@@ -1 +1 @@
-From c9fecc1cc2886bcd626a656a5493841363dec6dd Mon Sep 17 00:00:00 2001
+From f56bb621ae8449b7ad15216dfaddc8f60065d439 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c9fecc1cc2886bcd626a656a5493841363dec6dd ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 156f826b8a..c32783efb2 100644
+index ad11611027..aad3c5b920 100644
@@ -23 +24 @@
-@@ -11329,7 +11329,7 @@ mlx5_flow_tunnel_validate(struct rte_eth_dev *dev,
+@@ -7918,7 +7918,7 @@ mlx5_flow_tunnel_validate(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: fix duplicated tag index matching in SWS' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (45 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/mlx5: enhance error log for tunnel offloading' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/qede: fix RSS indirection table initialization' " luca.boccassi
                   ` (14 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Rongwei Liu; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From c85dbe8ee375bff9222786fa12376daa5b39bd58 Mon Sep 17 00:00:00 2001
From: Rongwei Liu <rongweil@nvidia.com>
Date: Tue, 16 May 2023 08:43:29 +0300
Subject: [PATCH] net/mlx5: fix duplicated tag index matching in SWS

[ upstream commit d5a7699c10651cb1cea2b18f94099e984c466b75 ]

Duplicated matching tag index is not allowed in SWS
because they are using the same matching field in the
underlayer layout.
For example: "tag index is 0 data spec 0x12 mask 0xff /
tag index is 0 data spec 0x1234 mask 0xffff" is paradoxical
matching condition and "tag index is 0 data spec 0x12 mask 0xff /
tag index is 0 data spec 0x3400 mask 0xff00" should be "tag index
is 0 data spec 0x3412 mask 0xffff"

Add checking logic against it.

Fixes: e554b672aa05 ("net/mlx5: support flow tag")

Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index c60aabf075..c413da53d7 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -1499,6 +1499,8 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
  *   Pointer to the rte_eth_dev structure.
  * @param[in] item
  *   Item specification.
+ * @param[in] tag_bitmap
+ *   Tag index bitmap.
  * @param[in] attr
  *   Attributes of flow that includes this item.
  * @param[out] error
@@ -1510,6 +1512,7 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
 static int
 flow_dv_validate_item_tag(struct rte_eth_dev *dev,
 			  const struct rte_flow_item *item,
+			  uint32_t *tag_bitmap,
 			  const struct rte_flow_attr *attr __rte_unused,
 			  struct rte_flow_error *error)
 {
@@ -1553,6 +1556,12 @@ flow_dv_validate_item_tag(struct rte_eth_dev *dev,
 	if (ret < 0)
 		return ret;
 	MLX5_ASSERT(ret != REG_NON);
+	if (*tag_bitmap & (1 << ret))
+		return rte_flow_error_set(error, EINVAL,
+					  RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
+					  item->spec,
+					  "Duplicated tag index");
+	*tag_bitmap |= 1 << ret;
 	return 0;
 }
 
@@ -5313,7 +5322,8 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 		.std_tbl_fix = true,
 	};
 	const struct rte_eth_hairpin_conf *conf;
-	uint32_t tag_id = 0;
+	uint32_t tag_id = 0, tag_bitmap = 0;
+	const struct mlx5_rte_flow_item_tag *mlx5_tag;
 
 	if (items == NULL)
 		return -1;
@@ -5584,7 +5594,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			last_item = MLX5_FLOW_LAYER_ICMP6;
 			break;
 		case RTE_FLOW_ITEM_TYPE_TAG:
-			ret = flow_dv_validate_item_tag(dev, items,
+			ret = flow_dv_validate_item_tag(dev, items, &tag_bitmap,
 							attr, error);
 			if (ret < 0)
 				return ret;
@@ -5594,6 +5604,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			last_item = MLX5_FLOW_ITEM_TX_QUEUE;
 			break;
 		case MLX5_RTE_FLOW_ITEM_TYPE_TAG:
+			mlx5_tag = (const struct mlx5_rte_flow_item_tag *)items->spec;
+			if (tag_bitmap & (1 << mlx5_tag->id))
+				return rte_flow_error_set(error, EINVAL,
+							  RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
+							  items->spec,
+							  "Duplicated tag index");
+			tag_bitmap |= 1 << mlx5_tag->id;
 			break;
 		case RTE_FLOW_ITEM_TYPE_GTP:
 			ret = flow_dv_validate_item_gtp(dev, items, item_flags,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.135371195 +0100
+++ 0048-net-mlx5-fix-duplicated-tag-index-matching-in-SWS.patch	2023-06-15 01:56:34.687543926 +0100
@@ -1 +1 @@
-From d5a7699c10651cb1cea2b18f94099e984c466b75 Mon Sep 17 00:00:00 2001
+From c85dbe8ee375bff9222786fa12376daa5b39bd58 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d5a7699c10651cb1cea2b18f94099e984c466b75 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index 9ef9f13cbb..27e8b3a5a9 100644
+index c60aabf075..c413da53d7 100644
@@ -30 +31 @@
-@@ -2295,6 +2295,8 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
+@@ -1499,6 +1499,8 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
@@ -39 +40 @@
-@@ -2306,6 +2308,7 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
+@@ -1510,6 +1512,7 @@ flow_dv_validate_item_meta(struct rte_eth_dev *dev __rte_unused,
@@ -47 +48 @@
-@@ -2349,6 +2352,12 @@ flow_dv_validate_item_tag(struct rte_eth_dev *dev,
+@@ -1553,6 +1556,12 @@ flow_dv_validate_item_tag(struct rte_eth_dev *dev,
@@ -60,4 +61,4 @@
-@@ -7280,9 +7289,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
- 	bool def_policy = false;
- 	bool shared_count = false;
- 	uint16_t udp_dport = 0;
+@@ -5313,7 +5322,8 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+ 		.std_tbl_fix = true,
+ 	};
+ 	const struct rte_eth_hairpin_conf *conf;
@@ -66,2 +66,0 @@
- 	const struct rte_flow_action_age *non_shared_age = NULL;
- 	const struct rte_flow_action_count *count = NULL;
@@ -69,2 +67,0 @@
- 	struct mlx5_priv *act_priv = NULL;
- 	int aso_after_sample = 0;
@@ -72 +69,3 @@
-@@ -7611,7 +7621,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+ 	if (items == NULL)
+ 		return -1;
+@@ -5584,7 +5594,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -81,2 +80,2 @@
-@@ -7621,6 +7631,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
- 			last_item = MLX5_FLOW_ITEM_SQ;
+@@ -5594,6 +5604,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+ 			last_item = MLX5_FLOW_ITEM_TX_QUEUE;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/qede: fix RSS indirection table initialization' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (46 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/mlx5: fix duplicated tag index matching in SWS' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: fix typo in cnxk platform guide' " luca.boccassi
                   ` (13 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Devendra Singh Rawat; +Cc: Alok Prasad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 08804e2e0aa7ab01464392b57b90c3f5fa10ea0a Mon Sep 17 00:00:00 2001
From: Devendra Singh Rawat <dsinghrawat@marvell.com>
Date: Thu, 25 May 2023 19:24:21 +0530
Subject: [PATCH] net/qede: fix RSS indirection table initialization

[ upstream commit 189183f4d7f2a22b9335ff8eede1c763bb356e5c ]

RSS indirection table was not updated for VF ports during RSS hash
update, this resulted in device start failure.
This fix sets update RSS indirection table in VFPF channel request,
sent for updating RSS hash for VF.

Fixes: 7ab35bf6b97b ("net/qede: fix RSS")

Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com>
Signed-off-by: Alok Prasad <palok@marvell.com>
---
 drivers/net/qede/qede_ethdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 02a1d8945a..eef04fcda6 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -2148,6 +2148,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
 		rss_params.rss_enable = 1;
 	}
 
+	rss_params.update_rss_ind_table = 1;
 	rss_params.update_rss_config = 1;
 	/* tbl_size has to be set with capabilities */
 	rss_params.rss_table_size_log = 7;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.194003224 +0100
+++ 0049-net-qede-fix-RSS-indirection-table-initialization.patch	2023-06-15 01:56:34.687543926 +0100
@@ -1 +1 @@
-From 189183f4d7f2a22b9335ff8eede1c763bb356e5c Mon Sep 17 00:00:00 2001
+From 08804e2e0aa7ab01464392b57b90c3f5fa10ea0a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 189183f4d7f2a22b9335ff8eede1c763bb356e5c ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index a4923670d6..22cd470646 100644
+index 02a1d8945a..eef04fcda6 100644
@@ -24 +25 @@
-@@ -2142,6 +2142,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
+@@ -2148,6 +2148,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix typo in cnxk platform guide' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (47 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/qede: fix RSS indirection table initialization' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/i40e: fix Rx data buffer size' " luca.boccassi
                   ` (12 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Thierry Herbelot; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From afc91e2f3b0671bec0982ecc19356f62a425ddd2 Mon Sep 17 00:00:00 2001
From: Thierry Herbelot <thierry.herbelot@6wind.com>
Date: Fri, 2 Jun 2023 18:21:45 +0200
Subject: [PATCH] doc: fix typo in cnxk platform guide

[ upstream commit 443000992bc937d4686a37e4eef9c66b6b3ce642 ]

The Linux kernel option has an added underscore.

Fixes: 14ad4f018453 ("doc: add Marvell OCTEON TX2 platform guide")

Signed-off-by: Thierry Herbelot <thierry.herbelot@6wind.com>
---
 doc/guides/platform/octeontx2.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guides/platform/octeontx2.rst b/doc/guides/platform/octeontx2.rst
index 69925f5fae..f7b5fdf22a 100644
--- a/doc/guides/platform/octeontx2.rst
+++ b/doc/guides/platform/octeontx2.rst
@@ -249,7 +249,7 @@ context or stats using debugfs.
 
 Enable ``debugfs`` by:
 
-1. Compile kernel with debugfs enabled, i.e ``CONFIG_DEBUGFS=y``.
+1. Compile kernel with debugfs enabled, i.e ``CONFIG_DEBUG_FS=y``.
 2. Boot OCTEON TX2 with debugfs supported kernel.
 3. Verify ``debugfs`` mounted by default "mount | grep -i debugfs" or mount it manually by using.
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.247337578 +0100
+++ 0050-doc-fix-typo-in-cnxk-platform-guide.patch	2023-06-15 01:56:34.691544013 +0100
@@ -1 +1 @@
-From 443000992bc937d4686a37e4eef9c66b6b3ce642 Mon Sep 17 00:00:00 2001
+From afc91e2f3b0671bec0982ecc19356f62a425ddd2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 443000992bc937d4686a37e4eef9c66b6b3ce642 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -13 +14 @@
- doc/guides/platform/cnxk.rst | 2 +-
+ doc/guides/platform/octeontx2.rst | 2 +-
@@ -16,5 +17,5 @@
-diff --git a/doc/guides/platform/cnxk.rst b/doc/guides/platform/cnxk.rst
-index 4a1966c66b..b3aa4de09d 100644
---- a/doc/guides/platform/cnxk.rst
-+++ b/doc/guides/platform/cnxk.rst
-@@ -258,7 +258,7 @@ context or stats using debugfs.
+diff --git a/doc/guides/platform/octeontx2.rst b/doc/guides/platform/octeontx2.rst
+index 69925f5fae..f7b5fdf22a 100644
+--- a/doc/guides/platform/octeontx2.rst
++++ b/doc/guides/platform/octeontx2.rst
+@@ -249,7 +249,7 @@ context or stats using debugfs.
@@ -26 +27 @@
- 2. Boot OCTEON CN9K/CN10K with debugfs supported kernel.
+ 2. Boot OCTEON TX2 with debugfs supported kernel.

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/i40e: fix Rx data buffer size' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (48 preceding siblings ...)
  2023-06-15  1:32 ` patch 'doc: fix typo in cnxk platform guide' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice: " luca.boccassi
                   ` (11 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Wenjun Wu; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 26559168c9cf41d2a7325a9f6786c1bae0c286b0 Mon Sep 17 00:00:00 2001
From: Wenjun Wu <wenjun1.wu@intel.com>
Date: Fri, 14 Apr 2023 13:47:40 +0800
Subject: [PATCH] net/i40e: fix Rx data buffer size

[ upstream commit ff2ec0ce04739240205628207881a91e1e330cb7 ]

According to hardware spec, the data buffer size should not
be greater than 16K - 128.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 2 ++
 drivers/net/i40e/i40e_rxtx.h | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 8a687803b9..071345da09 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -2818,6 +2818,8 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
 		rxq->rx_hdr_len = 0;
 		rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size,
 			(1 << I40E_RXQ_CTX_DBUFF_SHIFT));
+		rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len,
+					  I40E_RX_MAX_DATA_BUF_SIZE);
 		rxq->hs_mode = i40e_header_split_none;
 		break;
 	}
diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h
index 0671750779..2786bdcff9 100644
--- a/drivers/net/i40e/i40e_rxtx.h
+++ b/drivers/net/i40e/i40e_rxtx.h
@@ -21,6 +21,9 @@
 /* In none-PXE mode QLEN must be whole number of 32 descriptors. */
 #define	I40E_ALIGN_RING_DESC	32
 
+/* Max data buffer size must be 16K - 128 bytes */
+#define I40E_RX_MAX_DATA_BUF_SIZE	(16 * 1024 - 128)
+
 #define	I40E_MIN_RING_DESC	64
 #define	I40E_MAX_RING_DESC	4096
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.290691750 +0100
+++ 0051-net-i40e-fix-Rx-data-buffer-size.patch	2023-06-15 01:56:34.695544100 +0100
@@ -1 +1 @@
-From ff2ec0ce04739240205628207881a91e1e330cb7 Mon Sep 17 00:00:00 2001
+From 26559168c9cf41d2a7325a9f6786c1bae0c286b0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ff2ec0ce04739240205628207881a91e1e330cb7 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 788ffb51c2..fbbefb5015 100644
+index 8a687803b9..071345da09 100644
@@ -23 +24 @@
-@@ -2904,6 +2904,8 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
+@@ -2818,6 +2818,8 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
@@ -33 +34 @@
-index 5e6eecc501..0376c219be 100644
+index 0671750779..2786bdcff9 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix Rx data buffer size' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (49 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/i40e: fix Rx data buffer size' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/iavf: " luca.boccassi
                   ` (10 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Wenjun Wu; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4b0fddb60cf9084a7b8592a25230797cbb01dd32 Mon Sep 17 00:00:00 2001
From: Wenjun Wu <wenjun1.wu@intel.com>
Date: Fri, 14 Apr 2023 13:47:41 +0800
Subject: [PATCH] net/ice: fix Rx data buffer size

[ upstream commit 9a5c9dc475428c7d2c74383c0903541ab80144ea ]

This patch does two fixes.

1. According to hardware spec, the data buffer size should not
be greater than 16K - 128.

2. Replace RTE_ALIGN with RTE_ALIGN_FLOOR according to [1].

[1] Commit c9c45beb1b97 ("net/iavf: fix Rx queue buffer size alignment")

Fixes: 50370662b727 ("net/ice: support device and queue ops")
Fixes: 1b009275e2c8 ("net/ice: add Rx queue init in DCF")

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c | 3 ++-
 drivers/net/ice/ice_rxtx.c       | 3 ++-
 drivers/net/ice/ice_rxtx.h       | 3 +++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 429057a862..eb8095a61f 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -52,7 +52,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq)
 
 	buf_size = rte_pktmbuf_data_room_size(rxq->mp) - RTE_PKTMBUF_HEADROOM;
 	rxq->rx_hdr_len = 0;
-	rxq->rx_buf_len = RTE_ALIGN(buf_size, (1 << ICE_RLAN_CTX_DBUF_S));
+	rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size, (1 << ICE_RLAN_CTX_DBUF_S));
+	rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len, ICE_RX_MAX_DATA_BUF_SIZE);
 	max_pkt_len = RTE_MIN((uint32_t)
 			      ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
 			      dev->data->dev_conf.rxmode.max_rx_pkt_len);
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 2716c56f3a..699bf7bb64 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -248,7 +248,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
 	buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mp) -
 			      RTE_PKTMBUF_HEADROOM);
 	rxq->rx_hdr_len = 0;
-	rxq->rx_buf_len = RTE_ALIGN(buf_size, (1 << ICE_RLAN_CTX_DBUF_S));
+	rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size, (1 << ICE_RLAN_CTX_DBUF_S));
+	rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len, ICE_RX_MAX_DATA_BUF_SIZE);
 	rxq->max_pkt_len = RTE_MIN((uint32_t)
 				   ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
 				   dev_data->dev_conf.rxmode.max_rx_pkt_len);
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 1ba264ddbc..02da387897 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -42,6 +42,9 @@
 
 #define ICE_TX_MIN_PKT_LEN 17
 
+/* Max data buffer size must be 16K - 128 bytes */
+#define ICE_RX_MAX_DATA_BUF_SIZE	(16 * 1024 - 128)
+
 typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq);
 typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);
 typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.337464438 +0100
+++ 0052-net-ice-fix-Rx-data-buffer-size.patch	2023-06-15 01:56:34.699544188 +0100
@@ -1 +1 @@
-From 9a5c9dc475428c7d2c74383c0903541ab80144ea Mon Sep 17 00:00:00 2001
+From 4b0fddb60cf9084a7b8592a25230797cbb01dd32 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9a5c9dc475428c7d2c74383c0903541ab80144ea ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 13ff24552d..76b28bface 100644
+index 429057a862..eb8095a61f 100644
@@ -31 +32 @@
-@@ -114,7 +114,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq)
+@@ -52,7 +52,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq)
@@ -38,3 +39,3 @@
- 	max_pkt_len = RTE_MIN(ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
- 			      dev->data->mtu + ICE_ETH_OVERHEAD);
- 
+ 	max_pkt_len = RTE_MIN((uint32_t)
+ 			      ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
+ 			      dev->data->dev_conf.rxmode.max_rx_pkt_len);
@@ -42 +43 @@
-index 0ea0045836..560c1a4af7 100644
+index 2716c56f3a..699bf7bb64 100644
@@ -45,2 +46 @@
-@@ -259,7 +259,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
- 	/* Set buffer size as the head split is disabled. */
+@@ -248,7 +248,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq)
@@ -48,0 +49 @@
+ 	rxq->rx_hdr_len = 0;
@@ -52,3 +53,3 @@
- 	rxq->max_pkt_len =
- 		RTE_MIN((uint32_t)ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
- 			frame_size);
+ 	rxq->max_pkt_len = RTE_MIN((uint32_t)
+ 				   ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
+ 				   dev_data->dev_conf.rxmode.max_rx_pkt_len);
@@ -56 +57 @@
-index 94f6bcf3d1..89569029e1 100644
+index 1ba264ddbc..02da387897 100644
@@ -59,3 +60,3 @@
-@@ -51,6 +51,9 @@ extern int ice_timestamp_dynfield_offset;
- /* Max header size can be 2K - 64 bytes */
- #define ICE_RX_HDR_BUF_SIZE    (2048 - 64)
+@@ -42,6 +42,9 @@
+ 
+ #define ICE_TX_MIN_PKT_LEN 17
@@ -66,2 +66,0 @@
- #define ICE_HEADER_SPLIT_ENA   BIT(0)
- 
@@ -68,0 +68,2 @@
+ typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);
+ typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/iavf: fix Rx data buffer size' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (50 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice: " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice: fix statistics' " luca.boccassi
                   ` (9 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Wenjun Wu; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 0bf4c1164997fe6330553ddf22e1b8451864e1ee Mon Sep 17 00:00:00 2001
From: Wenjun Wu <wenjun1.wu@intel.com>
Date: Fri, 14 Apr 2023 13:47:42 +0800
Subject: [PATCH] net/iavf: fix Rx data buffer size

[ upstream commit c5549f1d9b1bf2bf2b09517daf89c84fbf5b18e0 ]

According to hardware spec, the data buffer size should not
be greater than 16K - 128.

Fixes: 69dd4c3d0898 ("net/avf: enable queue and device")

Signed-off-by: Wenjun Wu <wenjun1.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 1 +
 drivers/net/iavf/iavf_rxtx.h | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index a885d6955c..45b30363df 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -583,6 +583,7 @@ iavf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 
 	len = rte_pktmbuf_data_room_size(rxq->mp) - RTE_PKTMBUF_HEADROOM;
 	rxq->rx_buf_len = RTE_ALIGN_FLOOR(len, (1 << IAVF_RXQ_CTX_DBUFF_SHIFT));
+	rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len, IAVF_RX_MAX_DATA_BUF_SIZE);
 
 	/* Allocate the software ring. */
 	len = nb_desc + IAVF_RX_MAX_BURST;
diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
index 047743de4f..f961dbaa77 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -16,6 +16,9 @@
 /* used for Rx Bulk Allocate */
 #define IAVF_RX_MAX_BURST         32
 
+/* Max data buffer size must be 16K - 128 bytes */
+#define IAVF_RX_MAX_DATA_BUF_SIZE (16 * 1024 - 128)
+
 /* used for Vector PMD */
 #define IAVF_VPMD_RX_MAX_BURST    32
 #define IAVF_VPMD_TX_MAX_BURST    32
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.389939330 +0100
+++ 0053-net-iavf-fix-Rx-data-buffer-size.patch	2023-06-15 01:56:34.703544275 +0100
@@ -1 +1 @@
-From c5549f1d9b1bf2bf2b09517daf89c84fbf5b18e0 Mon Sep 17 00:00:00 2001
+From 0bf4c1164997fe6330553ddf22e1b8451864e1ee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c5549f1d9b1bf2bf2b09517daf89c84fbf5b18e0 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index b1d0fbceb6..0db3aabd92 100644
+index a885d6955c..45b30363df 100644
@@ -23 +24 @@
-@@ -697,6 +697,7 @@ iavf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
+@@ -583,6 +583,7 @@ iavf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
@@ -32 +33 @@
-index 09e2127db0..f205a2aaf1 100644
+index 047743de4f..f961dbaa77 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix statistics' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (51 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/iavf: " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice: fix DCF RSS initialization' " luca.boccassi
                   ` (8 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 6efe1ac8a1a08841673939090a57690e50af34bf Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Thu, 11 May 2023 02:10:55 +0000
Subject: [PATCH] net/ice: fix statistics

[ upstream commit a47ef8640a677a3973de48b8075f1fcd6a0ee68e ]

When the stats_get api is called for the first time in pmd, the offset
of the stats register is not recorded. That results in all the obtained
count values being 0.

This patch adds reset statistics before dev_init returning. That avoids
some noise being counted.

Fixes: 12443386a0b0 ("net/ice: support flex Rx descriptor RxDID22")

Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 8db05c998a..5a49868855 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -2270,6 +2270,9 @@ ice_dev_init(struct rte_eth_dev *dev)
 
 	pf->supported_rxdid = ice_get_supported_rxdid(hw);
 
+	/* reset all stats of the device, including pf and main vsi */
+	ice_stats_reset(dev);
+
 	return 0;
 
 err_flow_init:
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.438664928 +0100
+++ 0054-net-ice-fix-statistics.patch	2023-06-15 01:56:34.707544363 +0100
@@ -1 +1 @@
-From a47ef8640a677a3973de48b8075f1fcd6a0ee68e Mon Sep 17 00:00:00 2001
+From 6efe1ac8a1a08841673939090a57690e50af34bf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a47ef8640a677a3973de48b8075f1fcd6a0ee68e ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index e03bbd81a1..2345f9f29c 100644
+index 8db05c998a..5a49868855 100644
@@ -26 +27 @@
-@@ -2440,6 +2440,9 @@ ice_dev_init(struct rte_eth_dev *dev)
+@@ -2270,6 +2270,9 @@ ice_dev_init(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix DCF RSS initialization' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (52 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice: fix statistics' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/iavf: release large VF when closing device' " luca.boccassi
                   ` (7 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Kaiwen Deng; +Cc: Tyler Retzlaff, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 6affab003120be5b3366396ce22d4af3717c2d75 Mon Sep 17 00:00:00 2001
From: Kaiwen Deng <kaiwenx.deng@intel.com>
Date: Tue, 9 May 2023 09:22:09 +0800
Subject: [PATCH] net/ice: fix DCF RSS initialization

[ upstream commit f0be05f4c49129c8b7a34fa6505586b8a646ead1 ]

The i variable type is uint8_t which causes a dead loop,
changing it to size_t will solve this issue.

Fixes: 3220d865382c ("net/ice: init RSS during DCF start")

Signed-off-by: Kaiwen Deng <kaiwenx.deng@intel.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index 7aeb9c82ca..269d61f414 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -789,7 +789,8 @@ ice_dcf_init_rss(struct ice_dcf_hw *hw)
 {
 	struct rte_eth_dev *dev = hw->eth_dev;
 	struct rte_eth_rss_conf *rss_conf;
-	uint8_t i, j, nb_q;
+	uint8_t j, nb_q;
+	size_t i;
 	int ret;
 
 	rss_conf = &dev->data->dev_conf.rx_adv_conf.rss_conf;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.484134883 +0100
+++ 0055-net-ice-fix-DCF-RSS-initialization.patch	2023-06-15 01:56:34.707544363 +0100
@@ -1 +1 @@
-From f0be05f4c49129c8b7a34fa6505586b8a646ead1 Mon Sep 17 00:00:00 2001
+From 6affab003120be5b3366396ce22d4af3717c2d75 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f0be05f4c49129c8b7a34fa6505586b8a646ead1 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 80d2cbd597..b11d66f45f 100644
+index 7aeb9c82ca..269d61f414 100644
@@ -23 +24 @@
-@@ -853,7 +853,8 @@ ice_dcf_init_rss(struct ice_dcf_hw *hw)
+@@ -789,7 +789,8 @@ ice_dcf_init_rss(struct ice_dcf_hw *hw)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/iavf: release large VF when closing device' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (53 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice: fix DCF RSS initialization' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice: fix DCF control thread crash' " luca.boccassi
                   ` (6 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Shiyang He; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f6647f1993d0ec599ab9505a150bc0f23ee15a65 Mon Sep 17 00:00:00 2001
From: Shiyang He <shiyangx.he@intel.com>
Date: Mon, 8 May 2023 16:58:23 +0000
Subject: [PATCH] net/iavf: release large VF when closing device

[ upstream commit cdd8d6dfd156709b05ce363d7c5f491cc927330a ]

Multiple vfs created based on one PF. If one of the vf requests a large
number of queues, the queue resources are not released when exiting the
program, resulting in these queues cannot be available to other vfs.

This commit fixes the issue by resetting the number of queues to default
when closing the dev (refer to the kernel driver) .

Fixes: e436cd43835b ("net/iavf: negotiate large VF and request more queues")

Signed-off-by: Shiyang He <shiyangx.he@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 0cb2a457a2..746f6fc335 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2087,6 +2087,18 @@ iavf_dev_close(struct rte_eth_dev *dev)
 	if (vf->promisc_unicast_enabled || vf->promisc_multicast_enabled)
 		iavf_config_promisc(adapter, false, false);
 
+	/*
+	 * Release redundant queue resource when close the dev
+	 * so that other vfs can re-use the queues.
+	 */
+	if (vf->lv_enabled) {
+		ret = iavf_request_queues(dev, IAVF_MAX_NUM_QUEUES_DFLT);
+		if (ret)
+			PMD_DRV_LOG(ERR, "Reset the num of queues failed");
+
+		vf->max_rss_qregion = IAVF_MAX_NUM_QUEUES_DFLT;
+	}
+
 	iavf_shutdown_adminq(hw);
 	/* disable uio intr before callback unregister */
 	rte_intr_disable(intr_handle);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.525555025 +0100
+++ 0056-net-iavf-release-large-VF-when-closing-device.patch	2023-06-15 01:56:34.711544450 +0100
@@ -1 +1 @@
-From cdd8d6dfd156709b05ce363d7c5f491cc927330a Mon Sep 17 00:00:00 2001
+From f6647f1993d0ec599ab9505a150bc0f23ee15a65 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cdd8d6dfd156709b05ce363d7c5f491cc927330a ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index f6d68403ce..9c55eaa66e 100644
+index 0cb2a457a2..746f6fc335 100644
@@ -26 +27 @@
-@@ -2735,6 +2735,18 @@ iavf_dev_close(struct rte_eth_dev *dev)
+@@ -2087,6 +2087,18 @@ iavf_dev_close(struct rte_eth_dev *dev)
@@ -43,2 +44,2 @@
- 	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
- 		/* disable uio intr before callback unregister */
+ 	/* disable uio intr before callback unregister */
+ 	rte_intr_disable(intr_handle);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix DCF control thread crash' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (54 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/iavf: release large VF when closing device' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice/base: remove unreachable code' " luca.boccassi
                   ` (5 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Ke Zhang, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 86d4ff26c435878ba4b52a1e90d1cd3298689ad0 Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Tue, 11 Apr 2023 02:08:55 +0000
Subject: [PATCH] net/ice: fix DCF control thread crash

[ upstream commit 6b7621cea2d9470df076c3559a2fa6ee9752f419 ]

The control thread accesses the hardware resources after the
resources were released, which results in a segment error.

The 'ice-reset' threads are detached, so thread resources cannot be
reclaimed by `pthread_join` calls.

This commit synchronizes the number of "ice-reset" threads by adding a
variable ("vsi_update_thread_num") to the "struct ice_dcf_hw" and
performing an atomic operation on this variable. When releasing HW
resources, we wait for the number of "ice-reset" threads to be reduced
to 0 before releasing the resources.

Fixes: c7e1a1a3bfeb ("net/ice: refactor DCF VLAN handling")
Fixes: 3b3757bda3c3 ("net/ice: get VF hardware index in DCF")
Fixes: 7564d5509611 ("net/ice: add DCF hardware initialization")
Fixes: 0b02c9519432 ("net/ice: handle PF initialization by DCF")

Signed-off-by: Ke Zhang <ke1x.zhang@intel.com>
Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf.c        | 9 +++++++++
 drivers/net/ice/ice_dcf.h        | 2 ++
 drivers/net/ice/ice_dcf_parent.c | 6 ++++++
 3 files changed, 17 insertions(+)

diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c
index 269d61f414..b77097682e 100644
--- a/drivers/net/ice/ice_dcf.c
+++ b/drivers/net/ice/ice_dcf.c
@@ -32,6 +32,8 @@
 #define ICE_DCF_ARQ_MAX_RETRIES 200
 #define ICE_DCF_ARQ_CHECK_TIME  2   /* msecs */
 
+#define ICE_DCF_CHECK_INTERVAL  100   /* 100ms */
+
 #define ICE_DCF_VF_RES_BUF_SZ	\
 	(sizeof(struct virtchnl_vf_resource) +	\
 		IAVF_MAX_VF_VSI * sizeof(struct virtchnl_vsi_resource))
@@ -609,6 +611,8 @@ ice_dcf_init_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
 	rte_spinlock_init(&hw->vc_cmd_queue_lock);
 	TAILQ_INIT(&hw->vc_cmd_queue);
 
+	__atomic_store_n(&hw->vsi_update_thread_num, 0, __ATOMIC_RELAXED);
+
 	hw->arq_buf = rte_zmalloc("arq_buf", ICE_DCF_AQ_BUF_SZ, 0);
 	if (hw->arq_buf == NULL) {
 		PMD_INIT_LOG(ERR, "unable to allocate AdminQ buffer memory");
@@ -710,6 +714,11 @@ ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
 	rte_intr_callback_unregister(intr_handle,
 				     ice_dcf_dev_interrupt_handler, hw);
 
+	/* Wait for all `ice-thread` threads to exit. */
+	while (__atomic_load_n(&hw->vsi_update_thread_num,
+		__ATOMIC_ACQUIRE) != 0)
+		rte_delay_ms(ICE_DCF_CHECK_INTERVAL);
+
 	ice_dcf_mode_disable(hw);
 	iavf_shutdown_adminq(&hw->avf);
 
diff --git a/drivers/net/ice/ice_dcf.h b/drivers/net/ice/ice_dcf.h
index ff029963bf..6c594754ff 100644
--- a/drivers/net/ice/ice_dcf.h
+++ b/drivers/net/ice/ice_dcf.h
@@ -39,6 +39,8 @@ struct ice_dcf_hw {
 	void (*vc_event_msg_cb)(struct ice_dcf_hw *dcf_hw,
 				uint8_t *msg, uint16_t msglen);
 
+	int vsi_update_thread_num;
+
 	uint8_t *arq_buf;
 
 	uint16_t num_vfs;
diff --git a/drivers/net/ice/ice_dcf_parent.c b/drivers/net/ice/ice_dcf_parent.c
index c7c1111a67..8456c48a91 100644
--- a/drivers/net/ice/ice_dcf_parent.c
+++ b/drivers/net/ice/ice_dcf_parent.c
@@ -115,6 +115,9 @@ ice_dcf_vsi_update_service_handler(void *param)
 		container_of(hw, struct ice_dcf_adapter, real_hw);
 	struct ice_adapter *parent_adapter = &adapter->parent;
 
+	__atomic_fetch_add(&hw->vsi_update_thread_num, 1,
+		__ATOMIC_RELAXED);
+
 	pthread_detach(pthread_self());
 	usleep(ICE_DCF_VSI_UPDATE_SERVICE_INTERVAL);
 
@@ -133,6 +136,9 @@ ice_dcf_vsi_update_service_handler(void *param)
 
 	rte_spinlock_unlock(&vsi_update_lock);
 
+	__atomic_fetch_sub(&hw->vsi_update_thread_num, 1,
+		__ATOMIC_RELEASE);
+
 	return NULL;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.568287886 +0100
+++ 0057-net-ice-fix-DCF-control-thread-crash.patch	2023-06-15 01:56:34.711544450 +0100
@@ -1 +1 @@
-From 6b7621cea2d9470df076c3559a2fa6ee9752f419 Mon Sep 17 00:00:00 2001
+From 86d4ff26c435878ba4b52a1e90d1cd3298689ad0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6b7621cea2d9470df076c3559a2fa6ee9752f419 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -34 +35 @@
-index b11d66f45f..c37b56b0d3 100644
+index 269d61f414..b77097682e 100644
@@ -37 +38 @@
-@@ -31,6 +31,8 @@
+@@ -32,6 +32,8 @@
@@ -46 +47 @@
-@@ -638,6 +640,8 @@ ice_dcf_init_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
+@@ -609,6 +611,8 @@ ice_dcf_init_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
@@ -55 +56 @@
-@@ -759,6 +763,11 @@ ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
+@@ -710,6 +714,11 @@ ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
@@ -68 +69 @@
-index 7f42ebabe9..7becf6d187 100644
+index ff029963bf..6c594754ff 100644
@@ -71 +72 @@
-@@ -105,6 +105,8 @@ struct ice_dcf_hw {
+@@ -39,6 +39,8 @@ struct ice_dcf_hw {
@@ -81 +82 @@
-index 3175d18b5b..d62837840d 100644
+index c7c1111a67..8456c48a91 100644
@@ -84 +85 @@
-@@ -123,6 +123,9 @@ ice_dcf_vsi_update_service_handler(void *param)
+@@ -115,6 +115,9 @@ ice_dcf_vsi_update_service_handler(void *param)
@@ -91 +92,2 @@
- 	rte_thread_detach(rte_thread_self());
+ 	pthread_detach(pthread_self());
+ 	usleep(ICE_DCF_VSI_UPDATE_SERVICE_INTERVAL);
@@ -93,2 +95 @@
- 	rte_delay_us(ICE_DCF_VSI_UPDATE_SERVICE_INTERVAL);
-@@ -153,6 +156,9 @@ ice_dcf_vsi_update_service_handler(void *param)
+@@ -133,6 +136,9 @@ ice_dcf_vsi_update_service_handler(void *param)
@@ -96 +97 @@
- 	free(param);
+ 	rte_spinlock_unlock(&vsi_update_lock);
@@ -101 +102 @@
- 	return 0;
+ 	return NULL;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice/base: remove unreachable code' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (55 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice: fix DCF control thread crash' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/ice: fix outer UDP checksum offload' " luca.boccassi
                   ` (4 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Vignesh Sridhar, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 8ecef29eea9b7f0758b6de199866b7a997556bec Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Thu, 18 May 2023 15:16:36 +0000
Subject: [PATCH] net/ice/base: remove unreachable code

[ upstream commit ca2011635fa38c71f47933d77ee618ca4d4f640f ]

The default condition in the switch statement in
ice_sched_get_psm_clk_freq() is an unreachable code. The variable
clk_src is restricted to values 0 to 3 with the bit mask and shift
values set.

Fixes: 76ac9d771c97 ("net/ice/base: read PSM clock frequency from register")

Signed-off-by: Vignesh Sridhar <vignesh.sridhar@intel.com>
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/base/ice_sched.c | 16 ++++++----------
 drivers/net/ice/base/ice_sched.h |  5 +++++
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c
index 9196628cf1..89d32a6bae 100644
--- a/drivers/net/ice/base/ice_sched.c
+++ b/drivers/net/ice/base/ice_sched.c
@@ -1370,11 +1370,6 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
 	clk_src = (val & GLGEN_CLKSTAT_SRC_PSM_CLK_SRC_M) >>
 		GLGEN_CLKSTAT_SRC_PSM_CLK_SRC_S;
 
-#define PSM_CLK_SRC_367_MHZ 0x0
-#define PSM_CLK_SRC_416_MHZ 0x1
-#define PSM_CLK_SRC_446_MHZ 0x2
-#define PSM_CLK_SRC_390_MHZ 0x3
-
 	switch (clk_src) {
 	case PSM_CLK_SRC_367_MHZ:
 		hw->psm_clk_freq = ICE_PSM_CLK_367MHZ_IN_HZ;
@@ -1388,11 +1383,12 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
 	case PSM_CLK_SRC_390_MHZ:
 		hw->psm_clk_freq = ICE_PSM_CLK_390MHZ_IN_HZ;
 		break;
-	default:
-		ice_debug(hw, ICE_DBG_SCHED, "PSM clk_src unexpected %u\n",
-			  clk_src);
-		/* fall back to a safe default */
-		hw->psm_clk_freq = ICE_PSM_CLK_446MHZ_IN_HZ;
+
+	/* default condition is not required as clk_src is restricted
+	 * to a 2-bit value from GLGEN_CLKSTAT_SRC_PSM_CLK_SRC_M mask.
+	 * The above switch statements cover the possible values of
+	 * this variable.
+	 */
 	}
 }
 
diff --git a/drivers/net/ice/base/ice_sched.h b/drivers/net/ice/base/ice_sched.h
index 8b275637a4..b49390f2c8 100644
--- a/drivers/net/ice/base/ice_sched.h
+++ b/drivers/net/ice/base/ice_sched.h
@@ -35,6 +35,11 @@
 #define ICE_PSM_CLK_446MHZ_IN_HZ 446428571
 #define ICE_PSM_CLK_390MHZ_IN_HZ 390625000
 
+#define PSM_CLK_SRC_367_MHZ 0x0
+#define PSM_CLK_SRC_416_MHZ 0x1
+#define PSM_CLK_SRC_446_MHZ 0x2
+#define PSM_CLK_SRC_390_MHZ 0x3
+
 struct rl_profile_params {
 	u32 bw;			/* in Kbps */
 	u16 rl_multiplier;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.610869024 +0100
+++ 0058-net-ice-base-remove-unreachable-code.patch	2023-06-15 01:56:34.719544625 +0100
@@ -1 +1 @@
-From ca2011635fa38c71f47933d77ee618ca4d4f640f Mon Sep 17 00:00:00 2001
+From 8ecef29eea9b7f0758b6de199866b7a997556bec Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ca2011635fa38c71f47933d77ee618ca4d4f640f ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index a526c8f32c..b16b27dcbf 100644
+index 9196628cf1..89d32a6bae 100644
@@ -26 +27 @@
-@@ -1417,11 +1417,6 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
+@@ -1370,11 +1370,6 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
@@ -38 +39 @@
-@@ -1435,11 +1430,12 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
+@@ -1388,11 +1383,12 @@ void ice_sched_get_psm_clk_freq(struct ice_hw *hw)
@@ -57 +58 @@
-index 3724ef33a8..64ed5e0f9b 100644
+index 8b275637a4..b49390f2c8 100644
@@ -60 +61 @@
-@@ -38,6 +38,11 @@
+@@ -35,6 +35,11 @@

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix outer UDP checksum offload' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (56 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice/base: remove unreachable code' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'net/iavf: fix virtchnl command called in interrupt' " luca.boccassi
                   ` (3 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Zhichao Zeng; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4e5c2b73e7f814c8a6d5b231f3a499d34b9e0c2a Mon Sep 17 00:00:00 2001
From: Zhichao Zeng <zhichaox.zeng@intel.com>
Date: Fri, 2 Jun 2023 09:42:53 +0800
Subject: [PATCH] net/ice: fix outer UDP checksum offload

[ upstream commit 10fbf1af4c5548b85b4791d241cdef62755240b1 ]

Currently, when dealing with UDP tunnel pkts checksum offloading,
the outer-udp checksum will be offloaded by default. So the
'csum set outer-udp hw/sw' command does not work.

This patch fixes judgment of the EIPT flag and enables the
'csum set outer-udp hw/sw' command by adding judgment for the
outer-udp checksum offload flag.

Fixes: bd70c451532c ("net/ice: support Tx checksum offload for tunnel")

Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 699bf7bb64..87cb7e8e8d 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -2344,7 +2344,8 @@ ice_parse_tunneling_params(uint64_t ol_flags,
 	 * Shall be set only if L4TUNT = 01b and EIPT is not zero
 	 */
 	if (!(*cd_tunneling & ICE_TX_CTX_EIPT_NONE) &&
-	    (*cd_tunneling & ICE_TXD_CTX_UDP_TUNNELING))
+		(*cd_tunneling & ICE_TXD_CTX_UDP_TUNNELING) &&
+		(ol_flags & PKT_TX_OUTER_UDP_CKSUM))
 		*cd_tunneling |= ICE_TXD_CTX_QW0_L4T_CS_M;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.666907426 +0100
+++ 0059-net-ice-fix-outer-UDP-checksum-offload.patch	2023-06-15 01:56:34.723544712 +0100
@@ -1 +1 @@
-From 10fbf1af4c5548b85b4791d241cdef62755240b1 Mon Sep 17 00:00:00 2001
+From 4e5c2b73e7f814c8a6d5b231f3a499d34b9e0c2a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 10fbf1af4c5548b85b4791d241cdef62755240b1 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 7b6784b177..665ae32c13 100644
+index 699bf7bb64..87cb7e8e8d 100644
@@ -27 +28 @@
-@@ -2734,7 +2734,8 @@ ice_parse_tunneling_params(uint64_t ol_flags,
+@@ -2344,7 +2344,8 @@ ice_parse_tunneling_params(uint64_t ol_flags,
@@ -33 +34 @@
-+		(ol_flags & RTE_MBUF_F_TX_OUTER_UDP_CKSUM))
++		(ol_flags & PKT_TX_OUTER_UDP_CKSUM))

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/iavf: fix virtchnl command called in interrupt' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (57 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/ice: fix outer UDP checksum offload' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'test/mbuf: fix crash in a forked process' " luca.boccassi
                   ` (2 subsequent siblings)
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Kaiwen Deng; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 28122dd7602b701b055315e8692366f7394c3d6d Mon Sep 17 00:00:00 2001
From: Kaiwen Deng <kaiwenx.deng@intel.com>
Date: Thu, 8 Jun 2023 15:27:56 +0800
Subject: [PATCH] net/iavf: fix virtchnl command called in interrupt

[ upstream commit 92a16af4504b67545e91286dfb0a332d58e68eec ]

When iavf send virtchnl command in eal-intr-thread, there will be
no response received from iavf_dev_virtchnl_handler for this
command during block and wait. Because iavf_dev_virtchnl_handler
is also registered in eal-intr-thread.

This commit add to poll the response for virtchnl command
when it is called by eal-intr-thread to fix this issue.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")

Signed-off-by: Kaiwen Deng <kaiwenx.deng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c |  5 ++-
 drivers/net/iavf/iavf_vchnl.c  | 71 +++++++++++++++++++++++-----------
 2 files changed, 52 insertions(+), 24 deletions(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 746f6fc335..40f5693d28 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2011,6 +2011,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 	adapter->dev_data = eth_dev->data;
 	adapter->stopped = 1;
 
+	if (iavf_dev_event_handler_init())
+		return 0;
+
 	if (iavf_init_vf(eth_dev) != 0) {
 		PMD_INIT_LOG(ERR, "Init vf failed");
 		return -1;
@@ -2037,8 +2040,6 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 	rte_ether_addr_copy((struct rte_ether_addr *)hw->mac.addr,
 			&eth_dev->data->mac_addrs[0]);
 
-	if (iavf_dev_event_handler_init())
-		return 0;
 
 	/* register callback func to eal lib */
 	rte_intr_callback_register(&pci_dev->intr_handle,
diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c
index 4c6efaac3a..1a09acafb1 100644
--- a/drivers/net/iavf/iavf_vchnl.c
+++ b/drivers/net/iavf/iavf_vchnl.c
@@ -254,6 +254,7 @@ iavf_read_msg_from_pf(struct iavf_adapter *adapter, uint16_t buf_len,
 				vf->link_speed = iavf_convert_link_speed(speed);
 			}
 			iavf_dev_link_update(vf->eth_dev, 0);
+			iavf_dev_event_post(vf->eth_dev, RTE_ETH_EVENT_INTR_LSC, NULL, 0);
 			PMD_DRV_LOG(INFO, "Link status update:%s",
 					vf->link_up ? "up" : "down");
 			break;
@@ -358,28 +359,48 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
 		_clear_cmd(vf);
 		break;
 	default:
-		/* For other virtchnl ops in running time,
-		 * wait for the cmd done flag.
-		 */
-		do {
-			if (vf->pend_cmd == VIRTCHNL_OP_UNKNOWN)
-				break;
-			iavf_msec_delay(ASQ_DELAY_MS);
-			/* If don't read msg or read sys event, continue */
-		} while (i++ < MAX_TRY_TIMES);
-
-		if (i >= MAX_TRY_TIMES) {
-			PMD_DRV_LOG(ERR, "No response for cmd %d", args->ops);
+		if (rte_thread_is_intr()) {
+			/* For virtchnl ops were executed in eal_intr_thread,
+			 * need to poll the response.
+			 */
+			do {
+				result = iavf_read_msg_from_pf(adapter, args->out_size,
+							args->out_buffer);
+				if (result == IAVF_MSG_CMD)
+					break;
+				iavf_msec_delay(ASQ_DELAY_MS);
+			} while (i++ < MAX_TRY_TIMES);
+			if (i >= MAX_TRY_TIMES ||
+				vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
+				err = -1;
+				PMD_DRV_LOG(ERR, "No response or return failure (%d)"
+						" for cmd %d", vf->cmd_retval, args->ops);
+			}
 			_clear_cmd(vf);
-			err = -EIO;
-		} else if (vf->cmd_retval ==
-			   VIRTCHNL_STATUS_ERR_NOT_SUPPORTED) {
-			PMD_DRV_LOG(ERR, "Cmd %d not supported", args->ops);
-			err = -ENOTSUP;
-		} else if (vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
-			PMD_DRV_LOG(ERR, "Return failure %d for cmd %d",
-				    vf->cmd_retval, args->ops);
-			err = -EINVAL;
+		} else {
+			/* For other virtchnl ops in running time,
+			 * wait for the cmd done flag.
+			 */
+			do {
+				if (vf->pend_cmd == VIRTCHNL_OP_UNKNOWN)
+					break;
+				iavf_msec_delay(ASQ_DELAY_MS);
+				/* If don't read msg or read sys event, continue */
+			} while (i++ < MAX_TRY_TIMES);
+
+			if (i >= MAX_TRY_TIMES) {
+				PMD_DRV_LOG(ERR, "No response for cmd %d", args->ops);
+				_clear_cmd(vf);
+				err = -EIO;
+			} else if (vf->cmd_retval ==
+				VIRTCHNL_STATUS_ERR_NOT_SUPPORTED) {
+				PMD_DRV_LOG(ERR, "Cmd %d not supported", args->ops);
+				err = -ENOTSUP;
+			} else if (vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
+				PMD_DRV_LOG(ERR, "Return failure %d for cmd %d",
+						vf->cmd_retval, args->ops);
+				err = -EINVAL;
+			}
 		}
 		break;
 	}
@@ -393,8 +414,14 @@ iavf_execute_vf_cmd_safe(struct iavf_adapter *adapter,
 {
 	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
 	int ret;
+	int is_intr_thread = rte_thread_is_intr();
 
-	rte_spinlock_lock(&vf->aq_lock);
+	if (is_intr_thread) {
+		if (!rte_spinlock_trylock(&vf->aq_lock))
+			return -EIO;
+	} else {
+		rte_spinlock_lock(&vf->aq_lock);
+	}
 	ret = iavf_execute_vf_cmd(adapter, args);
 	rte_spinlock_unlock(&vf->aq_lock);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.713100577 +0100
+++ 0060-net-iavf-fix-virtchnl-command-called-in-interrupt.patch	2023-06-15 01:56:34.727544800 +0100
@@ -1 +1 @@
-From 92a16af4504b67545e91286dfb0a332d58e68eec Mon Sep 17 00:00:00 2001
+From 28122dd7602b701b055315e8692366f7394c3d6d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 92a16af4504b67545e91286dfb0a332d58e68eec ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 96004220a1..b72dbc8ceb 100644
+index 746f6fc335..40f5693d28 100644
@@ -28 +29 @@
-@@ -2647,6 +2647,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2011,6 +2011,9 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
@@ -33 +34 @@
-+		goto init_vf_err;
++		return 0;
@@ -38 +39 @@
-@@ -2674,8 +2677,6 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2037,8 +2040,6 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
@@ -43 +44 @@
--		goto init_vf_err;
+-		return 0;
@@ -45,2 +46,2 @@
- 	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
- 		/* register callback func to eal lib */
+ 	/* register callback func to eal lib */
+ 	rte_intr_callback_register(&pci_dev->intr_handle,
@@ -48 +49 @@
-index 8874a08b24..07eb358824 100644
+index 4c6efaac3a..1a09acafb1 100644
@@ -51 +52 @@
-@@ -256,6 +256,7 @@ iavf_read_msg_from_pf(struct iavf_adapter *adapter, uint16_t buf_len,
+@@ -254,6 +254,7 @@ iavf_read_msg_from_pf(struct iavf_adapter *adapter, uint16_t buf_len,
@@ -56,4 +57,4 @@
- 			if (vf->link_up && !vf->vf_reset) {
- 				iavf_dev_watchdog_disable(adapter);
- 			} else {
-@@ -374,28 +375,48 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args,
+ 			PMD_DRV_LOG(INFO, "Link status update:%s",
+ 					vf->link_up ? "up" : "down");
+ 			break;
+@@ -358,28 +359,48 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
@@ -129 +130 @@
-@@ -409,8 +430,14 @@ iavf_execute_vf_cmd_safe(struct iavf_adapter *adapter,
+@@ -393,8 +414,14 @@ iavf_execute_vf_cmd_safe(struct iavf_adapter *adapter,
@@ -142 +143 @@
- 	ret = iavf_execute_vf_cmd(adapter, args, async);
+ 	ret = iavf_execute_vf_cmd(adapter, args);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test/mbuf: fix crash in a forked process' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (58 preceding siblings ...)
  2023-06-15  1:32 ` patch 'net/iavf: fix virtchnl command called in interrupt' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: fix typo in graph guide' " luca.boccassi
  2023-06-15  1:32 ` patch 'doc: remove warning with Doxygen 1.9.7' " luca.boccassi
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Jia He, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 20ca7fc9ed8af54ded8d54163f095d6730624d7e Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Mon, 22 May 2023 14:01:37 +0800
Subject: [PATCH] test/mbuf: fix crash in a forked process

[ upstream commit b6c419dde10e9f5dec7a02098c48060a7493420c ]

Access of any memory in the hugepage shared file-backed area will trigger
an unexpected forked child process segment fault. The root cause is DPDK
doesn't support fork model [1] (calling rte_eal_init() before fork()).
Forked child process can't be treated as a secondary process.

Hence fix it by avoiding fork and doing verification in the main process.

[1] https://mails.dpdk.org/archives/dev/2018-July/108106.html

Fixes: af75078fece3 ("first public release")

Signed-off-by: Jia He <justin.he@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 app/test/test_mbuf.c | 49 +++++++++++++-------------------------------
 1 file changed, 14 insertions(+), 35 deletions(-)

diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c
index 9f851da162..93736d8148 100644
--- a/app/test/test_mbuf.c
+++ b/app/test/test_mbuf.c
@@ -1173,37 +1173,16 @@ err:
 #endif
 }
 
-#include <unistd.h>
-#include <sys/resource.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-
-/* use fork() to test mbuf errors panic */
-static int
-verify_mbuf_check_panics(struct rte_mbuf *buf)
+/* Verify if mbuf can pass the check */
+static bool
+mbuf_check_pass(struct rte_mbuf *buf)
 {
-	int pid;
-	int status;
+	const char *reason;
 
-	pid = fork();
+	if (rte_mbuf_check(buf, 1, &reason) == 0)
+		return true;
 
-	if (pid == 0) {
-		struct rlimit rl;
-
-		/* No need to generate a coredump when panicking. */
-		rl.rlim_cur = rl.rlim_max = 0;
-		setrlimit(RLIMIT_CORE, &rl);
-		rte_mbuf_sanity_check(buf, 1); /* should panic */
-		exit(0);  /* return normally if it doesn't panic */
-	} else if (pid < 0) {
-		printf("Fork Failed\n");
-		return -1;
-	}
-	wait(&status);
-	if(status == 0)
-		return -1;
-
-	return 0;
+	return false;
 }
 
 static int
@@ -1220,47 +1199,47 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
 		return -1;
 
 	printf("Checking good mbuf initially\n");
-	if (verify_mbuf_check_panics(buf) != -1)
+	if (!mbuf_check_pass(buf))
 		return -1;
 
 	printf("Now checking for error conditions\n");
 
-	if (verify_mbuf_check_panics(NULL)) {
+	if (mbuf_check_pass(NULL)) {
 		printf("Error with NULL mbuf test\n");
 		return -1;
 	}
 
 	badbuf = *buf;
 	badbuf.pool = NULL;
-	if (verify_mbuf_check_panics(&badbuf)) {
+	if (mbuf_check_pass(&badbuf)) {
 		printf("Error with bad-pool mbuf test\n");
 		return -1;
 	}
 
 	badbuf = *buf;
 	badbuf.buf_iova = 0;
-	if (verify_mbuf_check_panics(&badbuf)) {
+	if (mbuf_check_pass(&badbuf)) {
 		printf("Error with bad-physaddr mbuf test\n");
 		return -1;
 	}
 
 	badbuf = *buf;
 	badbuf.buf_addr = NULL;
-	if (verify_mbuf_check_panics(&badbuf)) {
+	if (mbuf_check_pass(&badbuf)) {
 		printf("Error with bad-addr mbuf test\n");
 		return -1;
 	}
 
 	badbuf = *buf;
 	badbuf.refcnt = 0;
-	if (verify_mbuf_check_panics(&badbuf)) {
+	if (mbuf_check_pass(&badbuf)) {
 		printf("Error with bad-refcnt(0) mbuf test\n");
 		return -1;
 	}
 
 	badbuf = *buf;
 	badbuf.refcnt = UINT16_MAX;
-	if (verify_mbuf_check_panics(&badbuf)) {
+	if (mbuf_check_pass(&badbuf)) {
 		printf("Error with bad-refcnt(MAX) mbuf test\n");
 		return -1;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.759264545 +0100
+++ 0061-test-mbuf-fix-crash-in-a-forked-process.patch	2023-06-15 01:56:34.727544800 +0100
@@ -1 +1 @@
-From b6c419dde10e9f5dec7a02098c48060a7493420c Mon Sep 17 00:00:00 2001
+From 20ca7fc9ed8af54ded8d54163f095d6730624d7e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b6c419dde10e9f5dec7a02098c48060a7493420c ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +23,2 @@
- app/test/test_mbuf.c | 50 +++++++++++++-------------------------------
- 1 file changed, 14 insertions(+), 36 deletions(-)
+ app/test/test_mbuf.c | 49 +++++++++++++-------------------------------
+ 1 file changed, 14 insertions(+), 35 deletions(-)
@@ -26 +27 @@
-index 8d8d3b9386..efac01806b 100644
+index 9f851da162..93736d8148 100644
@@ -29,2 +30,2 @@
-@@ -1167,38 +1167,16 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
- 	return TEST_SKIPPED;
+@@ -1173,37 +1173,16 @@ err:
+ #endif
@@ -32,2 +33 @@
- #else
--
+ 
@@ -75 +75 @@
-@@ -1215,19 +1193,19 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
+@@ -1220,47 +1199,47 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
@@ -98,10 +98,8 @@
-@@ -1235,7 +1213,7 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
- 	if (RTE_IOVA_IN_MBUF) {
- 		badbuf = *buf;
- 		rte_mbuf_iova_set(&badbuf, 0);
--		if (verify_mbuf_check_panics(&badbuf)) {
-+		if (mbuf_check_pass(&badbuf)) {
- 			printf("Error with bad-physaddr mbuf test\n");
- 			return -1;
- 		}
-@@ -1243,21 +1221,21 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool)
+ 
+ 	badbuf = *buf;
+ 	badbuf.buf_iova = 0;
+-	if (verify_mbuf_check_panics(&badbuf)) {
++	if (mbuf_check_pass(&badbuf)) {
+ 		printf("Error with bad-physaddr mbuf test\n");
+ 		return -1;
+ 	}

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix typo in graph guide' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (59 preceding siblings ...)
  2023-06-15  1:32 ` patch 'test/mbuf: fix crash in a forked process' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-15  1:32 ` patch 'doc: remove warning with Doxygen 1.9.7' " luca.boccassi
  61 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Ashwin Sekhar T K; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 597f82f6e33c6128a3969c540a7b2fb7cc27118c Mon Sep 17 00:00:00 2001
From: Ashwin Sekhar T K <asekhar@marvell.com>
Date: Thu, 4 May 2023 10:01:35 +0530
Subject: [PATCH] doc: fix typo in graph guide

[ upstream commit b457a9b3a4027aa6b0e52940fbaf6736ad021296 ]

Fix typo in graph lib doc.

Fixes: 4dc6d8e63c16 ("doc: add graph library guide")

Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 doc/guides/prog_guide/graph_lib.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guides/prog_guide/graph_lib.rst b/doc/guides/prog_guide/graph_lib.rst
index 1cfdc86433..4ab0623f44 100644
--- a/doc/guides/prog_guide/graph_lib.rst
+++ b/doc/guides/prog_guide/graph_lib.rst
@@ -173,7 +173,7 @@ Create the graph object
 ~~~~~~~~~~~~~~~~~~~~~~~
 Now that the nodes are linked, Its time to create a graph by including
 the required nodes. The application can provide a set of node patterns to
-form a graph object. The ``famish()`` API used underneath for the pattern
+form a graph object. The ``fnmatch()`` API used underneath for the pattern
 matching to include the required nodes. After the graph create any changes to
 nodes or graph is not allowed.
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.802742501 +0100
+++ 0062-doc-fix-typo-in-graph-guide.patch	2023-06-15 01:56:34.727544800 +0100
@@ -1 +1 @@
-From b457a9b3a4027aa6b0e52940fbaf6736ad021296 Mon Sep 17 00:00:00 2001
+From 597f82f6e33c6128a3969c540a7b2fb7cc27118c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b457a9b3a4027aa6b0e52940fbaf6736ad021296 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: remove warning with Doxygen 1.9.7' has been queued to stable release 20.11.9
  2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
                   ` (60 preceding siblings ...)
  2023-06-15  1:32 ` patch 'doc: fix typo in graph guide' " luca.boccassi
@ 2023-06-15  1:32 ` luca.boccassi
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
  61 siblings, 1 reply; 113+ messages in thread
From: luca.boccassi @ 2023-06-15  1:32 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 219a4f1035eaf47064aa7bb83ee3eba88b328ef2 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerinj@marvell.com>
Date: Fri, 2 Jun 2023 16:36:59 +0530
Subject: [PATCH] doc: remove warning with Doxygen 1.9.7

[ upstream commit 6df586f544d90f1eb266d75e6c8215e1c081019c ]

Since doxygen 1.9.7 version, HTML_TIMESTAMP configuration option
changed to TIMESTAMP [2]. Fixed the following warning[1] by
removing TIMESTAMP options all together as all new versions(since 1.8.9)
of doxygen this option is disabled by default. Another option was
considered to have this configuration option based on version check, which
may not be worth having it, especially, external_program.version()
API introduced in 0.62.0 version of meson.

[1]
Warning: Tag 'HTML_TIMESTAMP' at line 115 of file 'doc/api/doxy-api.conf'
has become obsolete.

[2]
https://www.doxygen.nl/manual/config.html#cfg_timestamp

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/api/doxy-api.conf.in | 1 -
 1 file changed, 1 deletion(-)

diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in
index a536bcb493..52c310e3d0 100644
--- a/doc/api/doxy-api.conf.in
+++ b/doc/api/doxy-api.conf.in
@@ -97,7 +97,6 @@ GENERATE_DEPRECATEDLIST = YES
 VERBATIM_HEADERS        = NO
 ALPHABETICAL_INDEX      = NO
 
-HTML_TIMESTAMP          = NO
 HTML_DYNAMIC_SECTIONS   = YES
 SEARCHENGINE            = YES
 SORT_MEMBER_DOCS        = NO
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-15 01:56:37.845085690 +0100
+++ 0063-doc-remove-warning-with-Doxygen-1.9.7.patch	2023-06-15 01:56:34.727544800 +0100
@@ -1 +1 @@
-From 6df586f544d90f1eb266d75e6c8215e1c081019c Mon Sep 17 00:00:00 2001
+From 219a4f1035eaf47064aa7bb83ee3eba88b328ef2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6df586f544d90f1eb266d75e6c8215e1c081019c ]
+
@@ -21,2 +22,0 @@
-Cc: stable@dpdk.org
-
@@ -30 +30 @@
-index 8ea78f9005..1a4210b948 100644
+index a536bcb493..52c310e3d0 100644
@@ -33 +33 @@
-@@ -113,7 +113,6 @@ GENERATE_DEPRECATEDLIST = YES
+@@ -97,7 +97,6 @@ GENERATE_DEPRECATEDLIST = YES
@@ -39 +38,0 @@
- HTML_EXTRA_STYLESHEET   = @TOPDIR@/doc/api/custom.css
@@ -40,0 +40 @@
+ SORT_MEMBER_DOCS        = NO

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'examples/l2fwd-cat: fix external build' has been queued to stable release 20.11.9
  2023-06-15  1:32 ` patch 'doc: remove warning with Doxygen 1.9.7' " luca.boccassi
@ 2023-06-28 14:10   ` luca.boccassi
  2023-06-28 14:10     ` patch 'test: add graph tests' " luca.boccassi
                       ` (20 more replies)
  0 siblings, 21 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: David Marchand; +Cc: Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From e09b6241d4f0b9cfdbe6490fe1cec40c3c348a76 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 22 Jun 2023 15:40:29 +0200
Subject: [PATCH] examples/l2fwd-cat: fix external build

[ upstream commit 006e18a83a7f9d50dd24c7931cac1c82e7379c48 ]

cpu_set_t definition requires _GNU_SOURCE.

Fixes: e0473c6d5b18 ("eal: fix build with musl")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Thomas Monjalon <thomas@monjalon.net>
---
 examples/l2fwd-cat/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/examples/l2fwd-cat/Makefile b/examples/l2fwd-cat/Makefile
index 532db37ba6..6e657f0934 100644
--- a/examples/l2fwd-cat/Makefile
+++ b/examples/l2fwd-cat/Makefile
@@ -27,6 +27,7 @@ LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
 LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
 
 CFLAGS += -DALLOW_EXPERIMENTAL_API
+CFLAGS += -D_GNU_SOURCE
 
 LDFLAGS += -lpqos
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.125333150 +0100
+++ 0001-examples-l2fwd-cat-fix-external-build.patch	2023-06-28 11:40:08.012026598 +0100
@@ -1 +1 @@
-From 006e18a83a7f9d50dd24c7931cac1c82e7379c48 Mon Sep 17 00:00:00 2001
+From e09b6241d4f0b9cfdbe6490fe1cec40c3c348a76 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 006e18a83a7f9d50dd24c7931cac1c82e7379c48 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 23a09550a4..d06053451a 100644
+index 532db37ba6..6e657f0934 100644
@@ -21,2 +22,2 @@
-@@ -35,6 +35,7 @@ endif
- endif
+@@ -27,6 +27,7 @@ LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
+ LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test: add graph tests' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:55       ` David Marchand
  2023-06-28 14:10     ` patch 'mbuf: fix Doxygen comment of distributor metadata' " luca.boccassi
                       ` (19 subsequent siblings)
  20 siblings, 1 reply; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: David Marchand; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 7a535c0c0633922a7f0873a000cd10d033a37187 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 19 Jun 2023 22:46:49 +0200
Subject: [PATCH] test: add graph tests

[ upstream commit 3d0c16f256a234ed04f6a11fd6635c8780f669f7 ]

We forgot to add graph unit tests to the CI testsuites.

Fixes: 6b89650418fe ("test/graph: add functional tests")
Fixes: 61d77071ab99 ("test/graph: add performance tests")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 app/test/meson.build | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/test/meson.build b/app/test/meson.build
index 49fbb5e18e..8049e9e32e 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -210,6 +210,7 @@ fast_tests = [
         ['fib6_autotest', true],
         ['func_reentrancy_autotest', false],
         ['flow_classify_autotest', false],
+        ['graph_autotest', true],
         ['hash_autotest', true],
         ['interrupt_autotest', true],
         ['ipfrag_autotest', false],
@@ -226,6 +227,7 @@ fast_tests = [
         ['memzone_autotest', false],
         ['meter_autotest', true],
         ['multiprocess_autotest', false],
+        ['node_list_dump', true],
         ['per_lcore_autotest', true],
         ['prefetch_autotest', true],
         ['rcu_qsbr_autotest', true],
@@ -303,6 +305,7 @@ perf_test_names = [
         'hash_readwrite_lf_perf_autotest',
         'trace_perf_autotest',
 	'ipsec_perf_autotest',
+        'graph_perf_autotest',
 ]
 
 driver_test_names = [
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.157871500 +0100
+++ 0002-test-add-graph-tests.patch	2023-06-28 11:40:08.012026598 +0100
@@ -1 +1 @@
-From 3d0c16f256a234ed04f6a11fd6635c8780f669f7 Mon Sep 17 00:00:00 2001
+From 7a535c0c0633922a7f0873a000cd10d033a37187 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3d0c16f256a234ed04f6a11fd6635c8780f669f7 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index f3217ae577..537dc9fe35 100644
+index 49fbb5e18e..8049e9e32e 100644
@@ -22,17 +23,18 @@
-@@ -192,6 +192,7 @@ fast_tests = [
-         ['fib_autotest', true, true],
-         ['fib6_autotest', true, true],
-         ['func_reentrancy_autotest', false, true],
-+        ['graph_autotest', true, true],
-         ['hash_autotest', true, true],
-         ['interrupt_autotest', true, true],
-         ['ipfrag_autotest', false, true],
-@@ -208,6 +209,7 @@ fast_tests = [
-         ['memzone_autotest', false, true],
-         ['meter_autotest', true, true],
-         ['multiprocess_autotest', false, false],
-+        ['node_list_dump', true, true],
-         ['per_lcore_autotest', true, true],
-         ['pflock_autotest', true, true],
-         ['prefetch_autotest', true, true],
-@@ -298,6 +300,7 @@ perf_test_names = [
+@@ -210,6 +210,7 @@ fast_tests = [
+         ['fib6_autotest', true],
+         ['func_reentrancy_autotest', false],
+         ['flow_classify_autotest', false],
++        ['graph_autotest', true],
+         ['hash_autotest', true],
+         ['interrupt_autotest', true],
+         ['ipfrag_autotest', false],
+@@ -226,6 +227,7 @@ fast_tests = [
+         ['memzone_autotest', false],
+         ['meter_autotest', true],
+         ['multiprocess_autotest', false],
++        ['node_list_dump', true],
+         ['per_lcore_autotest', true],
+         ['prefetch_autotest', true],
+         ['rcu_qsbr_autotest', true],
+@@ -303,6 +305,7 @@ perf_test_names = [
+         'hash_readwrite_lf_perf_autotest',
@@ -40,2 +42 @@
-         'ipsec_perf_autotest',
-         'thash_perf_autotest',
+ 	'ipsec_perf_autotest',

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'mbuf: fix Doxygen comment of distributor metadata' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
  2023-06-28 14:10     ` patch 'test: add graph tests' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'crypto/openssl: skip workaround at compilation time' " luca.boccassi
                       ` (18 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4a8c06d74f1e8592d04334a3a15f870329cbcc13 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 15 Jun 2023 15:49:42 +0200
Subject: [PATCH] mbuf: fix Doxygen comment of distributor metadata

[ upstream commit b3a160230bc0750cc522f456d11aced01d2e9b20 ]

/**< is for post annotations.

Fixes: 839b20be0e9b ("ethdev: support metadata as flow rule criteria")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_mbuf/rte_mbuf_core.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h
index b23764d102..9a0477975d 100644
--- a/lib/librte_mbuf/rte_mbuf_core.h
+++ b/lib/librte_mbuf/rte_mbuf_core.h
@@ -582,8 +582,8 @@ struct rte_mbuf {
 				 * @see rte_event_eth_tx_adapter_txq_set()
 				 */
 			} txadapter; /**< Eventdev ethdev Tx adapter */
-			/**< User defined tags. See rte_distributor_process() */
 			uint32_t usr;
+			/**< User defined tags. See rte_distributor_process() */
 		} hash;                   /**< hash information */
 	};
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.198070528 +0100
+++ 0003-mbuf-fix-Doxygen-comment-of-distributor-metadata.patch	2023-06-28 11:40:08.016026681 +0100
@@ -1 +1 @@
-From b3a160230bc0750cc522f456d11aced01d2e9b20 Mon Sep 17 00:00:00 2001
+From 4a8c06d74f1e8592d04334a3a15f870329cbcc13 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b3a160230bc0750cc522f456d11aced01d2e9b20 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -14 +15 @@
- lib/mbuf/rte_mbuf_core.h | 2 +-
+ lib/librte_mbuf/rte_mbuf_core.h | 2 +-
@@ -17,5 +18,5 @@
-diff --git a/lib/mbuf/rte_mbuf_core.h b/lib/mbuf/rte_mbuf_core.h
-index c692c33ec4..2030b3bef9 100644
---- a/lib/mbuf/rte_mbuf_core.h
-+++ b/lib/mbuf/rte_mbuf_core.h
-@@ -584,8 +584,8 @@ struct rte_mbuf {
+diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h
+index b23764d102..9a0477975d 100644
+--- a/lib/librte_mbuf/rte_mbuf_core.h
++++ b/lib/librte_mbuf/rte_mbuf_core.h
+@@ -582,8 +582,8 @@ struct rte_mbuf {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'crypto/openssl: skip workaround at compilation time' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
  2023-06-28 14:10     ` patch 'test: add graph tests' " luca.boccassi
  2023-06-28 14:10     ` patch 'mbuf: fix Doxygen comment of distributor metadata' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'ethdev: update documentation for API to set FEC' " luca.boccassi
                       ` (17 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Didier Pallard; +Cc: Kai Ji, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 002685408d2231b30b1144a7f6506407c23c7fdb Mon Sep 17 00:00:00 2001
From: Didier Pallard <didier.pallard@6wind.com>
Date: Tue, 18 Apr 2023 16:56:19 +0200
Subject: [PATCH] crypto/openssl: skip workaround at compilation time

[ upstream commit 5b94ac1965620e945a3b8fcff84fab4fcb2ef801 ]

This workaround was needed before version 1.0.1f.
Do not build it for versions >= 1.1.

Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library")

Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Kai Ji <kai.ji@intel.com>
---
 drivers/crypto/openssl/rte_openssl_pmd.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 786c87baed..089d879a5e 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1061,8 +1061,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
 		int srclen, uint8_t *aad, int aadlen, uint8_t *iv,
 		uint8_t *dst, uint8_t *tag, EVP_CIPHER_CTX *ctx)
 {
-	int len = 0, unused = 0;
+	int len = 0;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+	int unused = 0;
 	uint8_t empty[] = {};
+#endif
 
 	if (EVP_EncryptInit_ex(ctx, NULL, NULL, NULL, iv) <= 0)
 		goto process_auth_encryption_gcm_err;
@@ -1076,9 +1079,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
 				srclen, ctx, 0))
 			goto process_auth_encryption_gcm_err;
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
 	/* Workaround open ssl bug in version less then 1.0.1f */
 	if (EVP_EncryptUpdate(ctx, empty, &unused, empty, 0) <= 0)
 		goto process_auth_encryption_gcm_err;
+#endif
 
 	if (EVP_EncryptFinal_ex(ctx, dst, &len) <= 0)
 		goto process_auth_encryption_gcm_err;
@@ -1140,8 +1145,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,
 		int srclen, uint8_t *aad, int aadlen, uint8_t *iv,
 		uint8_t *dst, uint8_t *tag, EVP_CIPHER_CTX *ctx)
 {
-	int len = 0, unused = 0;
+	int len = 0;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+	int unused = 0;
 	uint8_t empty[] = {};
+#endif
 
 	if (EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, 16, tag) <= 0)
 		goto process_auth_decryption_gcm_err;
@@ -1158,9 +1166,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,
 				srclen, ctx, 0))
 			goto process_auth_decryption_gcm_err;
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
 	/* Workaround open ssl bug in version less then 1.0.1f */
 	if (EVP_DecryptUpdate(ctx, empty, &unused, empty, 0) <= 0)
 		goto process_auth_decryption_gcm_err;
+#endif
 
 	if (EVP_DecryptFinal_ex(ctx, dst, &len) <= 0)
 		return -EFAULT;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.240346384 +0100
+++ 0004-crypto-openssl-skip-workaround-at-compilation-time.patch	2023-06-28 11:40:08.020026763 +0100
@@ -1 +1 @@
-From 5b94ac1965620e945a3b8fcff84fab4fcb2ef801 Mon Sep 17 00:00:00 2001
+From 002685408d2231b30b1144a7f6506407c23c7fdb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5b94ac1965620e945a3b8fcff84fab4fcb2ef801 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 9b83811d67..4569c5e62f 100644
+index 786c87baed..089d879a5e 100644
@@ -22 +23 @@
-@@ -1196,8 +1196,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
+@@ -1061,8 +1061,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
@@ -35 +36 @@
-@@ -1211,9 +1214,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
+@@ -1076,9 +1079,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf *mbuf_src, int offset,
@@ -47 +48 @@
-@@ -1275,8 +1280,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,
+@@ -1140,8 +1145,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,
@@ -60 +61 @@
-@@ -1293,9 +1301,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,
+@@ -1158,9 +1166,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf *mbuf_src, int offset,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ethdev: update documentation for API to set FEC' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (2 preceding siblings ...)
  2023-06-28 14:10     ` patch 'crypto/openssl: skip workaround at compilation time' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'ethdev: check that at least one FEC mode is specified' " luca.boccassi
                       ` (16 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Denis Pryazhennikov
  Cc: Ivan Malov, Viacheslav Galaktionov, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From a6ffd39801701b8e5e1ce5b6d0be8dd9bfd8242b Mon Sep 17 00:00:00 2001
From: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Date: Mon, 8 May 2023 15:47:05 +0400
Subject: [PATCH] ethdev: update documentation for API to set FEC

[ upstream commit 6af24dc3794059373c2131ae776d55ac78724ffa ]

The documentation for the rte_eth_fec_set() is updated
to provide more detailed information about how FEC modes are
handled. It also includes a description of the case when only
the AUTO bit is set.

Fixes: b7ccfb09da95 ("ethdev: introduce FEC API")

Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Acked-by: Ivan Malov <ivan.malov@arknetworks.am>
Acked-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_ethdev.h | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 709563215f..7b7f440fba 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3736,10 +3736,13 @@ int rte_eth_fec_get(uint16_t port_id, uint32_t *fec_capa);
  * @param port_id
  *   The port identifier of the Ethernet device.
  * @param fec_capa
- *   A bitmask of allowed FEC modes. If AUTO bit is set, other
- *   bits specify FEC modes which may be negotiated. If AUTO
- *   bit is clear, specify FEC modes to be used (only one valid
- *   mode per speed may be set).
+ *   A bitmask of allowed FEC modes.
+ *   If only the AUTO bit is set, the decision on which FEC
+ *   mode to use will be made by HW/FW or driver.
+ *   If the AUTO bit is set with some FEC modes, only specified
+ *   FEC modes can be set.
+ *   If AUTO bit is clear, specify FEC mode to be used
+ *   (only one valid mode per speed may be set).
  * @return
  *   - (0) if successful.
  *   - (-EINVAL) if the FEC mode is not valid.
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.282057118 +0100
+++ 0005-ethdev-update-documentation-for-API-to-set-FEC.patch	2023-06-28 11:40:08.032027010 +0100
@@ -1 +1 @@
-From 6af24dc3794059373c2131ae776d55ac78724ffa Mon Sep 17 00:00:00 2001
+From a6ffd39801701b8e5e1ce5b6d0be8dd9bfd8242b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6af24dc3794059373c2131ae776d55ac78724ffa ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
- lib/ethdev/rte_ethdev.h | 11 +++++++----
+ lib/librte_ethdev/rte_ethdev.h | 11 +++++++----
@@ -22,5 +23,5 @@
-diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
-index 34ca25bbc0..2f8350a268 100644
---- a/lib/ethdev/rte_ethdev.h
-+++ b/lib/ethdev/rte_ethdev.h
-@@ -4266,10 +4266,13 @@ int rte_eth_fec_get(uint16_t port_id, uint32_t *fec_capa);
+diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
+index 709563215f..7b7f440fba 100644
+--- a/lib/librte_ethdev/rte_ethdev.h
++++ b/lib/librte_ethdev/rte_ethdev.h
+@@ -3736,10 +3736,13 @@ int rte_eth_fec_get(uint16_t port_id, uint32_t *fec_capa);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ethdev: check that at least one FEC mode is specified' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (3 preceding siblings ...)
  2023-06-28 14:10     ` patch 'ethdev: update documentation for API to set FEC' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'ethdev: update documentation for API to get FEC' " luca.boccassi
                       ` (15 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Denis Pryazhennikov
  Cc: Ivan Malov, Viacheslav Galaktionov, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 1aa63dfaebea46a6f8396a4831415acd89fdf23c Mon Sep 17 00:00:00 2001
From: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Date: Mon, 8 May 2023 15:47:06 +0400
Subject: [PATCH] ethdev: check that at least one FEC mode is specified

[ upstream commit 9fdcf2be070dcd5ea3d845ce798c298c5dfbaa4a ]

The behaviour is undefined in the rte_eth_fec_set() function
when the fec_capa parameter is equal to zero.
Add a check to handle this case.

Fixes: b7ccfb09da95 ("ethdev: introduce FEC API")

Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Acked-by: Ivan Malov <ivan.malov@arknetworks.am>
Acked-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index b5c5af3cf5..c0ffa58895 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -4032,6 +4032,12 @@ rte_eth_fec_set(uint16_t port_id, uint32_t fec_capa)
 
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
 	dev = &rte_eth_devices[port_id];
+
+	if (fec_capa == 0) {
+		RTE_ETHDEV_LOG(ERR, "At least one FEC mode should be specified\n");
+		return -EINVAL;
+	}
+
 	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fec_set, -ENOTSUP);
 	return eth_err(port_id, (*dev->dev_ops->fec_set)(dev, fec_capa));
 }
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.327287406 +0100
+++ 0006-ethdev-check-that-at-least-one-FEC-mode-is-specified.patch	2023-06-28 11:40:08.036027093 +0100
@@ -1 +1 @@
-From 9fdcf2be070dcd5ea3d845ce798c298c5dfbaa4a Mon Sep 17 00:00:00 2001
+From 1aa63dfaebea46a6f8396a4831415acd89fdf23c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9fdcf2be070dcd5ea3d845ce798c298c5dfbaa4a ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- lib/ethdev/rte_ethdev.c | 5 +++++
- 1 file changed, 5 insertions(+)
+ lib/librte_ethdev/rte_ethdev.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
@@ -21,5 +22,6 @@
-diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
-index 731423ef03..1e024802ae 100644
---- a/lib/ethdev/rte_ethdev.c
-+++ b/lib/ethdev/rte_ethdev.c
-@@ -4828,6 +4828,11 @@ rte_eth_fec_set(uint16_t port_id, uint32_t fec_capa)
+diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
+index b5c5af3cf5..c0ffa58895 100644
+--- a/lib/librte_ethdev/rte_ethdev.c
++++ b/lib/librte_ethdev/rte_ethdev.c
+@@ -4032,6 +4032,12 @@ rte_eth_fec_set(uint16_t port_id, uint32_t fec_capa)
+ 
@@ -28 +30 @@
- 
++
@@ -34,3 +36,3 @@
- 	if (*dev->dev_ops->fec_set == NULL)
- 		return -ENOTSUP;
- 	ret = eth_err(port_id, (*dev->dev_ops->fec_set)(dev, fec_capa));
+ 	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->fec_set, -ENOTSUP);
+ 	return eth_err(port_id, (*dev->dev_ops->fec_set)(dev, fec_capa));
+ }

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ethdev: update documentation for API to get FEC' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (4 preceding siblings ...)
  2023-06-28 14:10     ` patch 'ethdev: check that at least one FEC mode is specified' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/bonding: fix startup when NUMA is not supported' " luca.boccassi
                       ` (14 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Denis Pryazhennikov; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 250c16f0448c922b69adbb46e6086d51471351d3 Mon Sep 17 00:00:00 2001
From: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Date: Mon, 8 May 2023 15:47:07 +0400
Subject: [PATCH] ethdev: update documentation for API to get FEC

[ upstream commit 9e5c9e1868c062780d69d0529f0a447b4092d1e9 ]

The documentation for the rte_eth_fec_get() is updated
to clarify the description for the fec_capa parameter.
The previous description implied that more than one FEC
mode can be obtained.

Fixes: b7ccfb09da95 ("ethdev: introduce FEC API")

Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_ethdev.h | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 7b7f440fba..4ea5ad445a 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3713,10 +3713,7 @@ int rte_eth_fec_get_capability(uint16_t port_id,
  * @param port_id
  *   The port identifier of the Ethernet device.
  * @param fec_capa
- *   A bitmask of enabled FEC modes. If AUTO bit is set, other
- *   bits specify FEC modes which may be negotiated. If AUTO
- *   bit is clear, specify FEC modes to be used (only one valid
- *   mode per speed may be set).
+ *   A bitmask with the current FEC mode.
  * @return
  *   - (0) if successful.
  *   - (-ENOTSUP) if underlying hardware OR driver doesn't support.
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.370668603 +0100
+++ 0007-ethdev-update-documentation-for-API-to-get-FEC.patch	2023-06-28 11:40:08.044027258 +0100
@@ -1 +1 @@
-From 9e5c9e1868c062780d69d0529f0a447b4092d1e9 Mon Sep 17 00:00:00 2001
+From 250c16f0448c922b69adbb46e6086d51471351d3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9e5c9e1868c062780d69d0529f0a447b4092d1e9 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- lib/ethdev/rte_ethdev.h | 5 +----
+ lib/librte_ethdev/rte_ethdev.h | 5 +----
@@ -20,5 +21,5 @@
-diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
-index 2f8350a268..fcedf768cb 100644
---- a/lib/ethdev/rte_ethdev.h
-+++ b/lib/ethdev/rte_ethdev.h
-@@ -4243,10 +4243,7 @@ int rte_eth_fec_get_capability(uint16_t port_id,
+diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
+index 7b7f440fba..4ea5ad445a 100644
+--- a/lib/librte_ethdev/rte_ethdev.h
++++ b/lib/librte_ethdev/rte_ethdev.h
+@@ -3713,10 +3713,7 @@ int rte_eth_fec_get_capability(uint16_t port_id,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/bonding: fix startup when NUMA is not supported' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (5 preceding siblings ...)
  2023-06-28 14:10     ` patch 'ethdev: update documentation for API to get FEC' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/bonding: fix destroy dedicated queues flow' " luca.boccassi
                       ` (13 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Zerun Fu; +Cc: Peng Zhang, Chaoyong He, Long Wu, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From c012d925d9e5e581cb1a8a7bd8c622c4fcdca79d Mon Sep 17 00:00:00 2001
From: Zerun Fu <zerun.fu@corigine.com>
Date: Fri, 16 Jun 2023 15:20:34 +0800
Subject: [PATCH] net/bonding: fix startup when NUMA is not supported

[ upstream commit 85e6be63dfa8bff9c42ab0b4dea6fcbba7d680b2 ]

After the mainline Linux kernel commit
"fe205d984e7730f4d21f6f8ebc60f0698404ac31" (ACPI: Remove side effect
of partly creating a node in acpi_map_pxm_to_online_node) by
Jonathan Cameron. When the system does not support NUMA architecture,
the "socket_id" is expected to be -1. The valid "socket_id" in
BOND PMD is greater than or equal to zero. So it will cause an error
when DPDK checks the validity of the "socket_id" when starting the
bond. This commit can fix this bug.

Fixes: f294e04851fd ("net/bonding: fix socket ID check")

Signed-off-by: Zerun Fu <zerun.fu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_args.c | 6 ++++++
 drivers/net/bonding/rte_eth_bond_pmd.c  | 6 +++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
index 764b1b8c8e..1b27e0f779 100644
--- a/drivers/net/bonding/rte_eth_bond_args.c
+++ b/drivers/net/bonding/rte_eth_bond_args.c
@@ -211,6 +211,12 @@ bond_ethdev_parse_socket_id_kvarg(const char *key __rte_unused,
 	if (*endptr != 0 || errno != 0)
 		return -1;
 
+	/* SOCKET_ID_ANY also consider a valid socket id */
+	if ((int8_t)socket_id == SOCKET_ID_ANY) {
+		*(int *)extra_args = SOCKET_ID_ANY;
+		return 0;
+	}
+
 	/* validate socket id value */
 	if (socket_id >= 0 && socket_id < RTE_MAX_NUMA_NODES) {
 		*(int *)extra_args = (int)socket_id;
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 164a1d1575..3dcdae72b6 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3306,7 +3306,7 @@ static int
 bond_alloc(struct rte_vdev_device *dev, uint8_t mode)
 {
 	const char *name = rte_vdev_device_name(dev);
-	uint8_t socket_id = dev->device.numa_node;
+	int socket_id = dev->device.numa_node;
 	struct bond_dev_private *internals = NULL;
 	struct rte_eth_dev *eth_dev = NULL;
 	uint32_t vlan_filter_bmp_size;
@@ -3506,7 +3506,7 @@ bond_probe(struct rte_vdev_device *dev)
 	port_id = bond_alloc(dev, bonding_mode);
 	if (port_id < 0) {
 		RTE_BOND_LOG(ERR, "Failed to create socket %s in mode %u on "
-				"socket %u.",	name, bonding_mode, socket_id);
+				"socket %d.",	name, bonding_mode, socket_id);
 		goto parse_error;
 	}
 	internals = rte_eth_devices[port_id].data->dev_private;
@@ -3531,7 +3531,7 @@ bond_probe(struct rte_vdev_device *dev)
 
 	rte_eth_dev_probing_finish(&rte_eth_devices[port_id]);
 	RTE_BOND_LOG(INFO, "Create bonded device %s on port %d in mode %u on "
-			"socket %u.",	name, port_id, bonding_mode, socket_id);
+			"socket %d.",	name, port_id, bonding_mode, socket_id);
 	return 0;
 
 parse_error:
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.414268209 +0100
+++ 0008-net-bonding-fix-startup-when-NUMA-is-not-supported.patch	2023-06-28 11:40:08.048027340 +0100
@@ -1 +1 @@
-From 85e6be63dfa8bff9c42ab0b4dea6fcbba7d680b2 Mon Sep 17 00:00:00 2001
+From c012d925d9e5e581cb1a8a7bd8c622c4fcdca79d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 85e6be63dfa8bff9c42ab0b4dea6fcbba7d680b2 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 6553166f5c..c137efd55f 100644
+index 764b1b8c8e..1b27e0f779 100644
@@ -32 +33 @@
-@@ -212,6 +212,12 @@ bond_ethdev_parse_socket_id_kvarg(const char *key __rte_unused,
+@@ -211,6 +211,12 @@ bond_ethdev_parse_socket_id_kvarg(const char *key __rte_unused,
@@ -46 +47 @@
-index f0c4f7d26b..73205f78f4 100644
+index 164a1d1575..3dcdae72b6 100644
@@ -49 +50 @@
-@@ -3604,7 +3604,7 @@ static int
+@@ -3306,7 +3306,7 @@ static int
@@ -58 +59 @@
-@@ -3806,7 +3806,7 @@ bond_probe(struct rte_vdev_device *dev)
+@@ -3506,7 +3506,7 @@ bond_probe(struct rte_vdev_device *dev)
@@ -67 +68 @@
-@@ -3831,7 +3831,7 @@ bond_probe(struct rte_vdev_device *dev)
+@@ -3531,7 +3531,7 @@ bond_probe(struct rte_vdev_device *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/bonding: fix destroy dedicated queues flow' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (6 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/bonding: fix startup when NUMA is not supported' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/txgbe/base: fix Tx with fiber hotplug' " luca.boccassi
                       ` (12 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Long Wu; +Cc: Niklas Söderlund, Chaoyong He, Min Hu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 789cc8dcb3de7e0bbec67b66040a9ddd7e0f5ca2 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Thu, 8 Jun 2023 10:59:03 +0800
Subject: [PATCH] net/bonding: fix destroy dedicated queues flow
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit f7755321f3294e94c1f1b9e645cc997a3e39f999 ]

Bonding port in mode 4 enables dedicated queues, we
will create a flow for this feature. So we need to
destroy this flow when we remove the member port.

Furthermore if we don't destroy the flow that created
for dedicated queues when we remove the member port,
maybe we couldn't add the member port to a new bonding
port that needed dedicated queues.

We add the destroy action in removing member port
function.

Fixes: 49dad9028e2a ("net/bonding: support flow API")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_api.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_api.c b/drivers/net/bonding/rte_eth_bond_api.c
index 7925f35882..73d1795ed3 100644
--- a/drivers/net/bonding/rte_eth_bond_api.c
+++ b/drivers/net/bonding/rte_eth_bond_api.c
@@ -703,6 +703,16 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,
 		}
 	}
 
+	/* Remove the dedicated queues flow */
+	if (internals->mode == BONDING_MODE_8023AD &&
+		internals->mode4.dedicated_queues.enabled == 1 &&
+		internals->mode4.dedicated_queues.flow[slave_port_id] != NULL) {
+		rte_flow_destroy(slave_port_id,
+				internals->mode4.dedicated_queues.flow[slave_port_id],
+				&flow_error);
+		internals->mode4.dedicated_queues.flow[slave_port_id] = NULL;
+	}
+
 	slave_eth_dev = &rte_eth_devices[slave_port_id];
 	slave_remove(internals, slave_eth_dev);
 	slave_eth_dev->data->dev_flags &= (~RTE_ETH_DEV_BONDED_SLAVE);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.456947624 +0100
+++ 0009-net-bonding-fix-destroy-dedicated-queues-flow.patch	2023-06-28 11:40:08.048027340 +0100
@@ -1 +1 @@
-From f7755321f3294e94c1f1b9e645cc997a3e39f999 Mon Sep 17 00:00:00 2001
+From 789cc8dcb3de7e0bbec67b66040a9ddd7e0f5ca2 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit f7755321f3294e94c1f1b9e645cc997a3e39f999 ]
+
@@ -22 +23,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index c0178369b4..85d0528b7c 100644
+index 7925f35882..73d1795ed3 100644
@@ -36 +37 @@
-@@ -712,6 +712,16 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,
+@@ -703,6 +703,16 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/txgbe/base: fix Tx with fiber hotplug' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (7 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/bonding: fix destroy dedicated queues flow' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/txgbe: fix to set autoneg for 1G speed' " luca.boccassi
                       ` (11 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 46919634904dc7c45fd623b66a6ad704d799698e Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 14 Jun 2023 10:34:21 +0800
Subject: [PATCH] net/txgbe/base: fix Tx with fiber hotplug

[ upstream commit 196e412b80afe165ca78457d5f9bb1a5bace28ea ]

Under heavy traffic, unplugging and plugging fiber optic cables may cause
Tx failure. The reason is that there is still traffic passing through at
PCS VR reset, during txgbe_set_link_to_*. So totally disable Rx and Tx
before PCS VR reset to fix it.

Fixes: 01c3cf5c85a7 ("net/txgbe: add autoneg control read and write")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_phy.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c
index 73f3cdced1..01bd5a72f1 100644
--- a/drivers/net/txgbe/base/txgbe_phy.c
+++ b/drivers/net/txgbe/base/txgbe_phy.c
@@ -1454,8 +1454,9 @@ txgbe_set_link_to_kx4(struct txgbe_hw *hw, bool autoneg)
 		goto out;
 	}
 
-	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE,
-			~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE, ~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACRXCFG, TXGBE_MACRXCFG_ENA, ~TXGBE_MACRXCFG_ENA);
+	hw->mac.disable_sec_tx_path(hw);
 
 	/* 2. Disable xpcs AN-73 */
 	if (!autoneg)
@@ -1654,8 +1655,9 @@ txgbe_set_link_to_kx(struct txgbe_hw *hw,
 		goto out;
 	}
 
-	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE,
-				~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE, ~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACRXCFG, TXGBE_MACRXCFG_ENA, ~TXGBE_MACRXCFG_ENA);
+	hw->mac.disable_sec_tx_path(hw);
 
 	/* 2. Disable xpcs AN-73 */
 	if (!autoneg)
@@ -1849,8 +1851,9 @@ txgbe_set_link_to_sfi(struct txgbe_hw *hw,
 		goto out;
 	}
 
-	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE,
-			~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_TXE, ~TXGBE_MACTXCFG_TXE);
+	wr32m(hw, TXGBE_MACRXCFG, TXGBE_MACRXCFG_ENA, ~TXGBE_MACRXCFG_ENA);
+	hw->mac.disable_sec_tx_path(hw);
 
 	/* 2. Disable xpcs AN-73 */
 	wr32_epcs(hw, SR_AN_CTRL, 0x0);
@@ -2189,6 +2192,8 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
 		txgbe_set_link_to_sfi(hw, speed);
 	}
 
+	hw->mac.enable_sec_tx_path(hw);
+
 	if (speed == TXGBE_LINK_SPEED_10GB_FULL)
 		mactxcfg = TXGBE_MACTXCFG_SPEED_10G;
 	else if (speed == TXGBE_LINK_SPEED_1GB_FULL)
@@ -2196,5 +2201,6 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
 
 	/* enable mac transmitter */
 	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_SPEED_MASK, mactxcfg);
+	wr32m(hw, TXGBE_MACRXCFG, TXGBE_MACRXCFG_ENA, TXGBE_MACRXCFG_ENA);
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.496004188 +0100
+++ 0010-net-txgbe-base-fix-Tx-with-fiber-hotplug.patch	2023-06-28 11:40:08.052027423 +0100
@@ -1 +1 @@
-From 196e412b80afe165ca78457d5f9bb1a5bace28ea Mon Sep 17 00:00:00 2001
+From 46919634904dc7c45fd623b66a6ad704d799698e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 196e412b80afe165ca78457d5f9bb1a5bace28ea ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index f4cadcc510..1eb45b068a 100644
+index 73f3cdced1..01bd5a72f1 100644
@@ -23 +24 @@
-@@ -1541,8 +1541,9 @@ txgbe_set_link_to_kx4(struct txgbe_hw *hw, bool autoneg)
+@@ -1454,8 +1454,9 @@ txgbe_set_link_to_kx4(struct txgbe_hw *hw, bool autoneg)
@@ -35 +36 @@
-@@ -1756,8 +1757,9 @@ txgbe_set_link_to_kx(struct txgbe_hw *hw,
+@@ -1654,8 +1655,9 @@ txgbe_set_link_to_kx(struct txgbe_hw *hw,
@@ -47 +48 @@
-@@ -1963,8 +1965,9 @@ txgbe_set_link_to_sfi(struct txgbe_hw *hw,
+@@ -1849,8 +1851,9 @@ txgbe_set_link_to_sfi(struct txgbe_hw *hw,
@@ -59,2 +60,2 @@
-@@ -2315,6 +2318,8 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
- 			txgbe_set_sgmii_an37_ability(hw);
+@@ -2189,6 +2192,8 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
+ 		txgbe_set_link_to_sfi(hw, speed);
@@ -68,4 +69,4 @@
-@@ -2324,6 +2329,7 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
- 	wr32m(hw, TXGBE_MACTXCFG,
- 		TXGBE_MACTXCFG_SPEED_MASK | TXGBE_MACTXCFG_TXE,
- 		mactxcfg | TXGBE_MACTXCFG_TXE);
+@@ -2196,5 +2201,6 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc)
+ 
+ 	/* enable mac transmitter */
+ 	wr32m(hw, TXGBE_MACTXCFG, TXGBE_MACTXCFG_SPEED_MASK, mactxcfg);
@@ -75 +75,0 @@
- void txgbe_bp_down_event(struct txgbe_hw *hw)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/txgbe: fix to set autoneg for 1G speed' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (8 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/txgbe/base: fix Tx with fiber hotplug' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/txgbe: fix extended statistics' " luca.boccassi
                       ` (10 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 99826547c868ab79b3fbdf8ca7b2bda428d4c28d Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 14 Jun 2023 10:34:24 +0800
Subject: [PATCH] net/txgbe: fix to set autoneg for 1G speed

[ upstream commit 658dbfa6360fcda0a5798669f6eac8293e4a2d73 ]

Autoneg was always on for 1G speed, fix to set autoneg off.

Fixes: 01c3cf5c85a7 ("net/txgbe: add autoneg control read and write")
Fixes: e4c515a7bc7e ("net/txgbe: add multi-speed link setup")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_hw.c   | 14 ++++++++++++++
 drivers/net/txgbe/base/txgbe_phy.c  |  4 +++-
 drivers/net/txgbe/base/txgbe_type.h |  1 +
 drivers/net/txgbe/txgbe_ethdev.c    |  2 ++
 4 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/net/txgbe/base/txgbe_hw.c b/drivers/net/txgbe/base/txgbe_hw.c
index e6ffbd900e..4768c2aa25 100644
--- a/drivers/net/txgbe/base/txgbe_hw.c
+++ b/drivers/net/txgbe/base/txgbe_hw.c
@@ -2321,10 +2321,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw,
 	}
 
 	if (speed & TXGBE_LINK_SPEED_1GB_FULL) {
+		u32 curr_autoneg;
+
 		speedcnt++;
 		if (highest_link_speed == TXGBE_LINK_SPEED_UNKNOWN)
 			highest_link_speed = TXGBE_LINK_SPEED_1GB_FULL;
 
+		status = hw->mac.check_link(hw, &link_speed, &link_up, false);
+		if (status != 0)
+			return status;
+
+		/* If we already have link at this speed, just jump out */
+		if (link_speed == TXGBE_LINK_SPEED_1GB_FULL) {
+			curr_autoneg = rd32_epcs(hw, SR_MII_MMD_CTL);
+			if (link_up && (hw->autoneg ==
+					!!(curr_autoneg & SR_MII_MMD_CTL_AN_EN)))
+				goto out;
+		}
+
 		/* Set the module link speed */
 		switch (hw->phy.media_type) {
 		case txgbe_media_type_fiber:
diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c
index 01bd5a72f1..b25db92a4e 100644
--- a/drivers/net/txgbe/base/txgbe_phy.c
+++ b/drivers/net/txgbe/base/txgbe_phy.c
@@ -1347,7 +1347,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw)
 	wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105);
 	wr32_epcs(hw, SR_MII_MMD_DIGI_CTL, 0x0200);
 	value = rd32_epcs(hw, SR_MII_MMD_CTL);
-	value = (value & ~0x1200) | (0x1 << 12) | (0x1 << 9);
+	value = (value & ~0x1200) | (0x1 << 9);
+	if (hw->autoneg)
+		value |= SR_MII_MMD_CTL_AN_EN;
 	wr32_epcs(hw, SR_MII_MMD_CTL, value);
 	return 0;
 }
diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h
index e17f40b978..27f04082b2 100644
--- a/drivers/net/txgbe/base/txgbe_type.h
+++ b/drivers/net/txgbe/base/txgbe_type.h
@@ -670,6 +670,7 @@ struct txgbe_hw {
 	bool adapter_stopped;
 	bool allow_unsupported_sfp;
 	bool need_crosstalk_fix;
+	bool autoneg;
 
 	uint64_t isb_dma;
 	void IOMEM *isb_mem;
diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index a9797ff95b..a7f764b288 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1571,6 +1571,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
 		speed = (TXGBE_LINK_SPEED_100M_FULL |
 			 TXGBE_LINK_SPEED_1GB_FULL |
 			 TXGBE_LINK_SPEED_10GB_FULL);
+		hw->autoneg = true;
 	} else {
 		if (*link_speeds & ETH_LINK_SPEED_10G)
 			speed |= TXGBE_LINK_SPEED_10GB_FULL;
@@ -1582,6 +1583,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
 			speed |= TXGBE_LINK_SPEED_1GB_FULL;
 		if (*link_speeds & ETH_LINK_SPEED_100M)
 			speed |= TXGBE_LINK_SPEED_100M_FULL;
+		hw->autoneg = false;
 	}
 
 	err = hw->mac.setup_link(hw, speed, link_up);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.536611966 +0100
+++ 0011-net-txgbe-fix-to-set-autoneg-for-1G-speed.patch	2023-06-28 11:40:08.060027588 +0100
@@ -1 +1 @@
-From 658dbfa6360fcda0a5798669f6eac8293e4a2d73 Mon Sep 17 00:00:00 2001
+From 99826547c868ab79b3fbdf8ca7b2bda428d4c28d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 658dbfa6360fcda0a5798669f6eac8293e4a2d73 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 2952c408fd..d19fd0065d 100644
+index e6ffbd900e..4768c2aa25 100644
@@ -24 +25 @@
-@@ -2273,10 +2273,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw,
+@@ -2321,10 +2321,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw,
@@ -50 +51 @@
-index 1eb45b068a..d87af656d5 100644
+index 01bd5a72f1..b25db92a4e 100644
@@ -53,2 +54,2 @@
-@@ -1402,7 +1402,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw)
- 		wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105);
+@@ -1347,7 +1347,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw)
+ 	wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105);
@@ -61,0 +63 @@
+ 	return 0;
@@ -63 +64,0 @@
- 
@@ -65 +66 @@
-index c3486b472f..75e839b7de 100644
+index e17f40b978..27f04082b2 100644
@@ -68 +69,2 @@
-@@ -783,6 +783,7 @@ struct txgbe_hw {
+@@ -670,6 +670,7 @@ struct txgbe_hw {
+ 	bool adapter_stopped;
@@ -71 +72,0 @@
- 	bool dev_start;
@@ -73 +73,0 @@
- 	struct txgbe_devargs devarg;
@@ -75,0 +76 @@
+ 	void IOMEM *isb_mem;
@@ -77 +78 @@
-index 36c74d353d..962667acdc 100644
+index a9797ff95b..a7f764b288 100644
@@ -80 +81 @@
-@@ -1821,6 +1821,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
+@@ -1571,6 +1571,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
@@ -86 +87 @@
- 		if (*link_speeds & RTE_ETH_LINK_SPEED_10G)
+ 		if (*link_speeds & ETH_LINK_SPEED_10G)
@@ -88 +89 @@
-@@ -1832,6 +1833,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
+@@ -1582,6 +1583,7 @@ txgbe_dev_start(struct rte_eth_dev *dev)
@@ -90 +91 @@
- 		if (*link_speeds & RTE_ETH_LINK_SPEED_100M)
+ 		if (*link_speeds & ETH_LINK_SPEED_100M)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/txgbe: fix extended statistics' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (9 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/txgbe: fix to set autoneg for 1G speed' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/nfp: fix address always related with PF ID 0' " luca.boccassi
                       ` (9 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 78a7c75ac1c2e23569c021da7122677225e9bde5 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 14 Jun 2023 10:34:25 +0800
Subject: [PATCH] net/txgbe: fix extended statistics

[ upstream commit 83f44a283a0bb4d5041161bcbaae5130cb1a8f87 ]

Fix to show tx_broadcast_packets and tx_multicast_packets counters.

Fixes: 91fe49c87d76 ("net/txgbe: support device xstats")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index a7f764b288..96d90d657d 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -169,7 +169,9 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = {
 	HW_XSTAT(tx_total_packets),
 	HW_XSTAT(rx_total_missed_packets),
 	HW_XSTAT(rx_broadcast_packets),
+	HW_XSTAT(tx_broadcast_packets),
 	HW_XSTAT(rx_multicast_packets),
+	HW_XSTAT(tx_multicast_packets),
 	HW_XSTAT(rx_management_packets),
 	HW_XSTAT(tx_management_packets),
 	HW_XSTAT(rx_management_dropped),
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.585308240 +0100
+++ 0012-net-txgbe-fix-extended-statistics.patch	2023-06-28 11:40:08.064027671 +0100
@@ -1 +1 @@
-From 83f44a283a0bb4d5041161bcbaae5130cb1a8f87 Mon Sep 17 00:00:00 2001
+From 78a7c75ac1c2e23569c021da7122677225e9bde5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 83f44a283a0bb4d5041161bcbaae5130cb1a8f87 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index 962667acdc..74765a469d 100644
+index a7f764b288..96d90d657d 100644
@@ -20 +21 @@
-@@ -180,7 +180,9 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = {
+@@ -169,7 +169,9 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/nfp: fix address always related with PF ID 0' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (10 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/txgbe: fix extended statistics' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'common/sfc_efx/base: fix Rx queue without RSS hash prefix' " luca.boccassi
                       ` (8 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Peng Zhang; +Cc: Chaoyong He, Long Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 2c720e48cb88e969e6ebaef5670aa61761031202 Mon Sep 17 00:00:00 2001
From: Peng Zhang <peng.zhang@corigine.com>
Date: Fri, 16 Jun 2023 16:57:23 +0800
Subject: [PATCH] net/nfp: fix address always related with PF ID 0

[ upstream commit 467370c93d73267c1d4417bff975cf812b878f48 ]

Now the PCIE configure bar address is always related with PF ID 0.
For the NIC with multiple PCI device, this will lead the host crash.
Fix this problem by make the PCIE configure bar address related with
the PF ID.

Fixes: c7e9729da6b5 ("net/nfp: support CPP")

Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
---
 drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c b/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
index 69f6b165da..36bd648a3c 100644
--- a/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
+++ b/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
@@ -66,8 +66,8 @@
 #define NFP_PCIE_P2C_GENERAL_TOKEN_OFFSET(bar, x) ((x) << ((bar)->bitsize - 4))
 #define NFP_PCIE_P2C_GENERAL_SIZE(bar)             (1 << ((bar)->bitsize - 4))
 
-#define NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(bar, slot) \
-	(NFP_PCIE_BAR(0) + ((bar) * 8 + (slot)) * 4)
+#define NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(id, bar, slot) \
+	(NFP_PCIE_BAR(id) + ((bar) * 8 + (slot)) * 4)
 
 #define NFP_PCIE_CPP_BAR_PCIETOCPPEXPBAR(bar, slot) \
 	(((bar) * 8 + (slot)) * 4)
@@ -114,6 +114,7 @@ struct nfp_pcie_user {
 	int secondary_lock;
 	char busdev[BUSDEV_SZ];
 	int barsz;
+	int dev_id;
 	char *cfg;
 };
 
@@ -255,7 +256,7 @@ nfp_bar_write(struct nfp_pcie_user *nfp, struct nfp_bar *bar,
 		return (-ENOMEM);
 
 	bar->csr = nfp->cfg +
-		   NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(base, slot);
+		   NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(nfp->dev_id, base, slot);
 
 	*(uint32_t *)(bar->csr) = newcfg;
 
@@ -325,10 +326,8 @@ nfp_enable_bars(struct nfp_pcie_user *nfp)
 		bar->base = 0;
 		bar->iomem = NULL;
 		bar->lock = 0;
-		bar->csr = nfp->cfg +
-			   NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(bar->index >> 3,
-							   bar->index & 7);
-
+		bar->csr = nfp->cfg + NFP_PCIE_CFG_BAR_PCIETOCPPEXPBAR(nfp->dev_id,
+				bar->index >> 3, bar->index & 7);
 		bar->iomem = nfp->cfg + (bar->index << bar->bitsize);
 	}
 	return 0;
@@ -843,6 +842,7 @@ nfp6000_init(struct nfp_cpp *cpp, struct rte_pci_device *dev)
 		goto error;
 
 	desc->cfg = (char *)dev->mem_resource[0].addr;
+	desc->dev_id = dev->addr.function & 0x7;
 
 	nfp_enable_bars(desc);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.627559036 +0100
+++ 0013-net-nfp-fix-address-always-related-with-PF-ID-0.patch	2023-06-28 11:40:08.064027671 +0100
@@ -1 +1 @@
-From 467370c93d73267c1d4417bff975cf812b878f48 Mon Sep 17 00:00:00 2001
+From 2c720e48cb88e969e6ebaef5670aa61761031202 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 467370c93d73267c1d4417bff975cf812b878f48 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index e230c40051..658c618ee6 100644
+index 69f6b165da..36bd648a3c 100644
@@ -36,2 +37,2 @@
-@@ -116,6 +116,7 @@ struct nfp_pcie_user {
- 	int lock;
+@@ -114,6 +114,7 @@ struct nfp_pcie_user {
+ 	int secondary_lock;
@@ -44 +45 @@
-@@ -245,7 +246,7 @@ nfp_bar_write(struct nfp_pcie_user *nfp, struct nfp_bar *bar,
+@@ -255,7 +256,7 @@ nfp_bar_write(struct nfp_pcie_user *nfp, struct nfp_bar *bar,
@@ -53 +54 @@
-@@ -314,10 +315,8 @@ nfp_enable_bars(struct nfp_pcie_user *nfp)
+@@ -325,10 +326,8 @@ nfp_enable_bars(struct nfp_pcie_user *nfp)
@@ -66 +67 @@
-@@ -779,6 +778,7 @@ nfp6000_init(struct nfp_cpp *cpp, struct rte_pci_device *dev)
+@@ -843,6 +842,7 @@ nfp6000_init(struct nfp_cpp *cpp, struct rte_pci_device *dev)
@@ -69 +70 @@
- 	desc->cfg = dev->mem_resource[0].addr;
+ 	desc->cfg = (char *)dev->mem_resource[0].addr;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'common/sfc_efx/base: fix Rx queue without RSS hash prefix' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (11 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/nfp: fix address always related with PF ID 0' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/ice: fix tunnel packet Tx descriptor' " luca.boccassi
                       ` (7 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Artemii Morozov; +Cc: Andy Moreton, Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f0f0c2fb68dc6f47d5ae2f885e632badf411015a Mon Sep 17 00:00:00 2001
From: Artemii Morozov <artemii.morozov@arknetworks.am>
Date: Thu, 22 Jun 2023 16:31:36 +0400
Subject: [PATCH] common/sfc_efx/base: fix Rx queue without RSS hash prefix

[ upstream commit 80d18a958e4f06e121327073439c391dbc870d80 ]

If the prefix for the RSS hash was not chosen the ENOTSUP error should
be returned.

Before this patch success was returned for this case causing Rx queue
creation to fail.

Fixing return value to indicate failure.

Fixes: f784cdc5cbb1 ("common/sfc_efx/base: provide control to deliver RSS hash")

Signed-off-by: Artemii Morozov <artemii.morozov@arknetworks.am>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 drivers/common/sfc_efx/base/efx_rx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/common/sfc_efx/base/efx_rx.c b/drivers/common/sfc_efx/base/efx_rx.c
index 93a73703ed..1b1b42eedf 100644
--- a/drivers/common/sfc_efx/base/efx_rx.c
+++ b/drivers/common/sfc_efx/base/efx_rx.c
@@ -896,8 +896,10 @@ efx_rx_qcreate_internal(
 
 		rss_hash_field =
 		    &erplp->erpl_fields[EFX_RX_PREFIX_FIELD_RSS_HASH];
-		if (rss_hash_field->erpfi_width_bits == 0)
+		if (rss_hash_field->erpfi_width_bits == 0) {
+			rc = ENOTSUP;
 			goto fail5;
+		}
 	}
 
 	enp->en_rx_qcount++;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.668037959 +0100
+++ 0014-common-sfc_efx-base-fix-Rx-queue-without-RSS-hash-pr.patch	2023-06-28 11:40:08.068027752 +0100
@@ -1 +1 @@
-From 80d18a958e4f06e121327073439c391dbc870d80 Mon Sep 17 00:00:00 2001
+From f0f0c2fb68dc6f47d5ae2f885e632badf411015a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 80d18a958e4f06e121327073439c391dbc870d80 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 68f42f5cac..61726a9f0b 100644
+index 93a73703ed..1b1b42eedf 100644
@@ -28 +29 @@
-@@ -937,8 +937,10 @@ efx_rx_qcreate_internal(
+@@ -896,8 +896,10 @@ efx_rx_qcreate_internal(

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix tunnel packet Tx descriptor' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (12 preceding siblings ...)
  2023-06-28 14:10     ` patch 'common/sfc_efx/base: fix Rx queue without RSS hash prefix' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/ixgbe: add proper memory barriers in Rx' " luca.boccassi
                       ` (6 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Shiyang He; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 92fa658fa83583ed932032615251f92c298d34e6 Mon Sep 17 00:00:00 2001
From: Shiyang He <shiyangx.he@intel.com>
Date: Thu, 8 Jun 2023 10:19:04 +0000
Subject: [PATCH] net/ice: fix tunnel packet Tx descriptor

[ upstream commit c261e7de45d38ddc3b4b8909c35b448c5e1b0fcf ]

The TX descriptor of tunnel packet filled incorrectly due to the MACLEN
is not set.

This patch fixes this issue by setting MACLEN to correctly fill the
TX descriptor.

Fixes: bd70c451532c ("net/ice: support Tx checksum offload for tunnel")

Signed-off-by: Shiyang He <shiyangx.he@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 87cb7e8e8d..bd8811649a 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -2356,10 +2356,7 @@ ice_txd_enable_checksum(uint64_t ol_flags,
 			union ice_tx_offload tx_offload)
 {
 	/* Set MACLEN */
-	if (ol_flags & PKT_TX_TUNNEL_MASK)
-		*td_offset |= (tx_offload.outer_l2_len >> 1)
-			<< ICE_TX_DESC_LEN_MACLEN_S;
-	else
+	if (!(ol_flags & PKT_TX_TUNNEL_MASK))
 		*td_offset |= (tx_offload.l2_len >> 1)
 			<< ICE_TX_DESC_LEN_MACLEN_S;
 
@@ -2619,9 +2616,12 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
 		/* Fill in tunneling parameters if necessary */
 		cd_tunneling_params = 0;
-		if (ol_flags & PKT_TX_TUNNEL_MASK)
+		if (ol_flags & PKT_TX_TUNNEL_MASK) {
+			td_offset |= (tx_offload.outer_l2_len >> 1)
+				<< ICE_TX_DESC_LEN_MACLEN_S;
 			ice_parse_tunneling_params(ol_flags, tx_offload,
 						   &cd_tunneling_params);
+		}
 
 		/* Enable checksum offloading */
 		if (ol_flags & ICE_TX_CKSUM_OFFLOAD_MASK)
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.706811783 +0100
+++ 0015-net-ice-fix-tunnel-packet-Tx-descriptor.patch	2023-06-28 11:40:08.072027835 +0100
@@ -1 +1 @@
-From c261e7de45d38ddc3b4b8909c35b448c5e1b0fcf Mon Sep 17 00:00:00 2001
+From 92fa658fa83583ed932032615251f92c298d34e6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c261e7de45d38ddc3b4b8909c35b448c5e1b0fcf ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 665ae32c13..598edb29c9 100644
+index 87cb7e8e8d..bd8811649a 100644
@@ -25 +26 @@
-@@ -2746,10 +2746,7 @@ ice_txd_enable_checksum(uint64_t ol_flags,
+@@ -2356,10 +2356,7 @@ ice_txd_enable_checksum(uint64_t ol_flags,
@@ -29 +30 @@
--	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
+-	if (ol_flags & PKT_TX_TUNNEL_MASK)
@@ -33 +34 @@
-+	if (!(ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK))
++	if (!(ol_flags & PKT_TX_TUNNEL_MASK))
@@ -37 +38 @@
-@@ -3010,9 +3007,12 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -2619,9 +2616,12 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -41,2 +42,2 @@
--		if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
-+		if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
+-		if (ol_flags & PKT_TX_TUNNEL_MASK)
++		if (ol_flags & PKT_TX_TUNNEL_MASK) {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ixgbe: add proper memory barriers in Rx' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (13 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/ice: fix tunnel packet Tx descriptor' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/iavf: fix abnormal disable HW interrupt' " luca.boccassi
                       ` (5 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Min Zhou; +Cc: Ruifeng Wang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/30/23. 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/6fb5e74cd8bfd97db2188a452974c76ee574ccd3
the

Thanks.

Luca Boccassi

---
From 6fb5e74cd8bfd97db2188a452974c76ee574ccd3 Mon Sep 17 00:00:00 2001
From: Min Zhou <zhoumin@loongson.cn>
Date: Tue, 13 Jun 2023 17:44:25 +0800
Subject: [PATCH] net/ixgbe: add proper memory barriers in Rx

[ upstream commit 85e46c532bc76ebe07f6a397aa76211250aca59c ]

Segmentation fault has been observed while running the
ixgbe_recv_pkts_lro() function to receive packets on the Loongson 3C5000
processor which has 64 cores and 4 NUMA nodes.

From the ixgbe_recv_pkts_lro() function, we found that as long as the first
packet has the EOP bit set, and the length of this packet is less than or
equal to rxq->crc_len, the segmentation fault will definitely happen even
though on the other platforms. For example, if we made the first packet
which had the EOP bit set had a zero length by force, the segmentation
fault would happen on X86.

Because when processd the first packet the first_seg->next will be NULL, if
at the same time this packet has the EOP bit set and its length is less
than or equal to rxq->crc_len, the following loop will be executed:

    for (lp = first_seg; lp->next != rxm; lp = lp->next)
        ;

We know that the first_seg->next will be NULL under this condition. So the
expression of lp->next->next will cause the segmentation fault.

Normally, the length of the first packet with EOP bit set will be greater
than rxq->crc_len. However, the out-of-order execution of CPU may make the
read ordering of the status and the rest of the descriptor fields in this
function not be correct. The related codes are as following:

        rxdp = &rx_ring[rx_id];
 #1     staterr = rte_le_to_cpu_32(rxdp->wb.upper.status_error);

        if (!(staterr & IXGBE_RXDADV_STAT_DD))
            break;

 #2     rxd = *rxdp;

The sentence #2 may be executed before sentence #1. This action is likely
to make the ready packet zero length. If the packet is the first packet and
has the EOP bit set, the above segmentation fault will happen.

So, we should add a proper memory barrier to ensure the read ordering be
correct. We also did the same thing in the ixgbe_recv_pkts() function to
make the rxd data be valid even though we did not find segmentation fault
in this function.

Fixes: 8eecb3295aed ("ixgbe: add LRO support")

Signed-off-by: Min Zhou <zhoumin@loongson.cn>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 47 +++++++++++++++-------------------
 1 file changed, 21 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index ab3e70d27e..7414384493 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -1787,11 +1787,22 @@ ixgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 		 * of accesses cannot be reordered by the compiler. If they were
 		 * not volatile, they could be reordered which could lead to
 		 * using invalid descriptor fields when read from rxd.
+		 *
+		 * Meanwhile, to prevent the CPU from executing out of order, we
+		 * need to use a proper memory barrier to ensure the memory
+		 * ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rxdp->wb.upper.status_error;
 		if (!(staterr & rte_cpu_to_le_32(IXGBE_RXDADV_STAT_DD)))
 			break;
+
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		/*
@@ -2058,32 +2069,10 @@ ixgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
 
 next_desc:
 		/*
-		 * The code in this whole file uses the volatile pointer to
-		 * ensure the read ordering of the status and the rest of the
-		 * descriptor fields (on the compiler level only!!!). This is so
-		 * UGLY - why not to just use the compiler barrier instead? DPDK
-		 * even has the rte_compiler_barrier() for that.
-		 *
-		 * But most importantly this is just wrong because this doesn't
-		 * ensure memory ordering in a general case at all. For
-		 * instance, DPDK is supposed to work on Power CPUs where
-		 * compiler barrier may just not be enough!
-		 *
-		 * I tried to write only this function properly to have a
-		 * starting point (as a part of an LRO/RSC series) but the
-		 * compiler cursed at me when I tried to cast away the
-		 * "volatile" from rx_ring (yes, it's volatile too!!!). So, I'm
-		 * keeping it the way it is for now.
-		 *
-		 * The code in this file is broken in so many other places and
-		 * will just not work on a big endian CPU anyway therefore the
-		 * lines below will have to be revisited together with the rest
-		 * of the ixgbe PMD.
-		 *
-		 * TODO:
-		 *    - Get rid of "volatile" and let the compiler do its job.
-		 *    - Use the proper memory barrier (rte_rmb()) to ensure the
-		 *      memory ordering below.
+		 * "Volatile" only prevents caching of the variable marked
+		 * volatile. Most important, "volatile" cannot prevent the CPU
+		 * from executing out of order. So, it is necessary to use a
+		 * proper memory barrier to ensure the memory ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rte_le_to_cpu_32(rxdp->wb.upper.status_error);
@@ -2091,6 +2080,12 @@ next_desc:
 		if (!(staterr & IXGBE_RXDADV_STAT_DD))
 			break;
 
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_id=%u "
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.748912143 +0100
+++ 0016-net-ixgbe-add-proper-memory-barriers-in-Rx.patch	2023-06-28 11:40:08.076027917 +0100
@@ -1 +1 @@
-From 85e46c532bc76ebe07f6a397aa76211250aca59c Mon Sep 17 00:00:00 2001
+From 6fb5e74cd8bfd97db2188a452974c76ee574ccd3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 85e46c532bc76ebe07f6a397aa76211250aca59c ]
+
@@ -50 +51,0 @@
-Cc: stable@dpdk.org
@@ -59 +60 @@
-index 6cbb992823..61f17cd90b 100644
+index ab3e70d27e..7414384493 100644
@@ -62 +63 @@
-@@ -1817,11 +1817,22 @@ ixgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+@@ -1787,11 +1787,22 @@ ixgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
@@ -85 +86 @@
-@@ -2088,32 +2099,10 @@ ixgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
+@@ -2058,32 +2069,10 @@ ixgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
@@ -122 +123 @@
-@@ -2121,6 +2110,12 @@ next_desc:
+@@ -2091,6 +2080,12 @@ next_desc:

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/iavf: fix abnormal disable HW interrupt' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (14 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/ixgbe: add proper memory barriers in Rx' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/i40e: fix tunnel packet Tx descriptor' " luca.boccassi
                       ` (4 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 790a74ad5ed97175068d171b8a8d973f7deb2c4c Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Wed, 14 Jun 2023 09:53:03 +0000
Subject: [PATCH] net/iavf: fix abnormal disable HW interrupt

[ upstream commit 675a104e2e940ec476e8b469725e8465d01c0098 ]

For command VIRTCHNL_OP_REQUEST_QUEUES, polling access to the admin
queue has the issue of access overruns after disabling interrupt. That
results in FW disabling HW interrupt for protection purposes.

The updates/changes in this patch:
1. Remove the polling admin queue processing and use the generic interrupt
processing instead.
2. Release redundant queue resource before stopping processing interrupt
events.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")
Fixes: ef807926e148 ("net/iavf: support requesting additional queues from PF")
Fixes: 84108425054a ("net/iavf: support asynchronous virtual channel message")

Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 24 ++++++++---------
 drivers/net/iavf/iavf_vchnl.c  | 49 +++++++---------------------------
 2 files changed, 22 insertions(+), 51 deletions(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 40f5693d28..ddd877724a 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2077,6 +2077,18 @@ iavf_dev_close(struct rte_eth_dev *dev)
 
 	ret = iavf_dev_stop(dev);
 
+	/*
+	 * Release redundant queue resource when close the dev
+	 * so that other vfs can re-use the queues.
+	 */
+	if (vf->lv_enabled) {
+		ret = iavf_request_queues(dev, IAVF_MAX_NUM_QUEUES_DFLT);
+		if (ret)
+			PMD_DRV_LOG(ERR, "Reset the num of queues failed");
+
+		vf->max_rss_qregion = IAVF_MAX_NUM_QUEUES_DFLT;
+	}
+
 	iavf_flow_flush(dev, NULL);
 	iavf_flow_uninit(adapter);
 
@@ -2088,18 +2100,6 @@ iavf_dev_close(struct rte_eth_dev *dev)
 	if (vf->promisc_unicast_enabled || vf->promisc_multicast_enabled)
 		iavf_config_promisc(adapter, false, false);
 
-	/*
-	 * Release redundant queue resource when close the dev
-	 * so that other vfs can re-use the queues.
-	 */
-	if (vf->lv_enabled) {
-		ret = iavf_request_queues(dev, IAVF_MAX_NUM_QUEUES_DFLT);
-		if (ret)
-			PMD_DRV_LOG(ERR, "Reset the num of queues failed");
-
-		vf->max_rss_qregion = IAVF_MAX_NUM_QUEUES_DFLT;
-	}
-
 	iavf_shutdown_adminq(hw);
 	/* disable uio intr before callback unregister */
 	rte_intr_disable(intr_handle);
diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c
index 1a09acafb1..b9dfcd62eb 100644
--- a/drivers/net/iavf/iavf_vchnl.c
+++ b/drivers/net/iavf/iavf_vchnl.c
@@ -309,6 +309,7 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
 
 	switch (args->ops) {
 	case VIRTCHNL_OP_RESET_VF:
+	case VIRTCHNL_OP_REQUEST_QUEUES:
 		/*no need to wait for response */
 		_clear_cmd(vf);
 		break;
@@ -331,33 +332,6 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
 		}
 		_clear_cmd(vf);
 		break;
-	case VIRTCHNL_OP_REQUEST_QUEUES:
-		/*
-		 * ignore async reply, only wait for system message,
-		 * vf_reset = true if get VIRTCHNL_EVENT_RESET_IMPENDING,
-		 * if not, means request queues failed.
-		 */
-		do {
-			result = iavf_read_msg_from_pf(adapter, args->out_size,
-						   args->out_buffer);
-			if (result == IAVF_MSG_SYS && vf->vf_reset) {
-				break;
-			} else if (result == IAVF_MSG_CMD ||
-				result == IAVF_MSG_ERR) {
-				err = -1;
-				break;
-			}
-			iavf_msec_delay(ASQ_DELAY_MS);
-			/* If don't read msg or read sys event, continue */
-		} while (i++ < MAX_TRY_TIMES);
-		if (i >= MAX_TRY_TIMES ||
-			vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
-			err = -1;
-			PMD_DRV_LOG(ERR, "No response or return failure (%d)"
-				    " for cmd %d", vf->cmd_retval, args->ops);
-		}
-		_clear_cmd(vf);
-		break;
 	default:
 		if (rte_thread_is_intr()) {
 			/* For virtchnl ops were executed in eal_intr_thread,
@@ -1594,11 +1568,11 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
 	struct iavf_adapter *adapter =
 		IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 	struct iavf_info *vf =  IAVF_DEV_PRIVATE_TO_VF(adapter);
-	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct virtchnl_vf_res_request vfres;
 	struct iavf_cmd_info args;
 	uint16_t num_queue_pairs;
 	int err;
+	int i = 0;
 
 	if (!(vf->vf_res->vf_cap_flags &
 		VIRTCHNL_VF_OFFLOAD_REQ_QUEUES)) {
@@ -1618,22 +1592,19 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
 	args.out_buffer = vf->aq_resp;
 	args.out_size = IAVF_AQ_BUF_SZ;
 
-	/*
-	 * disable interrupt to avoid the admin queue message to be read
-	 * before iavf_read_msg_from_pf.
-	 *
-	 * don't disable interrupt handler until ready to execute vf cmd.
-	 */
-	rte_spinlock_lock(&vf->aq_lock);
-	rte_intr_disable(&pci_dev->intr_handle);
-	err = iavf_execute_vf_cmd(adapter, &args);
-	rte_intr_enable(&pci_dev->intr_handle);
-	rte_spinlock_unlock(&vf->aq_lock);
+	err = iavf_execute_vf_cmd_safe(adapter, &args);
 	if (err) {
 		PMD_DRV_LOG(ERR, "fail to execute command OP_REQUEST_QUEUES");
 		return err;
 	}
 
+	/* wait for interrupt notification vf is resetting */
+	while (i++ < MAX_TRY_TIMES) {
+		if (vf->vf_reset)
+			break;
+		iavf_msec_delay(ASQ_DELAY_MS);
+	}
+
 	/* request queues succeeded, vf is resetting */
 	if (vf->vf_reset) {
 		PMD_DRV_LOG(INFO, "vf is resetting");
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.792691715 +0100
+++ 0017-net-iavf-fix-abnormal-disable-HW-interrupt.patch	2023-06-28 11:40:08.080028000 +0100
@@ -1 +1 @@
-From 675a104e2e940ec476e8b469725e8465d01c0098 Mon Sep 17 00:00:00 2001
+From 790a74ad5ed97175068d171b8a8d973f7deb2c4c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 675a104e2e940ec476e8b469725e8465d01c0098 ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -24,3 +25,3 @@
- drivers/net/iavf/iavf_ethdev.c | 25 +++++++++---------
- drivers/net/iavf/iavf_vchnl.c  | 48 +++++++---------------------------
- 2 files changed, 23 insertions(+), 50 deletions(-)
+ drivers/net/iavf/iavf_ethdev.c | 24 ++++++++---------
+ drivers/net/iavf/iavf_vchnl.c  | 49 +++++++---------------------------
+ 2 files changed, 22 insertions(+), 51 deletions(-)
@@ -29 +30 @@
-index b72dbc8ceb..00b963128b 100644
+index 40f5693d28..ddd877724a 100644
@@ -32,2 +33 @@
-@@ -2757,6 +2757,19 @@ iavf_dev_close(struct rte_eth_dev *dev)
- 	}
+@@ -2077,6 +2077,18 @@ iavf_dev_close(struct rte_eth_dev *dev)
@@ -36 +36 @@
-+
+ 
@@ -49 +49,2 @@
- 	adapter->closed = true;
+ 	iavf_flow_flush(dev, NULL);
+ 	iavf_flow_uninit(adapter);
@@ -51,2 +52 @@
- 	/* free iAVF security device context all related resources */
-@@ -2773,18 +2786,6 @@ iavf_dev_close(struct rte_eth_dev *dev)
+@@ -2088,18 +2100,6 @@ iavf_dev_close(struct rte_eth_dev *dev)
@@ -69,2 +69,2 @@
- 	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
- 		/* disable uio intr before callback unregister */
+ 	/* disable uio intr before callback unregister */
+ 	rte_intr_disable(intr_handle);
@@ -72 +72 @@
-index 07eb358824..524732f67d 100644
+index 1a09acafb1..b9dfcd62eb 100644
@@ -75 +75 @@
-@@ -324,6 +324,7 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args,
+@@ -309,6 +309,7 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
@@ -83 +83 @@
-@@ -347,33 +348,6 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args,
+@@ -331,33 +332,6 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)
@@ -117 +117 @@
-@@ -2082,11 +2056,11 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
+@@ -1594,11 +1568,11 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
@@ -130 +130,2 @@
-@@ -2107,16 +2081,7 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
+@@ -1618,22 +1592,19 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
+ 	args.out_buffer = vf->aq_resp;
@@ -133,16 +134,14 @@
- 	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
--		/* disable interrupt to avoid the admin queue message to be read
--		 * before iavf_read_msg_from_pf.
--		 *
--		 * don't disable interrupt handler until ready to execute vf cmd.
--		 */
--		rte_spinlock_lock(&vf->aq_lock);
--		rte_intr_disable(pci_dev->intr_handle);
--		err = iavf_execute_vf_cmd(adapter, &args, 0);
--		rte_intr_enable(pci_dev->intr_handle);
--		rte_spinlock_unlock(&vf->aq_lock);
-+		err = iavf_execute_vf_cmd_safe(adapter, &args, 0);
- 	} else {
- 		rte_eal_alarm_cancel(iavf_dev_alarm_handler, dev);
- 		err = iavf_execute_vf_cmd_safe(adapter, &args, 0);
-@@ -2129,6 +2094,13 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
+-	/*
+-	 * disable interrupt to avoid the admin queue message to be read
+-	 * before iavf_read_msg_from_pf.
+-	 *
+-	 * don't disable interrupt handler until ready to execute vf cmd.
+-	 */
+-	rte_spinlock_lock(&vf->aq_lock);
+-	rte_intr_disable(&pci_dev->intr_handle);
+-	err = iavf_execute_vf_cmd(adapter, &args);
+-	rte_intr_enable(&pci_dev->intr_handle);
+-	rte_spinlock_unlock(&vf->aq_lock);
++	err = iavf_execute_vf_cmd_safe(adapter, &args);
+ 	if (err) {
+ 		PMD_DRV_LOG(ERR, "fail to execute command OP_REQUEST_QUEUES");

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/i40e: fix tunnel packet Tx descriptor' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (15 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/iavf: fix abnormal disable HW interrupt' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/e1000: fix queue number initialization' " luca.boccassi
                       ` (3 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Shiyang He; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 42d51b3d7c3939d20f9eb6ec5f060ad29c615bf0 Mon Sep 17 00:00:00 2001
From: Shiyang He <shiyangx.he@intel.com>
Date: Wed, 14 Jun 2023 09:59:03 +0000
Subject: [PATCH] net/i40e: fix tunnel packet Tx descriptor

[ upstream commit e8b1a5dd7df3e7a3f87b469e1b007d560d46d7f2 ]

The TX descriptor of tunnel packet filled incorrectly due to the MACLEN
is not set.

This patch fixes this issue by setting MACLEN to correctly fill the
TX descriptor.

Fixes: c59faf3fe8fe ("net/i40e: support TSO on tunneling packet")

Signed-off-by: Shiyang He <shiyangx.he@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 071345da09..3b6c41c271 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -265,10 +265,7 @@ i40e_txd_enable_checksum(uint64_t ol_flags,
 			union i40e_tx_offload tx_offload)
 {
 	/* Set MACLEN */
-	if (ol_flags & PKT_TX_TUNNEL_MASK)
-		*td_offset |= (tx_offload.outer_l2_len >> 1)
-				<< I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
-	else
+	if (!(ol_flags & PKT_TX_TUNNEL_MASK))
 		*td_offset |= (tx_offload.l2_len >> 1)
 			<< I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
 
@@ -1131,9 +1128,12 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
 		/* Fill in tunneling parameters if necessary */
 		cd_tunneling_params = 0;
-		if (ol_flags & PKT_TX_TUNNEL_MASK)
+		if (ol_flags & PKT_TX_TUNNEL_MASK) {
+			td_offset |= (tx_offload.outer_l2_len >> 1)
+					<< I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
 			i40e_parse_tunneling_params(ol_flags, tx_offload,
 						    &cd_tunneling_params);
+		}
 		/* Enable checksum offloading */
 		if (ol_flags & I40E_TX_CKSUM_OFFLOAD_MASK)
 			i40e_txd_enable_checksum(ol_flags, &td_cmd,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.835285765 +0100
+++ 0018-net-i40e-fix-tunnel-packet-Tx-descriptor.patch	2023-06-28 11:40:08.084028083 +0100
@@ -1 +1 @@
-From e8b1a5dd7df3e7a3f87b469e1b007d560d46d7f2 Mon Sep 17 00:00:00 2001
+From 42d51b3d7c3939d20f9eb6ec5f060ad29c615bf0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e8b1a5dd7df3e7a3f87b469e1b007d560d46d7f2 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index fbbefb5015..b4f65b58fa 100644
+index 071345da09..3b6c41c271 100644
@@ -25 +26 @@
-@@ -304,10 +304,7 @@ i40e_txd_enable_checksum(uint64_t ol_flags,
+@@ -265,10 +265,7 @@ i40e_txd_enable_checksum(uint64_t ol_flags,
@@ -29 +30 @@
--	if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
+-	if (ol_flags & PKT_TX_TUNNEL_MASK)
@@ -33 +34 @@
-+	if (!(ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK))
++	if (!(ol_flags & PKT_TX_TUNNEL_MASK))
@@ -37 +38 @@
-@@ -1171,9 +1168,12 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -1131,9 +1128,12 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -41,2 +42,2 @@
--		if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
-+		if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) {
+-		if (ol_flags & PKT_TX_TUNNEL_MASK)
++		if (ol_flags & PKT_TX_TUNNEL_MASK) {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/e1000: fix queue number initialization' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (16 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/i40e: fix tunnel packet Tx descriptor' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/mlx5: fix risk in NEON Rx descriptor read' " luca.boccassi
                       ` (2 subsequent siblings)
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 7af73606af78be574bc2533cb9258ec13c884fa2 Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Tue, 13 Jun 2023 07:51:51 +0000
Subject: [PATCH] net/e1000: fix queue number initialization

[ upstream commit c1a42d646472fd3477429bf016f682e0865b77f0 ]

The initialized queue number is not match the description in HW
datasheet.

Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/e1000/em_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index ef482bdde4..0ef6bee86c 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -1079,8 +1079,8 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	 * To avoid it we support just one RX queue for now (no RSS).
 	 */
 
-	dev_info->max_rx_queues = 1;
-	dev_info->max_tx_queues = 1;
+	dev_info->max_rx_queues = 2;
+	dev_info->max_tx_queues = 2;
 
 	dev_info->rx_queue_offload_capa = em_get_rx_queue_offloads_capa(dev);
 	dev_info->rx_offload_capa = em_get_rx_port_offloads_capa(dev) |
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.876658953 +0100
+++ 0019-net-e1000-fix-queue-number-initialization.patch	2023-06-28 11:40:08.084028083 +0100
@@ -1 +1 @@
-From c1a42d646472fd3477429bf016f682e0865b77f0 Mon Sep 17 00:00:00 2001
+From 7af73606af78be574bc2533cb9258ec13c884fa2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c1a42d646472fd3477429bf016f682e0865b77f0 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 0afedcd00c..c5a4dec693 100644
+index ef482bdde4..0ef6bee86c 100644
@@ -22 +23 @@
-@@ -1088,8 +1088,8 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -1079,8 +1079,8 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -31,2 +32,2 @@
- 	dev_info->rx_queue_offload_capa = em_get_rx_queue_offloads_capa();
- 	dev_info->rx_offload_capa = em_get_rx_port_offloads_capa() |
+ 	dev_info->rx_queue_offload_capa = em_get_rx_queue_offloads_capa(dev);
+ 	dev_info->rx_offload_capa = em_get_rx_port_offloads_capa(dev) |

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: fix risk in NEON Rx descriptor read' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (17 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/e1000: fix queue number initialization' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'net/mlx5: fix device removal event handling' " luca.boccassi
  2023-06-28 14:10     ` patch 'common/mlx5: adjust fork call with new kernel API' " luca.boccassi
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Ali Alnubani, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b67f1030b64f2068f98573e7d623fc24cc6cc9d6 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Tue, 30 May 2023 13:48:04 +0800
Subject: [PATCH] net/mlx5: fix risk in NEON Rx descriptor read

[ upstream commit 7ac7450b20d1e11a20c138707663867918b39403 ]

In NEON vector PMD, vector load loads two contiguous 8B of
descriptor data into vector register. Given vector load ensures no
16B atomicity, read of the word that includes op_own field could be
reordered after read of other words. In this case, some words could
contain invalid data.

Reloaded qword0 after read barrier to update vector register. This
ensures that the fetched data is correct.

Testpmd single core test on N1SDP/ThunderX2 showed no performance drop.

Fixes: 1742c2d9fab0 ("net/mlx5: fix synchronization on polling Rx completions")

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Ali Alnubani <alialnu@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
index e4b74c40d1..e3ba6fee5b 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
+++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h
@@ -647,6 +647,14 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,
 		c0 = vld1q_u64((uint64_t *)(p0 + 48));
 		/* Synchronize for loading the rest of blocks. */
 		rte_io_rmb();
+		/* B.0 (CQE 3) reload lower half of the block. */
+		c3 = vld1q_lane_u64((uint64_t *)(p3 + 48), c3, 0);
+		/* B.0 (CQE 2) reload lower half of the block. */
+		c2 = vld1q_lane_u64((uint64_t *)(p2 + 48), c2, 0);
+		/* B.0 (CQE 1) reload lower half of the block. */
+		c1 = vld1q_lane_u64((uint64_t *)(p1 + 48), c1, 0);
+		/* B.0 (CQE 0) reload lower half of the block. */
+		c0 = vld1q_lane_u64((uint64_t *)(p0 + 48), c0, 0);
 		/* Prefetch next 4 CQEs. */
 		if (pkts_n - pos >= 2 * MLX5_VPMD_DESCS_PER_LOOP) {
 			unsigned int next = pos + MLX5_VPMD_DESCS_PER_LOOP;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.917319366 +0100
+++ 0020-net-mlx5-fix-risk-in-NEON-Rx-descriptor-read.patch	2023-06-28 11:40:08.088028165 +0100
@@ -1 +1 @@
-From 7ac7450b20d1e11a20c138707663867918b39403 Mon Sep 17 00:00:00 2001
+From b67f1030b64f2068f98573e7d623fc24cc6cc9d6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7ac7450b20d1e11a20c138707663867918b39403 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 91c85bec6d..3ed688191f 100644
+index e4b74c40d1..e3ba6fee5b 100644
@@ -31 +32 @@
-@@ -675,6 +675,14 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,
+@@ -647,6 +647,14 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: fix device removal event handling' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (18 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/mlx5: fix risk in NEON Rx descriptor read' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-06-28 14:10     ` patch 'common/mlx5: adjust fork call with new kernel API' " luca.boccassi
  20 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 92f3908f23339ab540c5a461a79f7d033bd2ce0f Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Tue, 30 May 2023 18:13:28 +0300
Subject: [PATCH] net/mlx5: fix device removal event handling

[ upstream commit 22dc56cfbd39692eb74fad93ff5ecc3df5fd0633 ]

On the device removal kernel notifies user space application
with queueing the IBV_DEVICE_FATAL_EVENT and triggering appropriate
file descriptor. Mellanox kernel driver stack emits this event
twice from different layers (mlx5 and uverbs). The IB port index
is not applicable in the event structure and should be ignored
for IBV_DEVICE_FATAL_EVENT events.

Also, on the older kernels (at least from OFED 4.9) there might be
race conditions causing the event queue close before application
fetches the IBV_DEVICE_FATAL_EVENT message with ibv_get_async_event()
API.

To provide the reliable device removal event detection the patch:

  - ignores the IB port index for the IBV_DEVICE_FATAL_EVENT
  - introduces the flag to notify PMD about removal only once
  - acks event with ibv_ack_async_event after actual handling
  - checks for EIO error, making sure queue is not closed yet

Fixes: 40d9f906f4e2 ("net/mlx5: fix device removal handler for multiport")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_ethdev_os.c | 40 +++++++++++++++++--------
 drivers/net/mlx5/mlx5.h                 |  1 +
 2 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
index 92320616b5..473dad3851 100644
--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
@@ -715,6 +715,7 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
 
 	for (i = 0; i < sh->max_port; ++i) {
 		struct rte_eth_dev *dev;
+		struct mlx5_priv *priv;
 
 		if (sh->port[i].ih_port_id >= RTE_MAX_ETHPORTS) {
 			/*
@@ -725,9 +726,14 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
 		}
 		dev = &rte_eth_devices[sh->port[i].ih_port_id];
 		MLX5_ASSERT(dev);
-		if (dev->data->dev_conf.intr_conf.rmv)
+		priv = dev->data->dev_private;
+		MLX5_ASSERT(priv);
+		if (!priv->rmv_notified && dev->data->dev_conf.intr_conf.rmv) {
+			/* Notify driver about removal only once. */
+			priv->rmv_notified = 1;
 			rte_eth_dev_callback_process
 				(dev, RTE_ETH_EVENT_INTR_RMV, NULL);
+		}
 	}
 }
 
@@ -800,21 +806,29 @@ mlx5_dev_interrupt_handler(void *cb_arg)
 		struct rte_eth_dev *dev;
 		uint32_t tmp;
 
-		if (mlx5_glue->get_async_event(sh->ctx, &event))
+		if (mlx5_glue->get_async_event(sh->ctx, &event)) {
+			if (errno == EIO) {
+				DRV_LOG(DEBUG,
+					"IBV async event queue closed on: %s",
+					sh->ibdev_name);
+				mlx5_dev_interrupt_device_fatal(sh);
+			}
 			break;
+		}
+		if (event.event_type == IBV_EVENT_DEVICE_FATAL) {
+			/*
+			 * The DEVICE_FATAL event can be called by kernel
+			 * twice - from mlx5 and uverbs layers, and port
+			 * index is not applicable. We should notify all
+			 * existing ports.
+			 */
+			mlx5_dev_interrupt_device_fatal(sh);
+			mlx5_glue->ack_async_event(&event);
+			continue;
+		}
 		/* Retrieve and check IB port index. */
 		tmp = (uint32_t)event.element.port_num;
-		if (!tmp && event.event_type == IBV_EVENT_DEVICE_FATAL) {
-			/*
-			 * The DEVICE_FATAL event is called once for
-			 * entire device without port specifying.
-			 * We should notify all existing ports.
-			 */
-			mlx5_glue->ack_async_event(&event);
-			mlx5_dev_interrupt_device_fatal(sh);
-			continue;
-		}
-		MLX5_ASSERT(tmp && (tmp <= sh->max_port));
+		MLX5_ASSERT(tmp <= sh->max_port);
 		if (!tmp) {
 			/* Unsupported device level event. */
 			mlx5_glue->ack_async_event(&event);
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 1f47c433eb..19cb02ad42 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -945,6 +945,7 @@ struct mlx5_priv {
 	unsigned int mtr_reg_share:1; /* Whether support meter REG_C share. */
 	unsigned int sampler_en:1; /* Whether support sampler. */
 	unsigned int lb_used:1; /* Loopback queue is referred to. */
+	unsigned int rmv_notified:1; /* Notified about removal event */
 	uint32_t mark_enabled:1; /* If mark action is enabled on rxqs. */
 	uint16_t domain_id; /* Switch domain identifier. */
 	uint16_t vport_id; /* Associated VF vport index (if any). */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.957115256 +0100
+++ 0021-net-mlx5-fix-device-removal-event-handling.patch	2023-06-28 11:40:08.088028165 +0100
@@ -1 +1 @@
-From 22dc56cfbd39692eb74fad93ff5ecc3df5fd0633 Mon Sep 17 00:00:00 2001
+From 92f3908f23339ab540c5a461a79f7d033bd2ce0f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 22dc56cfbd39692eb74fad93ff5ecc3df5fd0633 ]
+
@@ -26 +27,0 @@
-Cc: stable@dpdk.org
@@ -35 +36 @@
-index 55801534d1..639e629fe4 100644
+index 92320616b5..473dad3851 100644
@@ -38 +39 @@
-@@ -746,6 +746,7 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
+@@ -715,6 +715,7 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
@@ -46 +47 @@
-@@ -756,9 +757,14 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
+@@ -725,9 +726,14 @@ mlx5_dev_interrupt_device_fatal(struct mlx5_dev_ctx_shared *sh)
@@ -62 +63 @@
-@@ -830,21 +836,29 @@ mlx5_dev_interrupt_handler(void *cb_arg)
+@@ -800,21 +806,29 @@ mlx5_dev_interrupt_handler(void *cb_arg)
@@ -66,2 +67,2 @@
--		if (mlx5_glue->get_async_event(sh->cdev->ctx, &event))
-+		if (mlx5_glue->get_async_event(sh->cdev->ctx, &event)) {
+-		if (mlx5_glue->get_async_event(sh->ctx, &event))
++		if (mlx5_glue->get_async_event(sh->ctx, &event)) {
@@ -105 +106 @@
-index fffd3c79f1..10a2f33ea0 100644
+index 1f47c433eb..19cb02ad42 100644
@@ -108,2 +109 @@
-@@ -1744,6 +1744,7 @@ struct mlx5_priv {
- 	unsigned int mtr_en:1; /* Whether support meter. */
+@@ -945,6 +945,7 @@ struct mlx5_priv {
@@ -110,0 +111 @@
+ 	unsigned int sampler_en:1; /* Whether support sampler. */
@@ -114,2 +115,2 @@
- 	uint32_t num_lag_ports:4; /* Number of ports can be bonded. */
- 	uint32_t tunnel_enabled:1; /* If tunnel offloading is enabled on rxqs. */
+ 	uint16_t domain_id; /* Switch domain identifier. */
+ 	uint16_t vport_id; /* Associated VF vport index (if any). */

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'common/mlx5: adjust fork call with new kernel API' has been queued to stable release 20.11.9
  2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
                       ` (19 preceding siblings ...)
  2023-06-28 14:10     ` patch 'net/mlx5: fix device removal event handling' " luca.boccassi
@ 2023-06-28 14:10     ` luca.boccassi
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
  20 siblings, 1 reply; 113+ messages in thread
From: luca.boccassi @ 2023-06-28 14:10 UTC (permalink / raw)
  To: Erez Ferber; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 893798a07c221da3e952d13a66b4449539cc3412 Mon Sep 17 00:00:00 2001
From: Erez Ferber <erezf@nvidia.com>
Date: Wed, 24 May 2023 15:01:40 +0300
Subject: [PATCH] common/mlx5: adjust fork call with new kernel API

[ upstream commit 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da ]

While doing process fork() the operating system remaps all the parent
process's memory to the address space of the child process and activates
the Copy-on-Write mechanics - it duplicates physical pages once memory
writing happens in the child process. Sometimes memory duplication is
not allowed - for example, if the page contains hardware queue
descriptors. To handle similar issues the rdma-core library should be
prepared for forking.

The ibv_fork_init() prepares the library to track all the related memory
and prevent it from forking using madvise() system API. This approach
allows fork, but not all the memory is forked to the child process and,
application should care not to touch pages where the parent application
allocated the rdma-core objects.

The newer kernels propose an option of copy-on-fork for DMA pages and
tracking all the memory and disabling it for the forking is no longer
needed. The new API routine ibv_is_fork_initialized() should be involved
to decide if library initialization for forking is required.

Fixes: 0e83b8e536c1 ("net/mlx5: move rdma-core calls to separate file")

Signed-off-by: Erez Ferber <erezf@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/linux/meson.build | 2 ++
 drivers/common/mlx5/linux/mlx5_glue.c | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build
index 43d70c1324..e000bbb211 100644
--- a/drivers/common/mlx5/linux/meson.build
+++ b/drivers/common/mlx5/linux/meson.build
@@ -190,6 +190,8 @@ has_sym_args = [
         'mlx5dv_dr_action_create_aso' ],
         [ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h',
             'ibv_reg_mr_iova' ],
+        [ 'HAVE_IBV_FORK_UNNEEDED', 'infiniband/verbs.h',
+            'ibv_is_fork_initialized'],
 ]
 config = configuration_data()
 foreach arg:has_sym_args
diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c
index 97ac5d3b5e..c1aae60478 100644
--- a/drivers/common/mlx5/linux/mlx5_glue.c
+++ b/drivers/common/mlx5/linux/mlx5_glue.c
@@ -19,6 +19,10 @@
 static int
 mlx5_glue_fork_init(void)
 {
+#ifdef HAVE_IBV_FORK_UNNEEDED
+	if (ibv_is_fork_initialized() == IBV_FORK_UNNEEDED)
+		return 0; /* ibv_fork_init() not needed */
+#endif
 	return ibv_fork_init();
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-06-28 11:40:08.996947261 +0100
+++ 0022-common-mlx5-adjust-fork-call-with-new-kernel-API.patch	2023-06-28 11:40:08.092028248 +0100
@@ -1 +1 @@
-From 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da Mon Sep 17 00:00:00 2001
+From 893798a07c221da3e952d13a66b4449539cc3412 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 42f113c53cbbbc4585ad68b4d2a8aa9bddad23da ]
+
@@ -26 +27,0 @@
-Cc: stable@dpdk.org
@@ -36 +37 @@
-index 718da020f7..15edc13041 100644
+index 43d70c1324..e000bbb211 100644
@@ -39,4 +40,4 @@
-@@ -221,6 +221,8 @@ has_sym_args = [
-             'mlx5dv_dr_action_create_dest_root_table' ],
-         [ 'HAVE_MLX5DV_CREATE_STEERING_ANCHOR', 'infiniband/mlx5dv.h',
-             'mlx5dv_create_steering_anchor'],
+@@ -190,6 +190,8 @@ has_sym_args = [
+         'mlx5dv_dr_action_create_aso' ],
+         [ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h',
+             'ibv_reg_mr_iova' ],
@@ -46,2 +47,2 @@
- if  libmtcr_ul_found
-     has_sym_args += [
+ config = configuration_data()
+ foreach arg:has_sym_args
@@ -49 +50 @@
-index 3497aa940d..6f858db8fc 100644
+index 97ac5d3b5e..c1aae60478 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* Re: patch 'test: add graph tests' has been queued to stable release 20.11.9
  2023-06-28 14:10     ` patch 'test: add graph tests' " luca.boccassi
@ 2023-06-28 14:55       ` David Marchand
  0 siblings, 0 replies; 113+ messages in thread
From: David Marchand @ 2023-06-28 14:55 UTC (permalink / raw)
  To: luca.boccassi; +Cc: Jerin Jacob, dpdk stable

On Wed, Jun 28, 2023 at 4:11 PM <luca.boccassi@gmail.com> wrote:
> diff --git a/app/test/meson.build b/app/test/meson.build
> index 49fbb5e18e..8049e9e32e 100644
> --- a/app/test/meson.build
> +++ b/app/test/meson.build
> @@ -303,6 +305,7 @@ perf_test_names = [
>          'hash_readwrite_lf_perf_autotest',
>          'trace_perf_autotest',
>         'ipsec_perf_autotest',
> +        'graph_perf_autotest',

It looks like indent is broken in the 20.11 branch before this backport.
This is probably because of a tabulation/space battle in a previous backport.

This is harmless except that backport conflicts will likely pile up over time.


>  ]
>
>  driver_test_names = [


-- 
David Marchand


^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ipc: fix file descriptor leakage with unhandled messages' has been queued to stable release 20.11.9
  2023-06-28 14:10     ` patch 'common/mlx5: adjust fork call with new kernel API' " luca.boccassi
@ 2023-07-14 22:34       ` luca.boccassi
  2023-07-14 22:34         ` patch 'fib: fix adding default route' " luca.boccassi
                           ` (16 more replies)
  0 siblings, 17 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Chengwen Feng, Anatoly Burakov, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 52dc01cef84c6609cc7b4e35f97e3d0f3886acc0 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Wed, 28 Jun 2023 15:19:38 +0300
Subject: [PATCH] ipc: fix file descriptor leakage with unhandled messages

[ upstream commit a64a4564705d18d20d20cfa16c79e795b7bf0f1e ]

The sendmsg()/recvmsg() API is used to establish communication between
the DPDK processes. The API supposes inter-process file descriptors
sending and conversion, the recipient sees the resulting descriptors
in the received message - the operating systems creates ones in the
right context.

The message receiving is performed by EAL in the dedicated thread
and it might happen the message is received by EAL and not handled
by addressed PMD or application due to some reasons (timeouts, race
condition, etc). EAL just dropped unhandled messages causing the
file descriptor leakage if these ones were presented in the message.

The patch closes the descriptors (if any) in unhandled messages.

Fixes: 783b6e54971d ("eal: add synchronous multi-process communication")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/eal_common_proc.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_proc.c b/lib/librte_eal/common/eal_common_proc.c
index 50f0668148..38a2164f71 100644
--- a/lib/librte_eal/common/eal_common_proc.c
+++ b/lib/librte_eal/common/eal_common_proc.c
@@ -323,6 +323,15 @@ retry:
 	return msglen;
 }
 
+static void
+cleanup_msg_fds(const struct rte_mp_msg *msg)
+{
+	int i;
+
+	for (i = 0; i < msg->num_fds; i++)
+		close(msg->fds[i]);
+}
+
 static void
 process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
 {
@@ -351,8 +360,10 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
 			else if (pending_req->type == REQUEST_TYPE_ASYNC)
 				req = async_reply_handle_thread_unsafe(
 						pending_req);
-		} else
+		} else {
 			RTE_LOG(ERR, EAL, "Drop mp reply: %s\n", msg->name);
+			cleanup_msg_fds(msg);
+		}
 		pthread_mutex_unlock(&pending_requests.lock);
 
 		if (req != NULL)
@@ -382,6 +393,7 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
 			RTE_LOG(ERR, EAL, "Cannot find action: %s\n",
 				msg->name);
 		}
+		cleanup_msg_fds(msg);
 	} else if (action(msg, s->sun_path) < 0) {
 		RTE_LOG(ERR, EAL, "Fail to handle message: %s\n", msg->name);
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.546242253 +0100
+++ 0001-ipc-fix-file-descriptor-leakage-with-unhandled-messa.patch	2023-07-14 23:33:08.475304887 +0100
@@ -1 +1 @@
-From a64a4564705d18d20d20cfa16c79e795b7bf0f1e Mon Sep 17 00:00:00 2001
+From 52dc01cef84c6609cc7b4e35f97e3d0f3886acc0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a64a4564705d18d20d20cfa16c79e795b7bf0f1e ]
+
@@ -21 +22,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
- lib/eal/common/eal_common_proc.c | 14 +++++++++++++-
+ lib/librte_eal/common/eal_common_proc.c | 14 +++++++++++++-
@@ -30,5 +31,5 @@
-diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c
-index 7a038e0a3c..02d4599d67 100644
---- a/lib/eal/common/eal_common_proc.c
-+++ b/lib/eal/common/eal_common_proc.c
-@@ -321,6 +321,15 @@ retry:
+diff --git a/lib/librte_eal/common/eal_common_proc.c b/lib/librte_eal/common/eal_common_proc.c
+index 50f0668148..38a2164f71 100644
+--- a/lib/librte_eal/common/eal_common_proc.c
++++ b/lib/librte_eal/common/eal_common_proc.c
+@@ -323,6 +323,15 @@ retry:
@@ -50 +51 @@
-@@ -349,8 +358,10 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
+@@ -351,8 +360,10 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
@@ -62 +63 @@
-@@ -380,6 +391,7 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)
+@@ -382,6 +393,7 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'fib: fix adding default route' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'mem: fix memsegs exhausted message' " luca.boccassi
                           ` (15 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From d5778159b6ba6d855deace58f2ce1e542eec9d9d Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 3 Jul 2023 15:43:35 +0000
Subject: [PATCH] fib: fix adding default route

[ upstream commit 880bc2b5f3bdbde0eee4d880afaaf91b4babbdfc ]

Fixed an issue that occurs when
adding a default route as the first route.

Bugzilla ID: 1160
Fixes: 7dc7868b200d ("fib: add DIR24-8 dataplane algorithm")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/librte_fib/dir24_8.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_fib/dir24_8.c b/lib/librte_fib/dir24_8.c
index bb3bc9753b..181ed03dee 100644
--- a/lib/librte_fib/dir24_8.c
+++ b/lib/librte_fib/dir24_8.c
@@ -394,7 +394,7 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,
 				(uint32_t)(1ULL << (32 - tmp_depth));
 		} else {
 			redge = ip + (uint32_t)(1ULL << (32 - depth));
-			if (ledge == redge)
+			if (ledge == redge && ledge != 0)
 				break;
 			ret = install_to_fib(dp, ledge, redge,
 				next_hop);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.586517497 +0100
+++ 0002-fib-fix-adding-default-route.patch	2023-07-14 23:33:08.479304963 +0100
@@ -1 +1 @@
-From 880bc2b5f3bdbde0eee4d880afaaf91b4babbdfc Mon Sep 17 00:00:00 2001
+From d5778159b6ba6d855deace58f2ce1e542eec9d9d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 880bc2b5f3bdbde0eee4d880afaaf91b4babbdfc ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -15 +16 @@
- lib/fib/dir24_8.c | 2 +-
+ lib/librte_fib/dir24_8.c | 2 +-
@@ -18,5 +19,5 @@
-diff --git a/lib/fib/dir24_8.c b/lib/fib/dir24_8.c
-index a8ba4f64ca..3efdcb533c 100644
---- a/lib/fib/dir24_8.c
-+++ b/lib/fib/dir24_8.c
-@@ -390,7 +390,7 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,
+diff --git a/lib/librte_fib/dir24_8.c b/lib/librte_fib/dir24_8.c
+index bb3bc9753b..181ed03dee 100644
+--- a/lib/librte_fib/dir24_8.c
++++ b/lib/librte_fib/dir24_8.c
+@@ -394,7 +394,7 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'mem: fix memsegs exhausted message' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
  2023-07-14 22:34         ` patch 'fib: fix adding default route' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/netvsc: fix sizeof calculation' " luca.boccassi
                           ` (14 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Fengnan Chang; +Cc: Anatoly Burakov, Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 8573c47eff8d648c89238e40e997ad7902504e29 Mon Sep 17 00:00:00 2001
From: Fengnan Chang <changfengnan@bytedance.com>
Date: Tue, 4 Jul 2023 20:17:51 +0800
Subject: [PATCH] mem: fix memsegs exhausted message

[ upstream commit d93000bb9310685d0df3aa2c11cff3000ed17a82 ]

When there is not enough space to memsegs, we should prompt
which configuration should be modified instead of printing
some numbers.

Fixes: dd61b34d580b ("mem: error if requesting more segments than MAX_MEMSEG")
Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")

Signed-off-by: Fengnan Chang <changfengnan@bytedance.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 lib/librte_eal/common/eal_common_dynmem.c |  6 ++----
 lib/librte_eal/freebsd/eal_memory.c       |  8 +++-----
 lib/librte_eal/linux/eal_memory.c         | 11 ++++-------
 3 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_dynmem.c b/lib/librte_eal/common/eal_common_dynmem.c
index c1e1889f5c..9af299b8f8 100644
--- a/lib/librte_eal/common/eal_common_dynmem.c
+++ b/lib/librte_eal/common/eal_common_dynmem.c
@@ -119,8 +119,7 @@ eal_dynmem_memseg_lists_init(void)
 	max_seglists_per_type = RTE_MAX_MEMSEG_LISTS / n_memtypes;
 
 	if (max_seglists_per_type == 0) {
-		RTE_LOG(ERR, EAL, "Cannot accommodate all memory types, please increase %s\n",
-			RTE_STR(RTE_MAX_MEMSEG_LISTS));
+		RTE_LOG(ERR, EAL, "Cannot accommodate all memory types, please increase RTE_MAX_MEMSEG_LISTS\n");
 		goto out;
 	}
 
@@ -179,8 +178,7 @@ eal_dynmem_memseg_lists_init(void)
 		for (cur_seglist = 0; cur_seglist < n_seglists; cur_seglist++) {
 			if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
 				RTE_LOG(ERR, EAL,
-					"No more space in memseg lists, please increase %s\n",
-					RTE_STR(RTE_MAX_MEMSEG_LISTS));
+					"No more space in memseg lists, please increase RTE_MAX_MEMSEG_LISTS\n");
 				goto out;
 			}
 			msl = &mcfg->memsegs[msl_idx++];
diff --git a/lib/librte_eal/freebsd/eal_memory.c b/lib/librte_eal/freebsd/eal_memory.c
index 17ab10e0ca..5c6165c580 100644
--- a/lib/librte_eal/freebsd/eal_memory.c
+++ b/lib/librte_eal/freebsd/eal_memory.c
@@ -172,9 +172,8 @@ rte_eal_hugepage_init(void)
 				break;
 			}
 			if (msl_idx == RTE_MAX_MEMSEG_LISTS) {
-				RTE_LOG(ERR, EAL, "Could not find space for memseg. Please increase %s and/or %s in configuration.\n",
-					RTE_STR(RTE_MAX_MEMSEG_PER_TYPE),
-					RTE_STR(RTE_MAX_MEM_MB_PER_TYPE));
+				RTE_LOG(ERR, EAL, "Could not find space for memseg. Please increase RTE_MAX_MEMSEG_PER_LIST "
+					"RTE_MAX_MEMSEG_PER_TYPE and/or RTE_MAX_MEM_MB_PER_TYPE in configuration.\n");
 				return -1;
 			}
 			arr = &msl->memseg_arr;
@@ -404,8 +403,7 @@ memseg_primary_init(void)
 
 			if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
 				RTE_LOG(ERR, EAL,
-					"No more space in memseg lists, please increase %s\n",
-					RTE_STR(RTE_MAX_MEMSEG_LISTS));
+					"No more space in memseg lists, please increase RTE_MAX_MEMSEG_LISTS\n");
 				return -1;
 			}
 
diff --git a/lib/librte_eal/linux/eal_memory.c b/lib/librte_eal/linux/eal_memory.c
index 3bd0bc17c5..84f4e1cce7 100644
--- a/lib/librte_eal/linux/eal_memory.c
+++ b/lib/librte_eal/linux/eal_memory.c
@@ -721,9 +721,8 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
 		break;
 	}
 	if (msl_idx == RTE_MAX_MEMSEG_LISTS) {
-		RTE_LOG(ERR, EAL, "Could not find space for memseg. Please increase %s and/or %s in configuration.\n",
-				RTE_STR(RTE_MAX_MEMSEG_PER_TYPE),
-				RTE_STR(RTE_MAX_MEM_MB_PER_TYPE));
+		RTE_LOG(ERR, EAL, "Could not find space for memseg. Please increase RTE_MAX_MEMSEG_PER_LIST "
+			"RTE_MAX_MEMSEG_PER_TYPE and/or RTE_MAX_MEM_MB_PER_TYPE in configuration.\n");
 		return -1;
 	}
 
@@ -971,8 +970,7 @@ prealloc_segments(struct hugepage_file *hugepages, int n_pages)
 				break;
 			}
 			if (msl_idx == RTE_MAX_MEMSEG_LISTS) {
-				RTE_LOG(ERR, EAL, "Not enough space in memseg lists, please increase %s\n",
-					RTE_STR(RTE_MAX_MEMSEG_LISTS));
+				RTE_LOG(ERR, EAL, "Not enough space in memseg lists, please increase RTE_MAX_MEMSEG_LISTS\n");
 				return -1;
 			}
 
@@ -1838,8 +1836,7 @@ memseg_primary_init_32(void)
 
 				if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
 					RTE_LOG(ERR, EAL,
-						"No more space in memseg lists, please increase %s\n",
-						RTE_STR(RTE_MAX_MEMSEG_LISTS));
+						"No more space in memseg lists, please increase RTE_MAX_MEMSEG_LISTS\n");
 					return -1;
 				}
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.628597772 +0100
+++ 0003-mem-fix-memsegs-exhausted-message.patch	2023-07-14 23:33:08.479304963 +0100
@@ -1 +1 @@
-From d93000bb9310685d0df3aa2c11cff3000ed17a82 Mon Sep 17 00:00:00 2001
+From 8573c47eff8d648c89238e40e997ad7902504e29 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d93000bb9310685d0df3aa2c11cff3000ed17a82 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18,3 +19,3 @@
- lib/eal/common/eal_common_dynmem.c |  6 ++----
- lib/eal/freebsd/eal_memory.c       |  8 +++-----
- lib/eal/linux/eal_memory.c         | 11 ++++-------
+ lib/librte_eal/common/eal_common_dynmem.c |  6 ++----
+ lib/librte_eal/freebsd/eal_memory.c       |  8 +++-----
+ lib/librte_eal/linux/eal_memory.c         | 11 ++++-------
@@ -23,5 +24,5 @@
-diff --git a/lib/eal/common/eal_common_dynmem.c b/lib/eal/common/eal_common_dynmem.c
-index 52e52e5986..bdbbe233a0 100644
---- a/lib/eal/common/eal_common_dynmem.c
-+++ b/lib/eal/common/eal_common_dynmem.c
-@@ -120,8 +120,7 @@ eal_dynmem_memseg_lists_init(void)
+diff --git a/lib/librte_eal/common/eal_common_dynmem.c b/lib/librte_eal/common/eal_common_dynmem.c
+index c1e1889f5c..9af299b8f8 100644
+--- a/lib/librte_eal/common/eal_common_dynmem.c
++++ b/lib/librte_eal/common/eal_common_dynmem.c
+@@ -119,8 +119,7 @@ eal_dynmem_memseg_lists_init(void)
@@ -37 +38 @@
-@@ -180,8 +179,7 @@ eal_dynmem_memseg_lists_init(void)
+@@ -179,8 +178,7 @@ eal_dynmem_memseg_lists_init(void)
@@ -47 +48 @@
-diff --git a/lib/eal/freebsd/eal_memory.c b/lib/eal/freebsd/eal_memory.c
+diff --git a/lib/librte_eal/freebsd/eal_memory.c b/lib/librte_eal/freebsd/eal_memory.c
@@ -49,2 +50,2 @@
---- a/lib/eal/freebsd/eal_memory.c
-+++ b/lib/eal/freebsd/eal_memory.c
+--- a/lib/librte_eal/freebsd/eal_memory.c
++++ b/lib/librte_eal/freebsd/eal_memory.c
@@ -73,5 +74,5 @@
-diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
-index 0876974631..9b6f08fba8 100644
---- a/lib/eal/linux/eal_memory.c
-+++ b/lib/eal/linux/eal_memory.c
-@@ -716,9 +716,8 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
+diff --git a/lib/librte_eal/linux/eal_memory.c b/lib/librte_eal/linux/eal_memory.c
+index 3bd0bc17c5..84f4e1cce7 100644
+--- a/lib/librte_eal/linux/eal_memory.c
++++ b/lib/librte_eal/linux/eal_memory.c
+@@ -721,9 +721,8 @@ remap_segment(struct hugepage_file *hugepages, int seg_start, int seg_end)
@@ -89 +90 @@
-@@ -966,8 +965,7 @@ prealloc_segments(struct hugepage_file *hugepages, int n_pages)
+@@ -971,8 +970,7 @@ prealloc_segments(struct hugepage_file *hugepages, int n_pages)
@@ -99 +100 @@
-@@ -1833,8 +1831,7 @@ memseg_primary_init_32(void)
+@@ -1838,8 +1836,7 @@ memseg_primary_init_32(void)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/netvsc: fix sizeof calculation' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
  2023-07-14 22:34         ` patch 'fib: fix adding default route' " luca.boccassi
  2023-07-14 22:34         ` patch 'mem: fix memsegs exhausted message' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'app/testpmd: fix checksum engine with GTP on 32-bit' " luca.boccassi
                           ` (13 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Long Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From d94676623d26bd8370ad70ee39beac2f110dfa3f Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 28 Jun 2023 17:29:57 -0700
Subject: [PATCH] net/netvsc: fix sizeof calculation

[ upstream commit 86fb73f5bf401afc9d52144f27e6d1cf4f64348b ]

Found by cppcheck.

drivers/net/netvsc/hn_rndis.c:332:21: warning:
 Found calculation inside sizeof().
 [sizeofCalculation]  if (len < sizeof(3 * sizeof(uint32_t))) {

Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/netvsc/hn_rndis.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c
index 1ce260c89b..26ae7d544b 100644
--- a/drivers/net/netvsc/hn_rndis.c
+++ b/drivers/net/netvsc/hn_rndis.c
@@ -329,7 +329,8 @@ void hn_rndis_receive_response(struct hn_data *hv,
 
 	hn_rndis_dump(data);
 
-	if (len < sizeof(3 * sizeof(uint32_t))) {
+	/* Check we can read first three data fields from RNDIS header */
+	if (len < 3 * sizeof(uint32_t)) {
 		PMD_DRV_LOG(ERR,
 			    "missing RNDIS header %u", len);
 		return;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.668504338 +0100
+++ 0004-net-netvsc-fix-sizeof-calculation.patch	2023-07-14 23:33:08.483305040 +0100
@@ -1 +1 @@
-From 86fb73f5bf401afc9d52144f27e6d1cf4f64348b Mon Sep 17 00:00:00 2001
+From d94676623d26bd8370ad70ee39beac2f110dfa3f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 86fb73f5bf401afc9d52144f27e6d1cf4f64348b ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index e6f1f28768..29c6009b2c 100644
+index 1ce260c89b..26ae7d544b 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'app/testpmd: fix checksum engine with GTP on 32-bit' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (2 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/netvsc: fix sizeof calculation' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/hns3: fix non-zero weight for disabled TC' " luca.boccassi
                           ` (12 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Shiyang He; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b92c1c45a30cef0aabc2f6e100f7d91e53223a2e Mon Sep 17 00:00:00 2001
From: Shiyang He <shiyangx.he@intel.com>
Date: Thu, 29 Jun 2023 10:09:55 +0000
Subject: [PATCH] app/testpmd: fix checksum engine with GTP on 32-bit

[ upstream commit f7bfa1285fe943b5189a63bb1d427e823b7fcc20 ]

l2_len is not calculated correctly on 32-bit systems, resulting in
packet forwarding failure.

This patch fixes this issue by changing the l2_len calculation.

Fixes: dd827fa42a30 ("app/testpmd: fix GTP L2 length in checksum engine")

Signed-off-by: Shiyang He <shiyangx.he@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/csumonly.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 9b12b91ead..299a676147 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -246,7 +246,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
 		info->l4_proto = 0;
 	}
 
-	info->l2_len += gtp_len + sizeof(udp_hdr);
+	info->l2_len += gtp_len + sizeof(*udp_hdr);
 }
 
 /* Parse a vxlan header */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.708504076 +0100
+++ 0005-app-testpmd-fix-checksum-engine-with-GTP-on-32-bit.patch	2023-07-14 23:33:08.483305040 +0100
@@ -1 +1 @@
-From f7bfa1285fe943b5189a63bb1d427e823b7fcc20 Mon Sep 17 00:00:00 2001
+From b92c1c45a30cef0aabc2f6e100f7d91e53223a2e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f7bfa1285fe943b5189a63bb1d427e823b7fcc20 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 7af635e3f7..c103e54111 100644
+index 9b12b91ead..299a676147 100644
@@ -24 +25 @@
-@@ -250,7 +250,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,
+@@ -246,7 +246,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix non-zero weight for disabled TC' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (3 preceding siblings ...)
  2023-07-14 22:34         ` patch 'app/testpmd: fix checksum engine with GTP on 32-bit' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/hns3: fix index to look up table in NEON Rx' " luca.boccassi
                           ` (11 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Huisong Li; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 872463f26324682b132b2cf48a77605e8869f968 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 7 Jul 2023 18:40:53 +0800
Subject: [PATCH] net/hns3: fix non-zero weight for disabled TC

[ upstream commit 1abcdb3f247393a04703071452b560a77ab23c04 ]

hns3 PF driver enables one TC, allocates to 100% weight for this
TC and 0% for other disabled TC by default. But driver modifies
the weight to 1% for disabled TC and then set to hardware to make
all TC work in DWRR mode. As a result, the total percent of all TC
is more than 100%. Actually, this operation is also redundant,
because these disabled TC will never be used. So this patch sets
the weight of all TC based on user's configuration.

Fixes: 62e3ccc2b94c ("net/hns3: support flow control")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_dcb.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
index a5cfccee28..6f9335a41f 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -240,9 +240,9 @@ hns3_dcb_qs_weight_cfg(struct hns3_hw *hw, uint16_t qs_id, uint8_t dwrr)
 static int
 hns3_dcb_ets_tc_dwrr_cfg(struct hns3_hw *hw)
 {
-#define DEFAULT_TC_WEIGHT	1
 #define DEFAULT_TC_OFFSET	14
 	struct hns3_ets_tc_weight_cmd *ets_weight;
+	struct hns3_pg_info *pg_info;
 	struct hns3_cmd_desc desc;
 	uint8_t i;
 
@@ -250,13 +250,6 @@ hns3_dcb_ets_tc_dwrr_cfg(struct hns3_hw *hw)
 	ets_weight = (struct hns3_ets_tc_weight_cmd *)desc.data;
 
 	for (i = 0; i < HNS3_MAX_TC_NUM; i++) {
-		struct hns3_pg_info *pg_info;
-
-		ets_weight->tc_weight[i] = DEFAULT_TC_WEIGHT;
-
-		if (!(hw->hw_tc_map & BIT(i)))
-			continue;
-
 		pg_info = &hw->dcb_info.pg_info[hw->dcb_info.tc_info[i].pgid];
 		ets_weight->tc_weight[i] = pg_info->tc_dwrr[i];
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.749298283 +0100
+++ 0006-net-hns3-fix-non-zero-weight-for-disabled-TC.patch	2023-07-14 23:33:08.487305115 +0100
@@ -1 +1 @@
-From 1abcdb3f247393a04703071452b560a77ab23c04 Mon Sep 17 00:00:00 2001
+From 872463f26324682b132b2cf48a77605e8869f968 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1abcdb3f247393a04703071452b560a77ab23c04 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index af045b22f7..07b8c46a81 100644
+index a5cfccee28..6f9335a41f 100644
@@ -27 +28 @@
-@@ -237,9 +237,9 @@ hns3_dcb_qs_weight_cfg(struct hns3_hw *hw, uint16_t qs_id, uint8_t dwrr)
+@@ -240,9 +240,9 @@ hns3_dcb_qs_weight_cfg(struct hns3_hw *hw, uint16_t qs_id, uint8_t dwrr)
@@ -38 +39 @@
-@@ -247,13 +247,6 @@ hns3_dcb_ets_tc_dwrr_cfg(struct hns3_hw *hw)
+@@ -250,13 +250,6 @@ hns3_dcb_ets_tc_dwrr_cfg(struct hns3_hw *hw)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/hns3: fix index to look up table in NEON Rx' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (4 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/hns3: fix non-zero weight for disabled TC' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'ethdev: fix potential leak in PCI probing helper' " luca.boccassi
                           ` (10 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Huisong Li; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From f413683418ef04dd68f1c95bb3703add8adc1c10 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 11 Jul 2023 18:24:44 +0800
Subject: [PATCH] net/hns3: fix index to look up table in NEON Rx

[ upstream commit 6bec7c50be7a38c114680481f285976142df40d0 ]

In hns3_recv_burst_vec(), the index to get packet length and data
size are reversed. Fortunately, this doesn't affect functionality
because the NEON Rx only supports single BD in which the packet
length is equal to the date size. Now this patch fixes it to get
back to the truth.

Fixes: a3d4f4d291d7 ("net/hns3: support NEON Rx")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rxtx_vec_neon.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h
index 4e94c7aa94..9c41c409de 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_neon.h
+++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h
@@ -138,8 +138,8 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 	/* mask to shuffle from desc to mbuf's rx_descriptor_fields1 */
 	uint8x16_t shuf_desc_fields_msk = {
 		0xff, 0xff, 0xff, 0xff,  /* packet type init zero */
-		22, 23, 0xff, 0xff,      /* rx.pkt_len to rte_mbuf.pkt_len */
-		20, 21,	                 /* size to rte_mbuf.data_len */
+		20, 21, 0xff, 0xff,      /* rx.pkt_len to rte_mbuf.pkt_len */
+		22, 23,	                 /* size to rte_mbuf.data_len */
 		0xff, 0xff,	         /* rte_mbuf.vlan_tci init zero */
 		8, 9, 10, 11,	         /* rx.rss_hash to rte_mbuf.hash.rss */
 	};
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.788194279 +0100
+++ 0007-net-hns3-fix-index-to-look-up-table-in-NEON-Rx.patch	2023-07-14 23:33:08.487305115 +0100
@@ -1 +1 @@
-From 6bec7c50be7a38c114680481f285976142df40d0 Mon Sep 17 00:00:00 2001
+From f413683418ef04dd68f1c95bb3703add8adc1c10 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6bec7c50be7a38c114680481f285976142df40d0 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 6c49c70fc7..564d831a48 100644
+index 4e94c7aa94..9c41c409de 100644
@@ -25 +26 @@
-@@ -142,8 +142,8 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
+@@ -138,8 +138,8 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'ethdev: fix potential leak in PCI probing helper' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (5 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/hns3: fix index to look up table in NEON Rx' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/mlx5: forbid MPRQ restart' " luca.boccassi
                           ` (9 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Kaiyu Zhang; +Cc: Chengwen Feng, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From a981ef39159d96f6e9d72ea5986265b992bbfd74 Mon Sep 17 00:00:00 2001
From: Kaiyu Zhang <squirrel.prog@gmail.com>
Date: Tue, 11 Jul 2023 01:18:09 +0000
Subject: [PATCH] ethdev: fix potential leak in PCI probing helper

[ upstream commit 1f00a6a037040a7c6ba883e2c312894c6ebc4c32 ]

Sanity check is performed after a rte_eth_dev object is allocated.

The object is not freed if the check fails, though in the current
reality this never happens, but it's better programming paradigm
to move the quick check up front to the start of
rte_eth_dev_pci_generic_probe().

Fixes: dcd5c8112bc3 ("ethdev: add PCI driver helpers")

Signed-off-by: Kaiyu Zhang <squirrel.prog@gmail.com>
Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/librte_ethdev/rte_ethdev_pci.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/librte_ethdev/rte_ethdev_pci.h b/lib/librte_ethdev/rte_ethdev_pci.h
index d015697e21..d5ec47f283 100644
--- a/lib/librte_ethdev/rte_ethdev_pci.h
+++ b/lib/librte_ethdev/rte_ethdev_pci.h
@@ -126,6 +126,9 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
 	struct rte_eth_dev *eth_dev;
 	int ret;
 
+	if (*dev_init == NULL)
+		return -EINVAL;
+
 	eth_dev = rte_eth_dev_pci_allocate(pci_dev, private_data_size);
 	if (!eth_dev)
 		return -ENOMEM;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.828659111 +0100
+++ 0008-ethdev-fix-potential-leak-in-PCI-probing-helper.patch	2023-07-14 23:33:08.487305115 +0100
@@ -1 +1 @@
-From 1f00a6a037040a7c6ba883e2c312894c6ebc4c32 Mon Sep 17 00:00:00 2001
+From a981ef39159d96f6e9d72ea5986265b992bbfd74 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1f00a6a037040a7c6ba883e2c312894c6ebc4c32 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -20,21 +21,8 @@
- .mailmap                | 1 +
- lib/ethdev/ethdev_pci.h | 9 +++++----
- 2 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/.mailmap b/.mailmap
-index d200f36339..6c28ea798d 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -698,6 +698,7 @@ Kai Ji <kai.ji@intel.com>
- Kaijun Zeng <corezeng@gmail.com>
- Kaisen You <kaisenx.you@intel.com>
- Kaiwen Deng <kaiwenx.deng@intel.com>
-+Kaiyu Zhang <squirrel.prog@gmail.com>
- Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
- Kamalakannan R <kamalakannan.r@intel.com>
- Kamalakshitha Aligeri <kamalakshitha.aligeri@arm.com>
-diff --git a/lib/ethdev/ethdev_pci.h b/lib/ethdev/ethdev_pci.h
-index 94b8fba5d7..320e3e0093 100644
---- a/lib/ethdev/ethdev_pci.h
-+++ b/lib/ethdev/ethdev_pci.h
-@@ -126,12 +126,13 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
+ lib/librte_ethdev/rte_ethdev_pci.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/lib/librte_ethdev/rte_ethdev_pci.h b/lib/librte_ethdev/rte_ethdev_pci.h
+index d015697e21..d5ec47f283 100644
+--- a/lib/librte_ethdev/rte_ethdev_pci.h
++++ b/lib/librte_ethdev/rte_ethdev_pci.h
+@@ -126,6 +126,9 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
@@ -44,10 +32,2 @@
--	eth_dev = rte_eth_dev_pci_allocate(pci_dev, private_data_size);
--	if (!eth_dev)
--		return -ENOMEM;
--
- 	if (*dev_init == NULL)
- 		return -EINVAL;
-+
-+	eth_dev = rte_eth_dev_pci_allocate(pci_dev, private_data_size);
-+	if (!eth_dev)
-+		return -ENOMEM;
++	if (*dev_init == NULL)
++		return -EINVAL;
@@ -55,3 +35,3 @@
- 	ret = dev_init(eth_dev);
- 	if (ret)
- 		rte_eth_dev_release_port(eth_dev);
+ 	eth_dev = rte_eth_dev_pci_allocate(pci_dev, private_data_size);
+ 	if (!eth_dev)
+ 		return -ENOMEM;

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: forbid MPRQ restart' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (6 preceding siblings ...)
  2023-07-14 22:34         ` patch 'ethdev: fix potential leak in PCI probing helper' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/ice: fix 32-bit build' " luca.boccassi
                           ` (8 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From cd1033d5d5b2403684b51a2b926b5fba8ab1dcea Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Tue, 4 Jul 2023 00:22:24 +0300
Subject: [PATCH] net/mlx5: forbid MPRQ restart

[ upstream commit f0b2d50e2c6c02555b7fbe77f909bd7f1c6ac2e4 ]

The queue restart is only supported by the non-vectorized
single-packet receive queue today. Restarting MPRQ will
result in corrupted packets because of CQE and WQE mismatch.
Prevent this by not allowing the MPRQ Rx queue stop.

Fixes: 161d103b231c ("net/mlx5: add queue start and stop")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 5d659738fe..47db585042 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -579,12 +579,12 @@ mlx5_rx_queue_stop(struct rte_eth_dev *dev, uint16_t idx)
 	 * synchronized, that might be broken on RQ restart
 	 * and cause Rx malfunction, so queue stopping is
 	 * not supported if vectorized Rx burst is engaged.
-	 * The routine pointer depends on the process
-	 * type, should perform check there.
+	 * The routine pointer depends on the process type,
+	 * should perform check there. MPRQ is not supported as well.
 	 */
-	if (pkt_burst == mlx5_rx_burst_vec) {
-		DRV_LOG(ERR, "Rx queue stop is not supported "
-			"for vectorized Rx");
+	if (pkt_burst != mlx5_rx_burst) {
+		DRV_LOG(ERR, "Rx queue stop is only supported "
+			"for non-vectorized single-packet Rx");
 		rte_errno = EINVAL;
 		return -EINVAL;
 	}
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.871153623 +0100
+++ 0009-net-mlx5-forbid-MPRQ-restart.patch	2023-07-14 23:33:08.491305191 +0100
@@ -1 +1 @@
-From f0b2d50e2c6c02555b7fbe77f909bd7f1c6ac2e4 Mon Sep 17 00:00:00 2001
+From cd1033d5d5b2403684b51a2b926b5fba8ab1dcea Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f0b2d50e2c6c02555b7fbe77f909bd7f1c6ac2e4 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index ad8fd13cbe..b314c0482b 100644
+index 5d659738fe..47db585042 100644
@@ -24 +25 @@
-@@ -531,12 +531,12 @@ mlx5_rx_queue_stop(struct rte_eth_dev *dev, uint16_t idx)
+@@ -579,12 +579,12 @@ mlx5_rx_queue_stop(struct rte_eth_dev *dev, uint16_t idx)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix 32-bit build' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (7 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/mlx5: forbid MPRQ restart' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'net/ice: fix RSS hash key generation' " luca.boccassi
                           ` (7 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Yiding Zhou; +Cc: Luca Boccassi, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From d4c3ced186365c13c69f1dd5daad6f707edaedd1 Mon Sep 17 00:00:00 2001
From: Yiding Zhou <yidingx.zhou@intel.com>
Date: Wed, 5 Jul 2023 15:32:10 +0800
Subject: [PATCH] net/ice: fix 32-bit build

[ upstream commit 910507de1164d1cb7051ddb84ac742bf088f4711 ]

Replace 'rte_memcpy' with 'memcpy' like other PMD code to avoid errors when
compiling with GCC-12 on 32-bit configure.

Compiler reports the follow error:

error: array subscript 8 is outside array bounds of "struct rte_mbuf *[32]"
[-Werror=array-bounds]

Fixes: c68a52b8b38c ("net/ice: support vector SSE in Rx")

Signed-off-by: Yiding Zhou <yidingx.zhou@intel.com>
Tested-by: Luca Boccassi <bluca@debian.org>
---
 drivers/net/ice/ice_rxtx_vec_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
index bd2450ad5f..2b791a1066 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -72,7 +72,7 @@ ice_rx_reassemble_packets(struct ice_rx_queue *rxq, struct rte_mbuf **rx_bufs,
 	/* save the partial packet for next time */
 	rxq->pkt_first_seg = start;
 	rxq->pkt_last_seg = end;
-	rte_memcpy(rx_bufs, pkts, pkt_idx * (sizeof(*pkts)));
+	memcpy(rx_bufs, pkts, pkt_idx * (sizeof(*pkts)));
 	return pkt_idx;
 }
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.912432734 +0100
+++ 0010-net-ice-fix-32-bit-build.patch	2023-07-14 23:33:08.491305191 +0100
@@ -1 +1 @@
-From 910507de1164d1cb7051ddb84ac742bf088f4711 Mon Sep 17 00:00:00 2001
+From d4c3ced186365c13c69f1dd5daad6f707edaedd1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 910507de1164d1cb7051ddb84ac742bf088f4711 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index eec6ea2134..55840cf170 100644
+index bd2450ad5f..2b791a1066 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ice: fix RSS hash key generation' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (8 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/ice: fix 32-bit build' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix possible division by zero' " luca.boccassi
                           ` (6 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Yuying Zhang; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 512e8b2399ce794aec64da9921c4ff91702ff8e0 Mon Sep 17 00:00:00 2001
From: Yuying Zhang <yuying.zhang@intel.com>
Date: Fri, 7 Jul 2023 02:10:46 +0000
Subject: [PATCH] net/ice: fix RSS hash key generation

[ upstream commit b9f28be1bf72e120041416b461325941fd97cac0 ]

Current code just generated 40 bytes standard rss
hash key of ice driver. The extended 12 bytes
were filled by hardware and were invalid for users.
This patch generate 52 bytes rss hash key for ice
driver just as other drivers.

Fixes: 50370662b727 ("net/ice: support device and queue ops")
Fixes: 20d6a017e148 ("net/ice: fix build with GCC 12")

Signed-off-by: Yuying Zhang <yuying.zhang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 5a49868855..e4df6847d2 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3226,7 +3226,8 @@ static int ice_init_rss(struct ice_pf *pf)
 
 	rss_conf = &dev_data->dev_conf.rx_adv_conf.rss_conf;
 	nb_q = dev_data->nb_rx_queues;
-	vsi->rss_key_size = ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE;
+	vsi->rss_key_size = ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE +
+			    ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE;
 	vsi->rss_lut_size = pf->hash_lut_size;
 
 	if (nb_q == 0) {
@@ -3267,7 +3268,10 @@ static int ice_init_rss(struct ice_pf *pf)
 				   vsi->rss_key_size));
 
 	rte_memcpy(key.standard_rss_key, vsi->rss_key,
-		RTE_MIN(sizeof(key.standard_rss_key), vsi->rss_key_size));
+		ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE);
+	rte_memcpy(key.extended_hash_key,
+		&vsi->rss_key[ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE],
+		ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE);
 	ret = ice_aq_set_rss_key(hw, vsi->idx, &key);
 	if (ret)
 		goto out;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:08.957591867 +0100
+++ 0011-net-ice-fix-RSS-hash-key-generation.patch	2023-07-14 23:33:08.495305267 +0100
@@ -1 +1 @@
-From b9f28be1bf72e120041416b461325941fd97cac0 Mon Sep 17 00:00:00 2001
+From 512e8b2399ce794aec64da9921c4ff91702ff8e0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b9f28be1bf72e120041416b461325941fd97cac0 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 949b13324f..4bad39c2c1 100644
+index 5a49868855..e4df6847d2 100644
@@ -26 +27 @@
-@@ -3350,7 +3350,8 @@ static int ice_init_rss(struct ice_pf *pf)
+@@ -3226,7 +3226,8 @@ static int ice_init_rss(struct ice_pf *pf)
@@ -36 +37 @@
-@@ -3391,7 +3392,10 @@ static int ice_init_rss(struct ice_pf *pf)
+@@ -3267,7 +3268,10 @@ static int ice_init_rss(struct ice_pf *pf)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'baseband/fpga_5gnr_fec: fix possible division by zero' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (9 preceding siblings ...)
  2023-07-14 22:34         ` patch 'net/ice: fix RSS hash key generation' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix starting unconfigured queue' " luca.boccassi
                           ` (5 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b0f21e624de5ecef959fa6799b0d23d54818cd5d Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Thu, 25 May 2023 11:28:07 -0700
Subject: [PATCH] baseband/fpga_5gnr_fec: fix possible division by zero

[ upstream commit 8b087b96eaa9df8d09fcea9a2a690e2c422058a5 ]

Add fix to have an early exit when z_c is zero to prevent a possible
division by zero.

Fixes: 44dc6faa796f ("baseband/fpga_5gnr_fec: add LDPC processing functions")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
index bd99fb4881..04c16f80fb 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
+++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
@@ -878,9 +878,11 @@ check_desc_error(uint32_t error_code) {
 static inline uint16_t
 get_k0(uint16_t n_cb, uint16_t z_c, uint8_t bg, uint8_t rv_index)
 {
-	if (rv_index == 0)
-		return 0;
 	uint16_t n = (bg == 1 ? N_ZC_1 : N_ZC_2) * z_c;
+	if (rv_index == 0)
+		return 0;
+	if (z_c == 0)
+		return 0;
 	if (n_cb == n) {
 		if (rv_index == 1)
 			return (bg == 1 ? K0_1_1 : K0_1_2) * z_c;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.015950749 +0100
+++ 0012-baseband-fpga_5gnr_fec-fix-possible-division-by-zero.patch	2023-07-14 23:33:08.499305343 +0100
@@ -1 +1 @@
-From 8b087b96eaa9df8d09fcea9a2a690e2c422058a5 Mon Sep 17 00:00:00 2001
+From b0f21e624de5ecef959fa6799b0d23d54818cd5d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8b087b96eaa9df8d09fcea9a2a690e2c422058a5 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index f29565af8c..99390c4816 100644
+index bd99fb4881..04c16f80fb 100644
@@ -22 +23 @@
-@@ -877,9 +877,11 @@ check_desc_error(uint32_t error_code) {
+@@ -878,9 +878,11 @@ check_desc_error(uint32_t error_code) {

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'baseband/fpga_5gnr_fec: fix starting unconfigured queue' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (10 preceding siblings ...)
  2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix possible division by zero' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'test/crypto: fix PDCP-SDAP test vectors' " luca.boccassi
                           ` (4 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From cc66c3e913846380edbba2d95171864f9212075a Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Thu, 25 May 2023 11:28:08 -0700
Subject: [PATCH] baseband/fpga_5gnr_fec: fix starting unconfigured queue

[ upstream commit 490501e6cbe48503aeadb20f89915a3949b70aa8 ]

Adding exception to prevent segmentation fault in case a queue is
started which was not configured earlier.

Fixes: c58109a8871d ("baseband/fpga_5gnr_fec: add queue configuration")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 .../baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c   | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
index 04c16f80fb..c68f552a0f 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
+++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
@@ -563,17 +563,21 @@ static int
 fpga_queue_start(struct rte_bbdev *dev, uint16_t queue_id)
 {
 	struct fpga_5gnr_fec_device *d = dev->data->dev_private;
-#ifdef RTE_LIBRTE_BBDEV_DEBUG
-	if (d == NULL) {
-		rte_bbdev_log(ERR, "Invalid device pointer");
-		return -1;
-	}
-#endif
 	struct fpga_queue *q = dev->data->queues[queue_id].queue_private;
 	uint32_t offset = FPGA_5GNR_FEC_RING_CTRL_REGS +
 			(sizeof(struct fpga_ring_ctrl_reg) * q->q_idx);
 	uint8_t enable = 0x01;
 	uint16_t zero = 0x0000;
+#ifdef RTE_LIBRTE_BBDEV_DEBUG
+	if (d == NULL) {
+		rte_bbdev_log(ERR, "Invalid device pointer");
+		return -1;
+	}
+#endif
+	if (dev->data->queues[queue_id].queue_private == NULL) {
+		rte_bbdev_log(ERR, "Cannot start invalid queue %d", queue_id);
+		return -1;
+	}
 
 	/* Clear queue head and tail variables */
 	q->tail = q->head_free_desc = 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.070705438 +0100
+++ 0013-baseband-fpga_5gnr_fec-fix-starting-unconfigured-que.patch	2023-07-14 23:33:08.503305419 +0100
@@ -1 +1 @@
-From 490501e6cbe48503aeadb20f89915a3949b70aa8 Mon Sep 17 00:00:00 2001
+From cc66c3e913846380edbba2d95171864f9212075a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 490501e6cbe48503aeadb20f89915a3949b70aa8 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 99390c4816..6b0644ffc5 100644
+index 04c16f80fb..c68f552a0f 100644
@@ -22 +23 @@
-@@ -567,17 +567,21 @@ static int
+@@ -563,17 +563,21 @@ static int

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'test/crypto: fix PDCP-SDAP test vectors' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (11 preceding siblings ...)
  2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix starting unconfigured queue' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'examples/fips_validation: fix digest length in AES-GCM' " luca.boccassi
                           ` (3 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Aakash Sasidharan; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 3045f945a5c4f73c0975c77b2234ea31805b8082 Mon Sep 17 00:00:00 2001
From: Aakash Sasidharan <asasidharan@marvell.com>
Date: Wed, 28 Jun 2023 13:50:20 +0530
Subject: [PATCH] test/crypto: fix PDCP-SDAP test vectors

[ upstream commit 2c34aae94dd79be9ca81875c8b24ec3a1e897861 ]

Fix incorrect fields in PDCP Header.
1. Only Data PDUs should be ciphered and authenticated.
   Here the vectors are control PDUs which should not be crypto
   processed. Change the D/C bit to make the vector as Data PDU
2. Reserved fields must be set to 0.

Updated the vectors and MAC-I values to handle above cases.

Fixes: 003afde411e7 ("test/crypto: add test vectors for PDCP-SDAP")

Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 ...ryptodev_security_pdcp_sdap_test_vectors.h | 252 +++++++++---------
 1 file changed, 126 insertions(+), 126 deletions(-)

diff --git a/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h b/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h
index f43f693edb..b0fa0ec458 100644
--- a/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h
+++ b/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h
@@ -769,7 +769,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -781,7 +781,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7,
 				     0xf5, 0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce,
 				     0xbe, 0x48, 0xb5, 0x0b, 0x6a, 0x73, 0x9a,
 				     0x5a, 0xa3, 0x06, 0x47, 0x40, 0x96, 0xcf,
@@ -790,7 +790,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44, 0xe8,
 				     0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2,
 				     0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c,
-				     0x23, 0xfa, 0x16, 0x39, 0xf7, 0x15, 0x11 },
+				     0x23, 0xfa, 0x16, 0xb2, 0xb0, 0x17, 0x4a },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -817,7 +817,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -829,7 +829,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
 				     0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5,
 				     0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78,
 				     0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07,
@@ -838,7 +838,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21,
 				     0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f,
 				     0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17,
-				     0xae, 0xde, 0xfb, 0x90, 0x62, 0x59, 0xcb },
+				     0xae, 0xde, 0xfb, 0x19, 0xDa, 0x9a, 0xc2 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -865,7 +865,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -877,7 +877,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7,
 				     0xf5, 0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce,
 				     0xbe, 0x48, 0xb5, 0x0b, 0x6a, 0x73, 0x9a,
 				     0x5a, 0xa3, 0x06, 0x47, 0x40, 0x96, 0xcf,
@@ -886,7 +886,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44, 0xe8,
 				     0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2,
 				     0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c,
-				     0x23, 0xfa, 0x16, 0x72, 0x3e, 0x14, 0xa9 },
+				     0x23, 0xfa, 0x16, 0x6c, 0xcb, 0x92, 0xdf },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -913,7 +913,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -925,7 +925,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
 				     0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5,
 				     0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78,
 				     0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07,
@@ -934,7 +934,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21,
 				     0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f,
 				     0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17,
-				     0xae, 0xde, 0xfb, 0x3f, 0x47, 0xaa, 0x9b },
+				     0xae, 0xde, 0xfb, 0x5b, 0xc2, 0x9f, 0x29 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -961,7 +961,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -974,7 +974,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 		.in_len = 66,
 		.data_out =
 			(uint8_t[]){
-				0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, 0xf5,
+				0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, 0xf5,
 				0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce, 0xbe, 0x48,
 				0xb5, 0x0b, 0x6a, 0x73, 0x9a, 0x5a, 0xa3, 0x06,
 				0x47, 0x40, 0x96, 0xcf, 0x86, 0x98, 0x3d, 0x6f,
@@ -982,7 +982,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				0xa6, 0x24, 0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44,
 				0xe8, 0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2,
 				0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c, 0x23,
-				0xfa, 0x16, 0x52, 0x69, 0x16, 0xfc,
+				0xfa, 0x16, 0x5d, 0x83, 0x73, 0x34,
 			},
 		.sn_size = 12,
 		.hfn = 0x1,
@@ -1010,7 +1010,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1022,7 +1022,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86,
 				     0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5,
 				     0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78,
 				     0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07,
@@ -1031,7 +1031,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21,
 				     0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f,
 				     0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17,
-				     0xae, 0xde, 0xfb, 0xf5, 0xda, 0x73, 0xa7 },
+				     0xae, 0xde, 0xfb, 0xff, 0xf9, 0xef, 0xff },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1154,7 +1154,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1166,7 +1166,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
 				     0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e,
 				     0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40,
 				     0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22,
@@ -1175,7 +1175,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1,
 				     0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3,
 				     0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97,
-				     0xbd, 0xba, 0x08, 0x39, 0x63, 0x21, 0x82 },
+				     0xbd, 0xba, 0x08, 0xb2, 0x24, 0x23, 0xd9 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1202,7 +1202,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1214,7 +1214,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
 				     0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36,
 				     0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8,
 				     0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e,
@@ -1223,7 +1223,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7,
 				     0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47,
 				     0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde,
-				     0xc9, 0x0a, 0x64, 0x8e, 0x79, 0xde, 0xaa },
+				     0xc9, 0x0a, 0x64, 0x07, 0xc1, 0x1d, 0xa3 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1250,7 +1250,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1262,7 +1262,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
 				     0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e,
 				     0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40,
 				     0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22,
@@ -1271,7 +1271,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1,
 				     0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3,
 				     0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97,
-				     0xbd, 0xba, 0x08, 0x72, 0xaa, 0x20, 0x3a },
+				     0xbd, 0xba, 0x08, 0x6c, 0x5f, 0xa6, 0x4c },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1298,7 +1298,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1310,7 +1310,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
 				     0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36,
 				     0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8,
 				     0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e,
@@ -1319,7 +1319,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7,
 				     0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47,
 				     0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde,
-				     0xc9, 0x0a, 0x64, 0x21, 0x5c, 0x2d, 0xfa },
+				     0xc9, 0x0a, 0x64, 0x45, 0xd9, 0x18, 0x48 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1346,7 +1346,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1358,7 +1358,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38,
 				     0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e,
 				     0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40,
 				     0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22,
@@ -1367,7 +1367,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1,
 				     0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3,
 				     0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97,
-				     0xbd, 0xba, 0x08, 0x52, 0xfd, 0x22, 0x6f },
+				     0xbd, 0xba, 0x08, 0x5d, 0x17, 0x47, 0xa7 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1394,7 +1394,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1406,7 +1406,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41,
 				     0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36,
 				     0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8,
 				     0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e,
@@ -1415,7 +1415,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7,
 				     0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47,
 				     0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde,
-				     0xc9, 0x0a, 0x64, 0xeb, 0xc1, 0xf4, 0xc6 },
+				     0xc9, 0x0a, 0x64, 0xe1, 0xe2, 0x68, 0x9e },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1538,7 +1538,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1550,7 +1550,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
 				     0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b,
 				     0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67,
 				     0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37,
@@ -1559,7 +1559,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d,
 				     0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56,
 				     0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5,
-				     0xaf, 0x96, 0x5c, 0xb6, 0x6c, 0xeb, 0x14 },
+				     0xaf, 0x96, 0x5c, 0x3d, 0x2b, 0xe9, 0x4f },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1586,7 +1586,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1598,7 +1598,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
 				     0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f,
 				     0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29,
 				     0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59,
@@ -1607,7 +1607,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51,
 				     0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64,
 				     0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13,
-				     0x91, 0xaf, 0x24, 0xb2, 0x82, 0xfb, 0x27 },
+				     0x91, 0xaf, 0x24, 0x3b, 0x3a, 0x38, 0x2e },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1634,7 +1634,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1646,7 +1646,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
 				     0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b,
 				     0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67,
 				     0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37,
@@ -1655,7 +1655,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d,
 				     0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56,
 				     0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5,
-				     0xaf, 0x96, 0x5c, 0xfd, 0xa5, 0xea, 0xac },
+				     0xaf, 0x96, 0x5c, 0xe3, 0x50, 0x6c, 0xda },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1682,7 +1682,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1694,7 +1694,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
 				     0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f,
 				     0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29,
 				     0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59,
@@ -1703,7 +1703,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51,
 				     0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64,
 				     0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13,
-				     0x91, 0xaf, 0x24, 0x1d, 0xa7, 0x08, 0x77 },
+				     0x91, 0xaf, 0x24, 0x79, 0x22, 0x3d, 0xc5 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1730,7 +1730,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1742,7 +1742,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27,
 				     0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b,
 				     0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67,
 				     0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37,
@@ -1751,7 +1751,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d,
 				     0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56,
 				     0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5,
-				     0xaf, 0x96, 0x5c, 0xdd, 0xf2, 0xe8, 0xf9 },
+				     0xaf, 0x96, 0x5c, 0xd2, 0x18, 0x8d, 0x31 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -1778,7 +1778,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82,
 					 0xdc, 0xb6, 0xc2, 0x36 },
 		.data_in =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d,
 				     0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde,
 				     0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb,
 				     0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf,
@@ -1790,7 +1790,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0xf9, 0xdd },
 		.in_len = 66,
 		.data_out =
-			(uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
+			(uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08,
 				     0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f,
 				     0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29,
 				     0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59,
@@ -1799,7 +1799,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51,
 				     0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64,
 				     0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13,
-				     0x91, 0xaf, 0x24, 0xd7, 0x3a, 0xd1, 0x4b },
+				     0x91, 0xaf, 0x24, 0xdd, 0x19, 0x4d, 0x13 },
 		.sn_size = 12,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2556,7 +2556,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2568,7 +2568,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
 				     0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b,
 				     0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7,
 				     0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a,
@@ -2577,8 +2577,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76,
 				     0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47,
 				     0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6,
-				     0x0e, 0xf4, 0xe7, 0xe8, 0x78, 0xdd, 0xc1,
-				     0x92 },
+				     0x0e, 0xf4, 0xe7, 0xe8, 0xc0, 0x48, 0x6a,
+				     0x7c },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2605,7 +2605,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2617,7 +2617,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
 				     0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50,
 				     0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab,
 				     0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01,
@@ -2626,8 +2626,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87,
 				     0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09,
 				     0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e,
-				     0x9c, 0x85, 0x0b, 0xf7, 0xb1, 0x80, 0x30,
-				     0xa5 },
+				     0x9c, 0x85, 0x0b, 0xf7, 0x17, 0x28, 0x0f,
+				     0x7d },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2654,7 +2654,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2666,7 +2666,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
 				     0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b,
 				     0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7,
 				     0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a,
@@ -2675,8 +2675,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76,
 				     0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47,
 				     0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6,
-				     0x0e, 0xf4, 0xe7, 0xe8, 0x08, 0xa6, 0xdb,
-				     0x19 },
+				     0x0e, 0xf4, 0xe7, 0xe8, 0x8e, 0x76, 0x4a,
+				     0x4e },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2703,7 +2703,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2715,7 +2715,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
 				     0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50,
 				     0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab,
 				     0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01,
@@ -2724,8 +2724,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87,
 				     0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09,
 				     0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e,
-				     0x9c, 0x85, 0x0b, 0xf7, 0x97, 0x5a, 0x56,
-				     0xab },
+				     0x9c, 0x85, 0x0b, 0xf7, 0xc1, 0x27, 0x82,
+				     0xc3 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2752,7 +2752,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2764,7 +2764,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01,
 				     0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b,
 				     0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7,
 				     0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a,
@@ -2773,8 +2773,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76,
 				     0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47,
 				     0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6,
-				     0x0e, 0xf4, 0xe7, 0xe8, 0x08, 0x68, 0xff,
-				     0x7c },
+				     0x0e, 0xf4, 0xe7, 0xe8, 0x97, 0x76, 0xce,
+				     0xac },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2801,7 +2801,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2813,7 +2813,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9,
 				     0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50,
 				     0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab,
 				     0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01,
@@ -2822,8 +2822,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87,
 				     0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09,
 				     0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e,
-				     0x9c, 0x85, 0x0b, 0xf7, 0x41, 0xdd, 0x19,
-				     0x32 },
+				     0x9c, 0x85, 0x0b, 0xf7, 0x69, 0x56, 0x6f,
+				     0xaf },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2948,7 +2948,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -2960,7 +2960,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
 				     0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f,
 				     0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde,
 				     0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51,
@@ -2969,8 +2969,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a,
 				     0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95,
 				     0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c,
-				     0xae, 0x22, 0x59, 0x11, 0xf6, 0x97, 0x0b,
-				     0x7b },
+				     0xae, 0x22, 0x59, 0x11, 0x4e, 0x02, 0xa0,
+				     0x95 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -2997,7 +2997,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3009,7 +3009,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
 				     0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30,
 				     0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e,
 				     0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f,
@@ -3018,8 +3018,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17,
 				     0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a,
 				     0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f,
-				     0xad, 0x3d, 0x99, 0x4a, 0xa3, 0xab, 0xd5,
-				     0x7c },
+				     0xad, 0x3d, 0x99, 0x4a, 0x05, 0x03, 0xea,
+				     0xa4 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3046,7 +3046,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3058,7 +3058,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
 				     0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f,
 				     0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde,
 				     0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51,
@@ -3067,8 +3067,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a,
 				     0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95,
 				     0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c,
-				     0xae, 0x22, 0x59, 0x11, 0x86, 0xec, 0x11,
-				     0xf0 },
+				     0xae, 0x22, 0x59, 0x11, 0x00, 0x3c, 0x80,
+				     0xa7 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3095,7 +3095,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3107,7 +3107,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
 				     0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30,
 				     0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e,
 				     0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f,
@@ -3116,8 +3116,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17,
 				     0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a,
 				     0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f,
-				     0xad, 0x3d, 0x99, 0x4a, 0x85, 0x71, 0xb3,
-				     0x72 },
+				     0xad, 0x3d, 0x99, 0x4a, 0xd3, 0x0c, 0x67,
+				     0x1a },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3144,7 +3144,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3156,7 +3156,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d,
 				     0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f,
 				     0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde,
 				     0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51,
@@ -3165,8 +3165,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a,
 				     0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95,
 				     0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c,
-				     0xae, 0x22, 0x59, 0x11, 0x86, 0x22, 0x35,
-				     0x95 },
+				     0xae, 0x22, 0x59, 0x11, 0x19, 0x3c, 0x04,
+				     0x45 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3193,7 +3193,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3205,7 +3205,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5,
 				     0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30,
 				     0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e,
 				     0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f,
@@ -3214,8 +3214,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17,
 				     0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a,
 				     0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f,
-				     0xad, 0x3d, 0x99, 0x4a, 0x53, 0xf6, 0xfc,
-				     0xeb },
+				     0xad, 0x3d, 0x99, 0x4a, 0x7b, 0x7d, 0x8a,
+				     0x76 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3340,7 +3340,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3352,7 +3352,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
 				     0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93,
 				     0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7,
 				     0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d,
@@ -3361,8 +3361,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12,
 				     0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60,
 				     0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7,
-				     0x0c, 0x61, 0x76, 0xdc, 0x25, 0x8a, 0x31,
-				     0xed },
+				     0x0c, 0x61, 0x76, 0xdc, 0x9d, 0x1f, 0x9a,
+				     0x03 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3389,7 +3389,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3401,7 +3401,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
 				     0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23,
 				     0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26,
 				     0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac,
@@ -3410,8 +3410,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e,
 				     0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25,
 				     0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f,
-				     0x6c, 0xed, 0x6a, 0x50, 0xf3, 0x5e, 0x90,
-				     0x42 },
+				     0x6c, 0xed, 0x6a, 0x50, 0x55, 0xf6, 0xaf,
+				     0x9a },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3438,7 +3438,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3450,7 +3450,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
 				     0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93,
 				     0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7,
 				     0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d,
@@ -3459,8 +3459,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12,
 				     0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60,
 				     0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7,
-				     0x0c, 0x61, 0x76, 0xdc, 0x55, 0xf1, 0x2b,
-				     0x66 },
+				     0x0c, 0x61, 0x76, 0xdc, 0xd3, 0x21, 0xba,
+				     0x31 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3487,7 +3487,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3499,7 +3499,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
 				     0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23,
 				     0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26,
 				     0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac,
@@ -3508,8 +3508,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e,
 				     0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25,
 				     0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f,
-				     0x6c, 0xed, 0x6a, 0x50, 0xd5, 0x84, 0xf6,
-				     0x4c },
+				     0x6c, 0xed, 0x6a, 0x50, 0x83, 0xf9, 0x22,
+				     0x24 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3536,7 +3536,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3548,7 +3548,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde,
 				     0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93,
 				     0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7,
 				     0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d,
@@ -3557,8 +3557,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12,
 				     0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60,
 				     0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7,
-				     0x0c, 0x61, 0x76, 0xdc, 0x55, 0x3f, 0x0f,
-				     0x03 },
+				     0x0c, 0x61, 0x76, 0xdc, 0xca, 0x21, 0x3e,
+				     0xd3 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
@@ -3585,7 +3585,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 					 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0,
 					 0x31, 0x5f, 0x3a, 0x15 },
 		.data_in =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f,
 				     0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88,
 				     0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb,
 				     0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f,
@@ -3597,7 +3597,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0xf9, 0xdd, 0xcc, 0x69 },
 		.in_len = 67,
 		.data_out =
-			(uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
+			(uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82,
 				     0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23,
 				     0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26,
 				     0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac,
@@ -3606,8 +3606,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = {
 				     0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e,
 				     0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25,
 				     0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f,
-				     0x6c, 0xed, 0x6a, 0x50, 0x03, 0x03, 0xb9,
-				     0xd5 },
+				     0x6c, 0xed, 0x6a, 0x50, 0x2b, 0x88, 0xcf,
+				     0x48 },
 		.sn_size = 18,
 		.hfn = 0x1,
 		.hfn_threshold = 0xfa558,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.126422591 +0100
+++ 0014-test-crypto-fix-PDCP-SDAP-test-vectors.patch	2023-07-14 23:33:08.507305494 +0100
@@ -1 +1 @@
-From 2c34aae94dd79be9ca81875c8b24ec3a1e897861 Mon Sep 17 00:00:00 2001
+From 3045f945a5c4f73c0975c77b2234ea31805b8082 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2c34aae94dd79be9ca81875c8b24ec3a1e897861 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'examples/fips_validation: fix digest length in AES-GCM' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (12 preceding siblings ...)
  2023-07-14 22:34         ` patch 'test/crypto: fix PDCP-SDAP test vectors' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'app/crypto-perf: fix socket ID default value' " luca.boccassi
                           ` (2 subsequent siblings)
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Samina Arshad; +Cc: Brian Dooley, Gowrishankar Muthukrishnan, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 9c69847ee4a2326aa11634f133d867c6e0270a88 Mon Sep 17 00:00:00 2001
From: Samina Arshad <samina.arshad@intel.com>
Date: Wed, 28 Jun 2023 14:38:36 +0000
Subject: [PATCH] examples/fips_validation: fix digest length in AES-GCM

[ upstream commit 94dfc563b620b2f04db7c59b6fdee458a9e1d481 ]

For AES GCM non JSON decrypt test cases the digest length
is being set incorrectly.The digest length is not being
cleared after test cases, causing an issue when running
tests individually without the --path-is-folder flag.
This fix adds the digest length correctly to the decrypt
cases and clears the digest length after each test file.

Fixes: 4aaad2995e13 ("examples/fips_validation: support GCM parsing")

Signed-off-by: Samina Arshad <samina.arshad@intel.com>
Acked-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
 examples/fips_validation/main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/examples/fips_validation/main.c b/examples/fips_validation/main.c
index f746812980..6b22a8633c 100644
--- a/examples/fips_validation/main.c
+++ b/examples/fips_validation/main.c
@@ -698,7 +698,7 @@ prepare_aead_op(void)
 			RTE_LOG(ERR, USER1, "Not enough memory\n");
 			return -ENOMEM;
 		}
-		env.digest_len = vec.cipher_auth.digest.len;
+		env.digest_len = vec.aead.digest.len;
 
 		sym->aead.data.length = vec.pt.len;
 		sym->aead.digest.data = env.digest;
@@ -707,7 +707,7 @@ prepare_aead_op(void)
 		ret = prepare_data_mbufs(&vec.ct);
 		if (ret < 0)
 			return ret;
-
+		env.digest_len = vec.aead.digest.len;
 		sym->aead.data.length = vec.ct.len;
 		sym->aead.digest.data = vec.aead.digest.val;
 		sym->aead.digest.phys_addr = rte_malloc_virt2iova(
@@ -1835,6 +1835,7 @@ error_one_case:
 	if (env.digest) {
 		rte_free(env.digest);
 		env.digest = NULL;
+		env.digest_len = 0;
 	}
 	if (env.mbuf)
 		rte_pktmbuf_free(env.mbuf);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.183172980 +0100
+++ 0015-examples-fips_validation-fix-digest-length-in-AES-GC.patch	2023-07-14 23:33:08.507305494 +0100
@@ -1 +1 @@
-From 94dfc563b620b2f04db7c59b6fdee458a9e1d481 Mon Sep 17 00:00:00 2001
+From 9c69847ee4a2326aa11634f133d867c6e0270a88 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 94dfc563b620b2f04db7c59b6fdee458a9e1d481 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 4237224d9d..6518c959c4 100644
+index f746812980..6b22a8633c 100644
@@ -27 +28 @@
-@@ -834,7 +834,7 @@ prepare_aead_op(void)
+@@ -698,7 +698,7 @@ prepare_aead_op(void)
@@ -36 +37 @@
-@@ -843,7 +843,7 @@ prepare_aead_op(void)
+@@ -707,7 +707,7 @@ prepare_aead_op(void)
@@ -45 +46 @@
-@@ -2618,6 +2618,7 @@ error_one_case:
+@@ -1835,6 +1835,7 @@ error_one_case:
@@ -51,2 +52,2 @@
- 	rte_pktmbuf_free(env.mbuf);
- 
+ 	if (env.mbuf)
+ 		rte_pktmbuf_free(env.mbuf);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'app/crypto-perf: fix socket ID default value' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (13 preceding siblings ...)
  2023-07-14 22:34         ` patch 'examples/fips_validation: fix digest length in AES-GCM' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'examples/ipsec-secgw: fix TAP default MAC address' " luca.boccassi
  2023-07-14 22:34         ` patch 'kni: fix build with Linux 6.5' " luca.boccassi
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Ciara Power; +Cc: Kai Ji, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From e8648ad62ae883017c79ba70755134441f799c99 Mon Sep 17 00:00:00 2001
From: Ciara Power <ciara.power@intel.com>
Date: Thu, 6 Jul 2023 10:51:51 +0000
Subject: [PATCH] app/crypto-perf: fix socket ID default value

[ upstream commit a23b5064d9d01079f5578b83151e03b1f6baa844 ]

Due to recent changes to the default device socket ID,
before being used as an index for session mempool list,
the socket ID should be set to 0 if unknown (-1).

Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by default")
Fixes: 64c469b9e7d8 ("app/crypto-perf: check range of socket id")

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Kai Ji <kai.ji@intel.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 app/test-crypto-perf/main.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
index 49af812d8b..972dd6c776 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
@@ -191,11 +191,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs)
 #endif
 
 		struct rte_cryptodev_info cdev_info;
-		uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
-		/* range check the socket_id - negative values become big
-		 * positive ones due to use of unsigned value
-		 */
-		if (socket_id >= RTE_MAX_NUMA_NODES)
+		int socket_id = rte_cryptodev_socket_id(cdev_id);
+
+		/* Use the first socket if SOCKET_ID_ANY is returned. */
+		if (socket_id == SOCKET_ID_ANY)
 			socket_id = 0;
 
 		rte_cryptodev_info_get(cdev_id, &cdev_info);
@@ -607,7 +606,11 @@ main(int argc, char **argv)
 
 		cdev_id = enabled_cdevs[cdev_index];
 
-		uint8_t socket_id = rte_cryptodev_socket_id(cdev_id);
+		int socket_id = rte_cryptodev_socket_id(cdev_id);
+
+		/* Use the first socket if SOCKET_ID_ANY is returned. */
+		if (socket_id == SOCKET_ID_ANY)
+			socket_id = 0;
 
 		ctx[i] = cperf_testmap[opts.test].constructor(
 				session_pool_socket[socket_id].sess_mp,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.236646958 +0100
+++ 0016-app-crypto-perf-fix-socket-ID-default-value.patch	2023-07-14 23:33:08.507305494 +0100
@@ -1 +1 @@
-From a23b5064d9d01079f5578b83151e03b1f6baa844 Mon Sep 17 00:00:00 2001
+From e8648ad62ae883017c79ba70755134441f799c99 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a23b5064d9d01079f5578b83151e03b1f6baa844 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index af5bd0d23b..bc1f0f9659 100644
+index 49af812d8b..972dd6c776 100644
@@ -25 +26 @@
-@@ -193,11 +193,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs)
+@@ -191,11 +191,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs)
@@ -41 +42 @@
-@@ -650,7 +649,11 @@ main(int argc, char **argv)
+@@ -607,7 +606,11 @@ main(int argc, char **argv)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'examples/ipsec-secgw: fix TAP default MAC address' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (14 preceding siblings ...)
  2023-07-14 22:34         ` patch 'app/crypto-perf: fix socket ID default value' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-14 22:34         ` patch 'kni: fix build with Linux 6.5' " luca.boccassi
  16 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 417608452001afed20ab54282e26dfe063e1b172 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Wed, 28 Jun 2023 19:12:35 +0000
Subject: [PATCH] examples/ipsec-secgw: fix TAP default MAC address

[ upstream commit 2d7a5922aecadb9eee7de7f314a6dee36f3b1aa3 ]

Default TAP mac address was changed in below commit.
Hence, updated IPsec test script to reflect changes.

Fixes: c3006be2acab ("net/tap: set locally administered bit for fixed MAC address")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 examples/ipsec-secgw/test/common_defs.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/ipsec-secgw/test/common_defs.sh b/examples/ipsec-secgw/test/common_defs.sh
index 3ef06bc761..6e04ffc1a6 100644
--- a/examples/ipsec-secgw/test/common_defs.sh
+++ b/examples/ipsec-secgw/test/common_defs.sh
@@ -26,7 +26,7 @@ fi
 
 LOCAL_IFACE=dtap0
 
-LOCAL_MAC="00:64:74:61:70:30"
+LOCAL_MAC="02:64:74:61:70:30"
 
 REMOTE_IPV4=192.168.31.14
 LOCAL_IPV4=192.168.31.92
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.292748461 +0100
+++ 0017-examples-ipsec-secgw-fix-TAP-default-MAC-address.patch	2023-07-14 23:33:08.507305494 +0100
@@ -1 +1 @@
-From 2d7a5922aecadb9eee7de7f314a6dee36f3b1aa3 Mon Sep 17 00:00:00 2001
+From 417608452001afed20ab54282e26dfe063e1b172 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2d7a5922aecadb9eee7de7f314a6dee36f3b1aa3 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'kni: fix build with Linux 6.5' has been queued to stable release 20.11.9
  2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
                           ` (15 preceding siblings ...)
  2023-07-14 22:34         ` patch 'examples/ipsec-secgw: fix TAP default MAC address' " luca.boccassi
@ 2023-07-14 22:34         ` luca.boccassi
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
  16 siblings, 1 reply; 113+ messages in thread
From: luca.boccassi @ 2023-07-14 22:34 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From b4075bea115a3e51d326439e91bca3b6ccf0483e Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Tue, 11 Jul 2023 11:09:41 +0100
Subject: [PATCH] kni: fix build with Linux 6.5

[ upstream commit dd33d53b9a032d7376aa04a28a1235338e1fd78f ]

The get_user_pages_remote() API has been modified in Linux kernel v6.5
[1], "struct vm_area_struct **vmas" parameter removed from the API.

To fix KNI build with Linux kernel v6.5, version check added around the
get_user_pages_remote() API.

[1]
ca5e863233e8 ("mm/gup: remove vmas parameter from get_user_pages_remote()")

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 kernel/linux/kni/compat.h  | 4 ++++
 kernel/linux/kni/kni_dev.h | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
index 7aa6cd9fca..8beb670465 100644
--- a/kernel/linux/kni/compat.h
+++ b/kernel/linux/kni/compat.h
@@ -151,3 +151,7 @@
 	 RHEL_RELEASE_VERSION(9, 1) <= RHEL_RELEASE_CODE))
 #define HAVE_NETIF_RX_NI
 #endif
+
+#if KERNEL_VERSION(6, 5, 0) > LINUX_VERSION_CODE
+#define HAVE_VMA_IN_GUP
+#endif
diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
index 6e64380d06..417c67b5ae 100644
--- a/kernel/linux/kni/kni_dev.h
+++ b/kernel/linux/kni/kni_dev.h
@@ -107,7 +107,11 @@ static inline phys_addr_t iova_to_phys(struct task_struct *tsk,
 #ifdef HAVE_TSK_IN_GUP
 	ret = get_user_pages_remote(tsk, tsk->mm, iova, 1, 0, &page, NULL, NULL);
 #else
+  #ifdef HAVE_VMA_IN_GUP
 	ret = get_user_pages_remote(tsk->mm, iova, 1, 0, &page, NULL, NULL);
+  #else
+	ret = get_user_pages_remote(tsk->mm, iova, 1, 0, &page, NULL);
+  #endif
 #endif
 	if (ret < 0)
 		return 0;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-14 23:33:09.333636763 +0100
+++ 0018-kni-fix-build-with-Linux-6.5.patch	2023-07-14 23:33:08.511305571 +0100
@@ -1 +1 @@
-From dd33d53b9a032d7376aa04a28a1235338e1fd78f Mon Sep 17 00:00:00 2001
+From b4075bea115a3e51d326439e91bca3b6ccf0483e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dd33d53b9a032d7376aa04a28a1235338e1fd78f ]
+
@@ -15,2 +16,0 @@
-Cc: stable@dpdk.org
-
@@ -36 +36 @@
-index 21bfb6890e..975379825b 100644
+index 6e64380d06..417c67b5ae 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: fix typos and wording in flow API guide' has been queued to stable release 20.11.9
  2023-07-14 22:34         ` patch 'kni: fix build with Linux 6.5' " luca.boccassi
@ 2023-07-20 10:58           ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/i40e: fix comments' " luca.boccassi
                               ` (7 more replies)
  0 siblings, 8 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Ali Alnubani; +Cc: John McNamara, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 4a803e9647df89258556fbffad8767d3784ef718 Mon Sep 17 00:00:00 2001
From: Ali Alnubani <alialnu@nvidia.com>
Date: Sun, 16 Jul 2023 09:58:26 +0300
Subject: [PATCH] doc: fix typos and wording in flow API guide

[ upstream commit d9f1751090ce1055a64f1d9a5f43758acae2c5ac ]

This fixes typos, punctuation and wording in the rte flow API guide.

Fixes: 2f82d143fb31 ("ethdev: add group jump action")

Signed-off-by: Ali Alnubani <alialnu@nvidia.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
---
 doc/guides/prog_guide/rte_flow.rst | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index 6ac00d424f..c5749e8257 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -117,14 +117,15 @@ Attribute: Group
 Flow rules can be grouped by assigning them a common group number. Groups
 allow a logical hierarchy of flow rule groups (tables) to be defined. These
 groups can be supported virtually in the PMD or in the physical device.
-Group 0 is the default group and this is the only group which flows are
-guarantee to matched against, all subsequent groups can only be reached by
-way of the JUMP action from a matched flow rule.
+Group 0 is the default group and is the only group that
+flows are guaranteed to be matched against.
+All subsequent groups can only be reached by using a JUMP action
+from a matched flow rule.
 
 Although optional, applications are encouraged to group similar rules as
 much as possible to fully take advantage of hardware capabilities
 (e.g. optimized matching) and work around limitations (e.g. a single pattern
-type possibly allowed in a given group), while being aware that the groups
+type possibly allowed in a given group), while being aware that the groups'
 hierarchies must be programmed explicitly.
 
 Note that support for more than a single group is not guaranteed.
@@ -139,7 +140,7 @@ Priority levels are arbitrary and up to the application, they do
 not need to be contiguous nor start from 0, however the maximum number
 varies between devices and may be affected by existing flow rules.
 
-A flow which matches multiple rules in the same group will always matched by
+A flow which matches multiple rules in the same group will always be matched by
 the rule with the highest priority in that group.
 
 If a packet is matched by several rules of a given group for a given
@@ -1610,12 +1611,12 @@ flow group/tables on the device, this action redirects the matched flow to
 the specified group on that device.
 
 If a matched flow is redirected to a table which doesn't contain a matching
-rule for that flow then the behavior is undefined and the resulting behavior
-is up to the specific device. Best practice when using groups would be define
+rule for that flow, then the behavior is undefined and the resulting behavior
+is up to the specific device. Best practice when using groups would be to define
 a default flow rule for each group which a defines the default actions in that
 group so a consistent behavior is defined.
 
-Defining an action for matched flow in a group to jump to a group which is
+Defining an action for a matched flow in a group to jump to a group which is
 higher in the group hierarchy may not be supported by physical devices,
 depending on how groups are mapped to the physical devices. In the
 definitions of jump actions, applications should be aware that it may be
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.286967027 +0100
+++ 0001-doc-fix-typos-and-wording-in-flow-API-guide.patch	2023-07-20 11:54:24.221504304 +0100
@@ -1 +1 @@
-From d9f1751090ce1055a64f1d9a5f43758acae2c5ac Mon Sep 17 00:00:00 2001
+From 4a803e9647df89258556fbffad8767d3784ef718 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d9f1751090ce1055a64f1d9a5f43758acae2c5ac ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 28d09c58d5..5bc998a433 100644
+index 6ac00d424f..c5749e8257 100644
@@ -21 +22 @@
-@@ -148,14 +148,15 @@ Attribute: Group
+@@ -117,14 +117,15 @@ Attribute: Group
@@ -41 +42 @@
-@@ -170,7 +171,7 @@ Priority levels are arbitrary and up to the application, they do
+@@ -139,7 +140,7 @@ Priority levels are arbitrary and up to the application, they do
@@ -50 +51 @@
-@@ -1769,12 +1770,12 @@ flow group/tables on the device, this action redirects the matched flow to
+@@ -1610,12 +1611,12 @@ flow group/tables on the device, this action redirects the matched flow to

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/i40e: fix comments' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/iavf: fix stop ordering' " luca.boccassi
                               ` (6 subsequent siblings)
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Jieqiang Wang; +Cc: Ruifeng Wang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 64157a7dac4f3d628e5c1554b9ae049d81216367 Mon Sep 17 00:00:00 2001
From: Jieqiang Wang <jieqiang.wang@arm.com>
Date: Wed, 12 Jul 2023 18:07:32 +0800
Subject: [PATCH] net/i40e: fix comments

[ upstream commit 5267a2ae78e873d3a7e175944dcedffdadab6483 ]

The limitation of burst size in i40e vector rx has been removed, but the
comment lines have not been updated to reflect the code changes. Remove
those lines to avoid confusion. Additionally, fix a typo in
i40e_tx_queue.

Fixes: 9e27f00f3a61 ("net/i40e: fix vector Rx")

Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 drivers/net/i40e/i40e_rxtx.h             | 2 +-
 drivers/net/i40e/i40e_rxtx_vec_altivec.c | 2 --
 drivers/net/i40e/i40e_rxtx_vec_neon.c    | 2 --
 drivers/net/i40e/i40e_rxtx_vec_sse.c     | 2 --
 4 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h
index 2786bdcff9..01ba91cdec 100644
--- a/drivers/net/i40e/i40e_rxtx.h
+++ b/drivers/net/i40e/i40e_rxtx.h
@@ -165,7 +165,7 @@ struct i40e_tx_queue {
 	bool q_set; /**< indicate if tx queue has been configured */
 	bool tx_deferred_start; /**< don't start this queue in dev start */
 	uint8_t dcb_tc;         /**< Traffic class of tx queue */
-	uint64_t offloads; /**< Tx offload flags of DEV_RX_OFFLOAD_* */
+	uint64_t offloads; /**< Tx offload flags of DEV_TX_OFFLOAD_* */
 	const struct rte_memzone *mz;
 };
 
diff --git a/drivers/net/i40e/i40e_rxtx_vec_altivec.c b/drivers/net/i40e/i40e_rxtx_vec_altivec.c
index b24f3963f4..4816959178 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_altivec.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_altivec.c
@@ -448,8 +448,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,
 
  /* Notice:
   * - nb_pkts < RTE_I40E_DESCS_PER_LOOP, just return no packet
-  * - nb_pkts > RTE_I40E_VPMD_RX_BURST, only scan RTE_I40E_VPMD_RX_BURST
-  *   numbers of DD bits
   */
 uint16_t
 i40e_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c
index 28bf046e88..f828937e00 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_neon.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c
@@ -447,8 +447,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq,
  /*
  * Notice:
  * - nb_pkts < RTE_I40E_DESCS_PER_LOOP, just return no packet
- * - nb_pkts > RTE_I40E_VPMD_RX_BURST, only scan RTE_I40E_VPMD_RX_BURST
- *   numbers of DD bits
  */
 uint16_t
 i40e_recv_pkts_vec(void *__rte_restrict rx_queue,
diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c
index a8aa5bc0cc..1478f994c9 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_sse.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c
@@ -595,8 +595,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,
  /*
  * Notice:
  * - nb_pkts < RTE_I40E_DESCS_PER_LOOP, just return no packet
- * - nb_pkts > RTE_I40E_VPMD_RX_BURST, only scan RTE_I40E_VPMD_RX_BURST
- *   numbers of DD bits
  */
 uint16_t
 i40e_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.326440927 +0100
+++ 0002-net-i40e-fix-comments.patch	2023-07-20 11:54:24.225504368 +0100
@@ -1 +1 @@
-From 5267a2ae78e873d3a7e175944dcedffdadab6483 Mon Sep 17 00:00:00 2001
+From 64157a7dac4f3d628e5c1554b9ae049d81216367 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5267a2ae78e873d3a7e175944dcedffdadab6483 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +17,0 @@
- .mailmap                                 | 1 +
@@ -22 +22 @@
- 5 files changed, 2 insertions(+), 7 deletions(-)
+ 4 files changed, 1 insertion(+), 7 deletions(-)
@@ -24,12 +23,0 @@
-diff --git a/.mailmap b/.mailmap
-index 6eccf0c555..670d312f84 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -628,6 +628,7 @@ Jie Liu <jie2.liu@hxt-semitech.com>
- Jie Pan <panjie5@jd.com>
- Jie Wang <jie1x.wang@intel.com>
- Jie Zhou <jizh@linux.microsoft.com> <jizh@microsoft.com>
-+Jieqiang Wang <jieqiang.wang@arm.com>
- Jijiang Liu <jijiang.liu@intel.com>
- Jilei Chen <chenjilei@cmss.chinamobile.com>
- Jim Harris <james.r.harris@intel.com>
@@ -37 +25 @@
-index 0376c219be..a8686224e5 100644
+index 2786bdcff9..01ba91cdec 100644
@@ -40 +28 @@
-@@ -169,7 +169,7 @@ struct i40e_tx_queue {
+@@ -165,7 +165,7 @@ struct i40e_tx_queue {
@@ -44,2 +32,2 @@
--	uint64_t offloads; /**< Tx offload flags of RTE_ETH_RX_OFFLOAD_* */
-+	uint64_t offloads; /**< Tx offload flags of RTE_ETH_TX_OFFLOAD_* */
+-	uint64_t offloads; /**< Tx offload flags of DEV_RX_OFFLOAD_* */
++	uint64_t offloads; /**< Tx offload flags of DEV_TX_OFFLOAD_* */
@@ -50 +38 @@
-index 8672ad1c41..4cd78f4e58 100644
+index b24f3963f4..4816959178 100644
@@ -53 +41 @@
-@@ -449,8 +449,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+@@ -448,8 +448,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,
@@ -63 +51 @@
-index 49391fe4c7..d873e30972 100644
+index 28bf046e88..f828937e00 100644
@@ -66 +54 @@
-@@ -574,8 +574,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq,
+@@ -447,8 +447,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *__rte_restrict rxq,
@@ -76 +64 @@
-index baf83cb3df..b94c37cbb8 100644
+index a8aa5bc0cc..1478f994c9 100644
@@ -79 +67 @@
-@@ -596,8 +596,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+@@ -595,8 +595,6 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/iavf: fix stop ordering' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
  2023-07-20 10:58             ` patch 'net/i40e: fix comments' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'common/iavf: fix MAC type for 710 NIC' " luca.boccassi
                               ` (5 subsequent siblings)
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Zhichao Zeng; +Cc: Bartosz Staszewski, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 566d11fdc503b961109423c07973347ba7ce9bce Mon Sep 17 00:00:00 2001
From: Zhichao Zeng <zhichaox.zeng@intel.com>
Date: Wed, 12 Jul 2023 13:35:37 +0800
Subject: [PATCH] net/iavf: fix stop ordering

[ upstream commit 87b2afdea3aae6095aa80956ae2e15f602594185 ]

The current implementation stops queue before disabling the Rx interrupt,
and when there are still unprocessed packets remaining in the queue,
this may cause the Rx ring to timeout, leading to IOMMU fault.

This patch disables the Rx interrupt before stopping the queue, ensuring
that no packets received when disabling the queues.

Fixes: 02d212ca3125 ("net/iavf: rename remaining avf strings")

Signed-off-by: Bartosz Staszewski <bartoszx.staszewski@intel.com>
Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index ddd877724a..127d79318d 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -756,8 +756,6 @@ iavf_dev_stop(struct rte_eth_dev *dev)
 	if (adapter->stopped == 1)
 		return 0;
 
-	iavf_stop_queues(dev);
-
 	/* Disable the interrupt for Rx */
 	rte_intr_efd_disable(intr_handle);
 	/* Rx interrupt vector mapping free */
@@ -773,6 +771,8 @@ iavf_dev_stop(struct rte_eth_dev *dev)
 	iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, vf->mc_addrs_num,
 				  false);
 
+	iavf_stop_queues(dev);
+
 	adapter->stopped = 1;
 	dev->data->dev_started = 0;
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.365898201 +0100
+++ 0003-net-iavf-fix-stop-ordering.patch	2023-07-20 11:54:24.229504431 +0100
@@ -1 +1 @@
-From 87b2afdea3aae6095aa80956ae2e15f602594185 Mon Sep 17 00:00:00 2001
+From 566d11fdc503b961109423c07973347ba7ce9bce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 87b2afdea3aae6095aa80956ae2e15f602594185 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -20 +20,0 @@
- .mailmap                       | 1 +
@@ -22 +22 @@
- 2 files changed, 3 insertions(+), 2 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
@@ -24,12 +23,0 @@
-diff --git a/.mailmap b/.mailmap
-index 670d312f84..9ce554451b 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -151,6 +151,7 @@ Bao-Long Tran <longtb5@viettel.com.vn>
- Bar Neuman <bneuman@nvidia.com>
- Barak Enat <barak@saguna.net>
- Barry Cao <barry.cao@nxp.com>
-+Bartosz Staszewski <bartoszx.staszewski@intel.com>
- Baruch Siach <baruch@tkos.co.il>
- Bassam Zaid AlKilani <bzalkilani@nvidia.com>
- Beilei Xing <beilei.xing@intel.com>
@@ -37 +25 @@
-index ac7154d720..f2fc5a5621 100644
+index ddd877724a..127d79318d 100644
@@ -40 +28 @@
-@@ -1087,8 +1087,6 @@ iavf_dev_stop(struct rte_eth_dev *dev)
+@@ -756,8 +756,6 @@ iavf_dev_stop(struct rte_eth_dev *dev)
@@ -49 +37 @@
-@@ -1101,6 +1099,8 @@ iavf_dev_stop(struct rte_eth_dev *dev)
+@@ -773,6 +771,8 @@ iavf_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'common/iavf: fix MAC type for 710 NIC' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
  2023-07-20 10:58             ` patch 'net/i40e: fix comments' " luca.boccassi
  2023-07-20 10:58             ` patch 'net/iavf: fix stop ordering' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/ixgbe: fix Rx and Tx queue status' " luca.boccassi
                               ` (4 subsequent siblings)
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Wenjing Qiao; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From ca44ae44929e414cfb93763a98b6708d47d580e4 Mon Sep 17 00:00:00 2001
From: Wenjing Qiao <wenjing.qiao@intel.com>
Date: Wed, 12 Jul 2023 07:38:13 +0000
Subject: [PATCH] common/iavf: fix MAC type for 710 NIC

[ upstream commit 03b7b90ac2bbda4eb0366898dd4284fb88310734 ]

Fix MAC type according to PCI ID list.

Fixes: eb385183edac ("net/iavf/base: update device IDs")

Signed-off-by: Wenjing Qiao <wenjing.qiao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/common/iavf/iavf_common.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/common/iavf/iavf_common.c b/drivers/common/iavf/iavf_common.c
index c951b7d787..999e045610 100644
--- a/drivers/common/iavf/iavf_common.c
+++ b/drivers/common/iavf/iavf_common.c
@@ -27,6 +27,8 @@ enum iavf_status iavf_set_mac_type(struct iavf_hw *hw)
 			break;
 		case IAVF_DEV_ID_VF:
 		case IAVF_DEV_ID_VF_HV:
+			hw->mac.type = IAVF_MAC_XL710;
+			break;
 		case IAVF_DEV_ID_ADAPTIVE_VF:
 			hw->mac.type = IAVF_MAC_VF;
 			break;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.405620319 +0100
+++ 0004-common-iavf-fix-MAC-type-for-710-NIC.patch	2023-07-20 11:54:24.229504431 +0100
@@ -1 +1 @@
-From 03b7b90ac2bbda4eb0366898dd4284fb88310734 Mon Sep 17 00:00:00 2001
+From ca44ae44929e414cfb93763a98b6708d47d580e4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 03b7b90ac2bbda4eb0366898dd4284fb88310734 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 855a0ab2f5..dc7662bc1b 100644
+index c951b7d787..999e045610 100644

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/ixgbe: fix Rx and Tx queue status' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
                               ` (2 preceding siblings ...)
  2023-07-20 10:58             ` patch 'common/iavf: fix MAC type for 710 NIC' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/igc: " luca.boccassi
                               ` (3 subsequent siblings)
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Jie Hai, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 038799f4741b7b99970f384a77faffe28073d02d Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 12 Jul 2023 08:31:51 +0000
Subject: [PATCH] net/ixgbe: fix Rx and Tx queue status

[ upstream commit 4a8490075692c32797be4280aea33772a5865038 ]

Ixgbevf driver don't enable queue start/stop functions, queue status is not
updated when the HW queue enabled or disabled. It caused application can't
get correct queue status.
This patch fixes the issue by updating the queue states when the queue is
disabled or enabled.

Fixes: 429c6d86b371 ("ixgbe: prepare for vector pmd")
Fixes: f0c50e5f56fa ("ixgbe: move PMD specific fields out of base driver")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 7414384493..7588bb2cb9 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -3368,6 +3368,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
 		if (txq != NULL) {
 			txq->ops->release_mbufs(txq);
 			txq->ops->reset(txq);
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 
@@ -3377,6 +3378,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
 		if (rxq != NULL) {
 			ixgbe_rx_queue_release_mbufs(rxq);
 			ixgbe_reset_rx_queue(adapter, rxq);
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 	/* If loopback mode was enabled, reconfigure the link accordingly */
@@ -5816,6 +5818,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
 		} while (--poll_ms && !(txdctl & IXGBE_TXDCTL_ENABLE));
 		if (!poll_ms)
 			PMD_INIT_LOG(ERR, "Could not enable Tx Queue %d", i);
+		else
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
 
@@ -5833,6 +5837,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
 		} while (--poll_ms && !(rxdctl & IXGBE_RXDCTL_ENABLE));
 		if (!poll_ms)
 			PMD_INIT_LOG(ERR, "Could not enable Rx Queue %d", i);
+		else
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 		rte_wmb();
 		IXGBE_WRITE_REG(hw, IXGBE_VFRDT(i), rxq->nb_rx_desc - 1);
 
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.444640951 +0100
+++ 0005-net-ixgbe-fix-Rx-and-Tx-queue-status.patch	2023-07-20 11:54:24.237504558 +0100
@@ -1 +1 @@
-From 4a8490075692c32797be4280aea33772a5865038 Mon Sep 17 00:00:00 2001
+From 038799f4741b7b99970f384a77faffe28073d02d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a8490075692c32797be4280aea33772a5865038 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 61f17cd90b..954ef241a0 100644
+index 7414384493..7588bb2cb9 100644
@@ -27 +28 @@
-@@ -3378,6 +3378,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -3368,6 +3368,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
@@ -35 +36 @@
-@@ -3387,6 +3388,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -3377,6 +3378,7 @@ ixgbe_dev_clear_queues(struct rte_eth_dev *dev)
@@ -43 +44 @@
-@@ -5896,6 +5898,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
+@@ -5816,6 +5818,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
@@ -52 +53 @@
-@@ -5913,6 +5917,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
+@@ -5833,6 +5837,8 @@ ixgbevf_dev_rxtx_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/igc: fix Rx and Tx queue status' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
                               ` (3 preceding siblings ...)
  2023-07-20 10:58             ` patch 'net/ixgbe: fix Rx and Tx queue status' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/e1000: " luca.boccassi
                               ` (2 subsequent siblings)
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Mingjin Ye, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 2091a78c0404ed4e5464559bb2a73978a30ca544 Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 12 Jul 2023 08:31:52 +0000
Subject: [PATCH] net/igc: fix Rx and Tx queue status

[ upstream commit 921ff14280ed8ba7b9d0a898046cf5eadf3d4c8e ]

Igc driver don't enable queue start/stop functions, queue status is not
updated when the HW queue enabled or disabled. It caused application can't
get correct queue status.
This patch fixes the issue by updating the queue states when the queue is
disabled or enabled.

Fixes: a5aeb2b9e225 ("net/igc: support Rx and Tx")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/igc/igc_txrx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/igc/igc_txrx.c b/drivers/net/igc/igc_txrx.c
index 6c3d207a69..114aa7f0dc 100644
--- a/drivers/net/igc/igc_txrx.c
+++ b/drivers/net/igc/igc_txrx.c
@@ -1308,6 +1308,7 @@ igc_rx_init(struct rte_eth_dev *dev)
 			dvmolr |= IGC_DVMOLR_STRCRC;
 
 		IGC_WRITE_REG(hw, IGC_DVMOLR(rxq->reg_idx), dvmolr);
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 
 	return 0;
@@ -1951,6 +1952,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
 		if (txq != NULL) {
 			igc_tx_queue_release_mbufs(txq);
 			igc_reset_tx_queue(txq);
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 
@@ -1959,6 +1961,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
 		if (rxq != NULL) {
 			igc_rx_queue_release_mbufs(rxq);
 			igc_reset_rx_queue(rxq);
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 }
@@ -2204,6 +2207,7 @@ igc_tx_init(struct rte_eth_dev *dev)
 				IGC_TXDCTL_WTHRESH_MSK;
 		txdctl |= IGC_TXDCTL_QUEUE_ENABLE;
 		IGC_WRITE_REG(hw, IGC_TXDCTL(txq->reg_idx), txdctl);
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 
 	igc_config_collision_dist(hw);
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.487008559 +0100
+++ 0006-net-igc-fix-Rx-and-Tx-queue-status.patch	2023-07-20 11:54:24.241504623 +0100
@@ -1 +1 @@
-From 921ff14280ed8ba7b9d0a898046cf5eadf3d4c8e Mon Sep 17 00:00:00 2001
+From 2091a78c0404ed4e5464559bb2a73978a30ca544 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 921ff14280ed8ba7b9d0a898046cf5eadf3d4c8e ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index c11b6f7f25..5c60e3e997 100644
+index 6c3d207a69..114aa7f0dc 100644
@@ -26 +27 @@
-@@ -1215,6 +1215,7 @@ igc_rx_init(struct rte_eth_dev *dev)
+@@ -1308,6 +1308,7 @@ igc_rx_init(struct rte_eth_dev *dev)
@@ -34 +35 @@
-@@ -1888,6 +1889,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -1951,6 +1952,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
@@ -42 +43 @@
-@@ -1896,6 +1898,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -1959,6 +1961,7 @@ igc_dev_clear_queues(struct rte_eth_dev *dev)
@@ -50 +51 @@
-@@ -2143,6 +2146,7 @@ igc_tx_init(struct rte_eth_dev *dev)
+@@ -2204,6 +2207,7 @@ igc_tx_init(struct rte_eth_dev *dev)
@@ -57 +58 @@
- 	if (offloads & RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP) {
+ 	igc_config_collision_dist(hw);

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/e1000: fix Rx and Tx queue status' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
                               ` (4 preceding siblings ...)
  2023-07-20 10:58             ` patch 'net/igc: " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'net/mlx5: fix LRO TCP checksum' " luca.boccassi
  2023-07-20 10:58             ` patch 'doc: update BIOS settings and supported HW for NTB' " luca.boccassi
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Mingjin Ye, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 32e5493917bc105a6b71223900c7b0e0e3a5810f Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 12 Jul 2023 08:31:53 +0000
Subject: [PATCH] net/e1000: fix Rx and Tx queue status

[ upstream commit b2a0271188f3428ad5dc1ea600e1e2254b9d6781 ]

Igb driver don't enable queue start/stop functions, queue status is not
updated when the HW queue enabled or disabled. It caused application can't
get correct queue status.
This patch fixes the issue by updating the queue states when the queue is
disabled or enabled.

Fixes: be2d648a2dd3 ("igb: add PF support")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/e1000/igb_rxtx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index 2c8b1a0c8c..a655279d9e 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -1872,6 +1872,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
 		if (txq != NULL) {
 			igb_tx_queue_release_mbufs(txq);
 			igb_reset_tx_queue(txq, dev);
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 
@@ -1880,6 +1881,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
 		if (rxq != NULL) {
 			igb_rx_queue_release_mbufs(rxq);
 			igb_reset_rx_queue(rxq);
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 }
@@ -2461,6 +2463,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev)
 		rxdctl |= ((rxq->hthresh & 0x1F) << 8);
 		rxdctl |= ((rxq->wthresh & 0x1F) << 16);
 		E1000_WRITE_REG(hw, E1000_RXDCTL(rxq->reg_idx), rxdctl);
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 
 	if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_SCATTER) {
@@ -2625,6 +2628,7 @@ eth_igb_tx_init(struct rte_eth_dev *dev)
 		txdctl |= ((txq->wthresh & 0x1F) << 16);
 		txdctl |= E1000_TXDCTL_QUEUE_ENABLE;
 		E1000_WRITE_REG(hw, E1000_TXDCTL(txq->reg_idx), txdctl);
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 
 	/* Program the Transmit Control Register. */
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.526537556 +0100
+++ 0007-net-e1000-fix-Rx-and-Tx-queue-status.patch	2023-07-20 11:54:24.245504686 +0100
@@ -1 +1 @@
-From b2a0271188f3428ad5dc1ea600e1e2254b9d6781 Mon Sep 17 00:00:00 2001
+From 32e5493917bc105a6b71223900c7b0e0e3a5810f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b2a0271188f3428ad5dc1ea600e1e2254b9d6781 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 25ad9eb4e5..61c6394310 100644
+index 2c8b1a0c8c..a655279d9e 100644
@@ -26 +27 @@
-@@ -1854,6 +1854,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -1872,6 +1872,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
@@ -34 +35 @@
-@@ -1862,6 +1863,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
+@@ -1880,6 +1881,7 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
@@ -42 +43 @@
-@@ -2442,6 +2444,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev)
+@@ -2461,6 +2463,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev)
@@ -49,2 +50,2 @@
- 	if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_SCATTER) {
-@@ -2606,6 +2609,7 @@ eth_igb_tx_init(struct rte_eth_dev *dev)
+ 	if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_SCATTER) {
+@@ -2625,6 +2628,7 @@ eth_igb_tx_init(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'net/mlx5: fix LRO TCP checksum' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
                               ` (5 preceding siblings ...)
  2023-07-20 10:58             ` patch 'net/e1000: " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  2023-07-20 10:58             ` patch 'doc: update BIOS settings and supported HW for NTB' " luca.boccassi
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Heng Jiang; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 09c57bff240fa74e6ac389516dce60f4da998b97 Mon Sep 17 00:00:00 2001
From: Heng Jiang <jiangheng14@huawei.com>
Date: Tue, 18 Jul 2023 11:56:13 +0300
Subject: [PATCH] net/mlx5: fix LRO TCP checksum

[ upstream commit 776209c4b865ad3e0eaff202c5ff7358b8f5ab57 ]

The variable csum is the sum of three 16 bits integers, the max value
is 0x2FFFD. The corner case of sum of 3 is 0x1FFFF gives the wrong
result: 0x1 + 0xFFFF = 0x10000, the upper 16 bits are not 0.
It must be folded again to ensure that the upper 16 bits are 0.

Fixes: e4c2a16eb1de ("net/mlx5: handle LRO packets in Rx queue")

Signed-off-by: Heng Jiang <jiangheng14@huawei.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index c8f24dd4ef..ed22612737 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -1620,6 +1620,7 @@ mlx5_lro_update_tcp_hdr(struct rte_tcp_hdr *__rte_restrict tcp,
 	tcp->cksum = 0;
 	csum += rte_raw_cksum(tcp, (tcp->data_off >> 4) * 4);
 	csum = ((csum & 0xffff0000) >> 16) + (csum & 0xffff);
+	csum = ((csum & 0xffff0000) >> 16) + (csum & 0xffff);
 	csum = (~csum) & 0xffff;
 	if (csum == 0)
 		csum = 0xffff;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.566507997 +0100
+++ 0008-net-mlx5-fix-LRO-TCP-checksum.patch	2023-07-20 11:54:24.249504750 +0100
@@ -1 +1 @@
-From 776209c4b865ad3e0eaff202c5ff7358b8f5ab57 Mon Sep 17 00:00:00 2001
+From 09c57bff240fa74e6ac389516dce60f4da998b97 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 776209c4b865ad3e0eaff202c5ff7358b8f5ab57 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17,3 +18,2 @@
- .mailmap                   | 1 +
- drivers/net/mlx5/mlx5_rx.c | 1 +
- 2 files changed, 2 insertions(+)
+ drivers/net/mlx5/mlx5_rxtx.c | 1 +
+ 1 file changed, 1 insertion(+)
@@ -21,17 +21,5 @@
-diff --git a/.mailmap b/.mailmap
-index 9ce554451b..864d33ee46 100644
---- a/.mailmap
-+++ b/.mailmap
-@@ -496,6 +496,7 @@ Helin Zhang <helin.zhang@intel.com>
- Hemant Agrawal <hemant.agrawal@nxp.com> <hemant@freescale.com>
- Heng Ding <hengx.ding@intel.com>
- Hengjian Zhang <hengjianx.zhang@intel.com>
-+Heng Jiang <jiangheng14@huawei.com>
- Heng Wang <heng.wang@ericsson.com>
- Henning Schild <henning.schild@siemens.com>
- Henry Cai <caihe@huawei.com>
-diff --git a/drivers/net/mlx5/mlx5_rx.c b/drivers/net/mlx5/mlx5_rx.c
-index 71c4638251..392784050f 100644
---- a/drivers/net/mlx5/mlx5_rx.c
-+++ b/drivers/net/mlx5/mlx5_rx.c
-@@ -1090,6 +1090,7 @@ mlx5_lro_update_tcp_hdr(struct rte_tcp_hdr *__rte_restrict tcp,
+diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
+index c8f24dd4ef..ed22612737 100644
+--- a/drivers/net/mlx5/mlx5_rxtx.c
++++ b/drivers/net/mlx5/mlx5_rxtx.c
+@@ -1620,6 +1620,7 @@ mlx5_lro_update_tcp_hdr(struct rte_tcp_hdr *__rte_restrict tcp,

^ permalink raw reply	[flat|nested] 113+ messages in thread

* patch 'doc: update BIOS settings and supported HW for NTB' has been queued to stable release 20.11.9
  2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
                               ` (6 preceding siblings ...)
  2023-07-20 10:58             ` patch 'net/mlx5: fix LRO TCP checksum' " luca.boccassi
@ 2023-07-20 10:58             ` luca.boccassi
  7 siblings, 0 replies; 113+ messages in thread
From: luca.boccassi @ 2023-07-20 10:58 UTC (permalink / raw)
  To: Junfeng Guo; +Cc: Jingjing Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 20.11.9

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

Thanks.

Luca Boccassi

---
From 246c48341380e4dc4f1074ecdc9c3153feb02bb7 Mon Sep 17 00:00:00 2001
From: Junfeng Guo <junfeng.guo@intel.com>
Date: Mon, 3 Jul 2023 17:24:34 +0800
Subject: [PATCH] doc: update BIOS settings and supported HW for NTB

[ upstream commit 00e57b0e550b7df2047e6d0bde8965c7ae17d203 ]

Update BIOS settings and supported platform list for Intel NTB.

Fixes: f5057be340e4 ("raw/ntb: support Intel Ice Lake")

Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
---
 doc/guides/rawdevs/ntb.rst | 36 +++++++++++++++++++++++-------------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/doc/guides/rawdevs/ntb.rst b/doc/guides/rawdevs/ntb.rst
index 2bb115d13f..f8befc6594 100644
--- a/doc/guides/rawdevs/ntb.rst
+++ b/doc/guides/rawdevs/ntb.rst
@@ -1,6 +1,8 @@
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2018 Intel Corporation.
 
+.. include:: <isonum.txt>
+
 NTB Rawdev Driver
 =================
 
@@ -17,19 +19,23 @@ some information by using scratchpad registers.
 BIOS setting on Intel Xeon
 --------------------------
 
-Intel Non-transparent Bridge needs special BIOS setting. The reference for
-Skylake is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf
-
-- Set the needed PCIe port as NTB to NTB mode on both hosts.
-- Enable NTB bars and set bar size of bar 23 and bar 45 as 12-29 (4K-512M)
-  on both hosts (for Ice Lake, bar size can be set as 12-51, namely 4K-128PB).
-  Note that bar size on both hosts should be the same.
-- Disable split bars for both hosts.
-- Set crosslink control override as DSD/USP on one host, USD/DSP on
-  another host.
-- Disable PCIe PII SSC (Spread Spectrum Clocking) for both hosts. This
-  is a hardware requirement.
+Intel Non-transparent Bridge (NTB) needs special BIOS settings on both systems.
+Note that for 4th Generation Intel\ |reg| Xeon\ |reg| Scalable Processors,
+option ``Port Subsystem Mode`` should be changed from ``Gen5`` to ``Gen4 Only``,
+then reboot.
 
+- Set ``Non-Transparent Bridge PCIe Port Definition`` for needed PCIe ports
+  as ``NTB to NTB`` mode, on both hosts.
+- Set ``Enable NTB BARs`` as ``Enabled``, on both hosts.
+- Set ``Enable SPLIT BARs`` as ``Disabled``, on both hosts.
+- Set ``Imbar1 Size``, ``Imbar2 Size``, ``Embar1 Size`` and ``Embar2 Size``,
+  as 12-29 (i.e., 4K-512M) for 2nd Generation Intel\ |reg| Xeon\ |reg| Scalable Processors;
+  as 12-51 (i.e., 4K-128PB) for 3rd and 4th Generation Intel\ |reg| Xeon\ |reg| Scalable Processors.
+  Note that those bar sizes on both hosts should be the same.
+- Set ``Crosslink Control override`` as ``DSD/USP`` on one host,
+  ``USD/DSP`` on another host.
+- Set ``PCIe PLL SSC (Spread Spectrum Clocking)`` as ``Disabled``, on both hosts.
+  This is a hardware requirement when using Re-timer Cards.
 
 Device Setup
 ------------
@@ -145,4 +151,8 @@ like the following:
 Limitation
 ----------
 
-- This PMD only supports Intel Skylake and Ice Lake platforms.
+This PMD is only supported on Intel Xeon Platforms:
+
+- 4th Generation Intel® Xeon® Scalable Processors.
+- 3rd Generation Intel® Xeon® Scalable Processors.
+- 2nd Generation Intel® Xeon® Scalable Processors.
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-07-20 11:54:24.606634726 +0100
+++ 0009-doc-update-BIOS-settings-and-supported-HW-for-NTB.patch	2023-07-20 11:54:24.253504813 +0100
@@ -1 +1 @@
-From 00e57b0e550b7df2047e6d0bde8965c7ae17d203 Mon Sep 17 00:00:00 2001
+From 246c48341380e4dc4f1074ecdc9c3153feb02bb7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 00e57b0e550b7df2047e6d0bde8965c7ae17d203 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 113+ messages in thread

end of thread, other threads:[~2023-07-20 10:59 UTC | newest]

Thread overview: 113+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-15  1:31 patch 'kni: fix build with Linux 6.3' has been queued to stable release 20.11.9 luca.boccassi
2023-06-15  1:31 ` patch 'examples/ip_pipeline: fix build with GCC 13' " luca.boccassi
2023-06-15  1:31 ` patch 'examples/ntb: " luca.boccassi
2023-06-15  1:31 ` patch 'ring: fix use after free' " luca.boccassi
2023-06-15  1:32 ` patch 'vfio: fix include with musl runtime' " luca.boccassi
2023-06-15  1:32 ` patch 'kernel/freebsd: fix function parameter list' " luca.boccassi
2023-06-15  1:32 ` patch 'build: fix case of project language name' " luca.boccassi
2023-06-15  1:32 ` patch 'telemetry: fix autotest on Alpine' " luca.boccassi
2023-06-15  1:32 ` patch 'test/malloc: fix missing free' " luca.boccassi
2023-06-15  1:32 ` patch 'test/malloc: fix statistics checks' " luca.boccassi
2023-06-15  1:32 ` patch 'eal: avoid calling cleanup twice' " luca.boccassi
2023-06-15  1:32 ` patch 'pci: fix comment referencing renamed function' " luca.boccassi
2023-06-15  1:32 ` patch 'eal/x86: improve multiple of 64 bytes memcpy performance' " luca.boccassi
2023-06-15  1:32 ` patch 'eventdev/timer: fix timeout event wait behavior' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: fix event timer adapter guide' " luca.boccassi
2023-06-15  1:32 ` patch 'event/dsw: free rings on close' " luca.boccassi
2023-06-15  1:32 ` patch 'eventdev/timer: fix buffer flush' " luca.boccassi
2023-06-15  1:32 ` patch 'eal/linux: fix secondary process crash for mp hotplug' " luca.boccassi
2023-06-15  1:32 ` patch 'eal/linux: fix legacy mem init with many segments' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix build warning' " luca.boccassi
2023-06-15  1:32 ` patch 'net/tap: set locally administered bit for fixed MAC address' " luca.boccassi
2023-06-15  1:32 ` patch 'net/dpaa2: fix checksum good flags' " luca.boccassi
2023-06-15  1:32 ` patch 'app/testpmd: fix GTP L2 length in checksum engine' " luca.boccassi
2023-06-15  1:32 ` patch 'net/vmxnet3: fix drop of empty segments in Tx' " luca.boccassi
2023-06-15  1:32 ` patch 'net/txgbe: fix use-after-free on remove' " luca.boccassi
2023-06-15  1:32 ` patch 'ethdev: fix MAC address occupies two entries' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix variable type mismatch' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix Rx multiple firmware reset interrupts' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode for 200G ports' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix FEC mode check' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: fix format in flow API guide' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started during reset' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix mbuf leakage when RxQ started after " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix device start return value' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix uninitialized variable' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix inaccurate log' " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix redundant line break in " luca.boccassi
2023-06-15  1:32 ` patch 'net/hns3: fix IMP reset trigger' " luca.boccassi
2023-06-15  1:32 ` patch 'net/nfp: fix offloading flows' " luca.boccassi
2023-06-15  1:32 ` patch 'net/vmxnet3: fix return code in initializing' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: fix auth algos in cryptoperf app' " luca.boccassi
2023-06-15  1:32 ` patch 'crypto/scheduler: fix last element for valid args' " luca.boccassi
2023-06-15  1:32 ` patch 'test/crypto: fix session creation check' " luca.boccassi
2023-06-15  1:32 ` patch 'vhost: fix invalid call FD handling' " luca.boccassi
2023-06-15  1:32 ` patch 'net/virtio: fix initialization to return negative errno' " luca.boccassi
2023-06-15  1:32 ` patch 'net/virtio-user: fix leak when initialisation fails' " luca.boccassi
2023-06-15  1:32 ` patch 'net/mlx5: enhance error log for tunnel offloading' " luca.boccassi
2023-06-15  1:32 ` patch 'net/mlx5: fix duplicated tag index matching in SWS' " luca.boccassi
2023-06-15  1:32 ` patch 'net/qede: fix RSS indirection table initialization' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: fix typo in cnxk platform guide' " luca.boccassi
2023-06-15  1:32 ` patch 'net/i40e: fix Rx data buffer size' " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice: " luca.boccassi
2023-06-15  1:32 ` patch 'net/iavf: " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice: fix statistics' " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice: fix DCF RSS initialization' " luca.boccassi
2023-06-15  1:32 ` patch 'net/iavf: release large VF when closing device' " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice: fix DCF control thread crash' " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice/base: remove unreachable code' " luca.boccassi
2023-06-15  1:32 ` patch 'net/ice: fix outer UDP checksum offload' " luca.boccassi
2023-06-15  1:32 ` patch 'net/iavf: fix virtchnl command called in interrupt' " luca.boccassi
2023-06-15  1:32 ` patch 'test/mbuf: fix crash in a forked process' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: fix typo in graph guide' " luca.boccassi
2023-06-15  1:32 ` patch 'doc: remove warning with Doxygen 1.9.7' " luca.boccassi
2023-06-28 14:10   ` patch 'examples/l2fwd-cat: fix external build' " luca.boccassi
2023-06-28 14:10     ` patch 'test: add graph tests' " luca.boccassi
2023-06-28 14:55       ` David Marchand
2023-06-28 14:10     ` patch 'mbuf: fix Doxygen comment of distributor metadata' " luca.boccassi
2023-06-28 14:10     ` patch 'crypto/openssl: skip workaround at compilation time' " luca.boccassi
2023-06-28 14:10     ` patch 'ethdev: update documentation for API to set FEC' " luca.boccassi
2023-06-28 14:10     ` patch 'ethdev: check that at least one FEC mode is specified' " luca.boccassi
2023-06-28 14:10     ` patch 'ethdev: update documentation for API to get FEC' " luca.boccassi
2023-06-28 14:10     ` patch 'net/bonding: fix startup when NUMA is not supported' " luca.boccassi
2023-06-28 14:10     ` patch 'net/bonding: fix destroy dedicated queues flow' " luca.boccassi
2023-06-28 14:10     ` patch 'net/txgbe/base: fix Tx with fiber hotplug' " luca.boccassi
2023-06-28 14:10     ` patch 'net/txgbe: fix to set autoneg for 1G speed' " luca.boccassi
2023-06-28 14:10     ` patch 'net/txgbe: fix extended statistics' " luca.boccassi
2023-06-28 14:10     ` patch 'net/nfp: fix address always related with PF ID 0' " luca.boccassi
2023-06-28 14:10     ` patch 'common/sfc_efx/base: fix Rx queue without RSS hash prefix' " luca.boccassi
2023-06-28 14:10     ` patch 'net/ice: fix tunnel packet Tx descriptor' " luca.boccassi
2023-06-28 14:10     ` patch 'net/ixgbe: add proper memory barriers in Rx' " luca.boccassi
2023-06-28 14:10     ` patch 'net/iavf: fix abnormal disable HW interrupt' " luca.boccassi
2023-06-28 14:10     ` patch 'net/i40e: fix tunnel packet Tx descriptor' " luca.boccassi
2023-06-28 14:10     ` patch 'net/e1000: fix queue number initialization' " luca.boccassi
2023-06-28 14:10     ` patch 'net/mlx5: fix risk in NEON Rx descriptor read' " luca.boccassi
2023-06-28 14:10     ` patch 'net/mlx5: fix device removal event handling' " luca.boccassi
2023-06-28 14:10     ` patch 'common/mlx5: adjust fork call with new kernel API' " luca.boccassi
2023-07-14 22:34       ` patch 'ipc: fix file descriptor leakage with unhandled messages' " luca.boccassi
2023-07-14 22:34         ` patch 'fib: fix adding default route' " luca.boccassi
2023-07-14 22:34         ` patch 'mem: fix memsegs exhausted message' " luca.boccassi
2023-07-14 22:34         ` patch 'net/netvsc: fix sizeof calculation' " luca.boccassi
2023-07-14 22:34         ` patch 'app/testpmd: fix checksum engine with GTP on 32-bit' " luca.boccassi
2023-07-14 22:34         ` patch 'net/hns3: fix non-zero weight for disabled TC' " luca.boccassi
2023-07-14 22:34         ` patch 'net/hns3: fix index to look up table in NEON Rx' " luca.boccassi
2023-07-14 22:34         ` patch 'ethdev: fix potential leak in PCI probing helper' " luca.boccassi
2023-07-14 22:34         ` patch 'net/mlx5: forbid MPRQ restart' " luca.boccassi
2023-07-14 22:34         ` patch 'net/ice: fix 32-bit build' " luca.boccassi
2023-07-14 22:34         ` patch 'net/ice: fix RSS hash key generation' " luca.boccassi
2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix possible division by zero' " luca.boccassi
2023-07-14 22:34         ` patch 'baseband/fpga_5gnr_fec: fix starting unconfigured queue' " luca.boccassi
2023-07-14 22:34         ` patch 'test/crypto: fix PDCP-SDAP test vectors' " luca.boccassi
2023-07-14 22:34         ` patch 'examples/fips_validation: fix digest length in AES-GCM' " luca.boccassi
2023-07-14 22:34         ` patch 'app/crypto-perf: fix socket ID default value' " luca.boccassi
2023-07-14 22:34         ` patch 'examples/ipsec-secgw: fix TAP default MAC address' " luca.boccassi
2023-07-14 22:34         ` patch 'kni: fix build with Linux 6.5' " luca.boccassi
2023-07-20 10:58           ` patch 'doc: fix typos and wording in flow API guide' " luca.boccassi
2023-07-20 10:58             ` patch 'net/i40e: fix comments' " luca.boccassi
2023-07-20 10:58             ` patch 'net/iavf: fix stop ordering' " luca.boccassi
2023-07-20 10:58             ` patch 'common/iavf: fix MAC type for 710 NIC' " luca.boccassi
2023-07-20 10:58             ` patch 'net/ixgbe: fix Rx and Tx queue status' " luca.boccassi
2023-07-20 10:58             ` patch 'net/igc: " luca.boccassi
2023-07-20 10:58             ` patch 'net/e1000: " luca.boccassi
2023-07-20 10:58             ` patch 'net/mlx5: fix LRO TCP checksum' " luca.boccassi
2023-07-20 10:58             ` patch 'doc: update BIOS settings and supported HW for NTB' " luca.boccassi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).