patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8
@ 2025-02-17 17:03 luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: clear ring addresses when getting vring base' " luca.boccassi
                   ` (77 more replies)
  0 siblings, 78 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Konstantin Ananyev
  Cc: Phanendra Vukkisala, Morten Brørup, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From e35791f7f0b901998b830b447d5ca4f8c9083a00 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Date: Fri, 6 Dec 2024 13:35:54 -0500
Subject: [PATCH] test/ring: fix init with custom number of lcores
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 2cf3a8d35d2db1cee1523e6e9ef5553432fbf56f ]

ring_stress_autotest fails to initialize the ring when RTE_MAX_LCORE value
is not a number of 2.
There is a flaw in calculation required number of elements in the ring.
Fix it by aligning number of elements to next power of 2.

Fixes: bf28df24e915 ("test/ring: add contention stress test")

Reported-by: Phanendra Vukkisala <pvukkisala@marvell.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_ring_stress_impl.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_ring_stress_impl.h b/app/test/test_ring_stress_impl.h
index 62f046a91a..373091957b 100644
--- a/app/test/test_ring_stress_impl.h
+++ b/app/test/test_ring_stress_impl.h
@@ -295,7 +295,7 @@ mt1_init(struct rte_ring **rng, void **data, uint32_t num)
 	*data = elm;
 
 	/* alloc ring */
-	nr = 2 * num;
+	nr = rte_align32pow2(2 * num);
 	sz = rte_ring_get_memsize(nr);
 	r = rte_zmalloc(NULL, sz, __alignof__(*r));
 	if (r == NULL) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:16.953641107 +0000
+++ 0001-test-ring-fix-init-with-custom-number-of-lcores.patch	2025-02-17 16:13:16.778441593 +0000
@@ -1 +1 @@
-From 2cf3a8d35d2db1cee1523e6e9ef5553432fbf56f Mon Sep 17 00:00:00 2001
+From e35791f7f0b901998b830b447d5ca4f8c9083a00 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 2cf3a8d35d2db1cee1523e6e9ef5553432fbf56f ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 8b0bfb11fe..ee5274aeef 100644
+index 62f046a91a..373091957b 100644
@@ -29 +30 @@
-@@ -297,7 +297,7 @@ mt1_init(struct rte_ring **rng, void **data, uint32_t num)
+@@ -295,7 +295,7 @@ mt1_init(struct rte_ring **rng, void **data, uint32_t num)
@@ -36 +37 @@
- 	r = rte_zmalloc(NULL, sz, alignof(typeof(*r)));
+ 	r = rte_zmalloc(NULL, sz, __alignof__(*r));

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

* patch 'vhost: clear ring addresses when getting vring base' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: check GSO size validity' " luca.boccassi
                   ` (76 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Jianping Zhao; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 08c98824562edf4282350383ec4f55a2fe85e57f Mon Sep 17 00:00:00 2001
From: Jianping Zhao <zhao305149619@gmail.com>
Date: Wed, 27 Nov 2024 10:03:49 +0800
Subject: [PATCH] vhost: clear ring addresses when getting vring base

[ upstream commit 1846fe767f00a9d0dade333e7838f81e6721b694 ]

Clear ring addresses during vring base retrieval to handle guest reboot
scenarios correctly. This is particularly important for vdpa-blk devices
where the following issue occurs:

When a guest OS with vdpa-blk device reboots, during UEFI stage, only
one vring is actually used and configured. However, QEMU still sends
enable messages for all configured queues. The remaining queues retain
their addresses from before reboot, which reference invalid memory
mappings in the rebooted guest.

The issue manifests in vq_is_ready():

static bool
vq_is_ready(struct virtio_net *dev, struct vhost_virtqueue *vq)
{
    /* Only checks pointer validity, not address freshness */
    rings_ok = vq->desc && vq->avail && vq->used;
    ...
}

vq_is_ready() incorrectly considers these queues as ready because it
only checks if desc/avail/used pointers are non-NULL, but cannot
detect that these addresses are stale from the previous boot.

Clear the ring addresses in vhost_user_get_vring_base() to force
the guest driver to reconfigure them before use. This ensures that
vq_is_ready() will return false for queues with stale addresses
until they are properly reconfigured by the guest driver.

Fixes: 3ea7052f4b1b ("vhost: postpone rings addresses translation")

Signed-off-by: Jianping Zhao <zhao305149619@gmail.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 .mailmap               | 1 +
 lib/vhost/vhost_user.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.mailmap b/.mailmap
index bef76e5fd9..3127a1f91f 100644
--- a/.mailmap
+++ b/.mailmap
@@ -613,6 +613,7 @@ Jia He <justin.he@arm.com> <jia.he@hxt-semitech.com>
 Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
 Jianfeng Tan <jianfeng.tan@intel.com>
 Jiangu Zhao <zhaojg@arraynetworks.com.cn>
+Jianping Zhao <zhao305149619@gmail.com>
 Jianwei Ma <jianwei.ma@intel.com>
 Jianwei Mei <jianweix.mei@intel.com>
 Jiaqi Min <jiaqix.min@intel.com>
diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
index d665d6c7d9..6657355c2a 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -2147,6 +2147,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
 
 	rte_spinlock_lock(&vq->access_lock);
 	vring_invalidate(dev, vq);
+	memset(&vq->ring_addrs, 0, sizeof(struct vhost_vring_addr));
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return RTE_VHOST_MSG_RESULT_REPLY;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:16.987365371 +0000
+++ 0002-vhost-clear-ring-addresses-when-getting-vring-base.patch	2025-02-17 16:13:16.782441593 +0000
@@ -1 +1 @@
-From 1846fe767f00a9d0dade333e7838f81e6721b694 Mon Sep 17 00:00:00 2001
+From 08c98824562edf4282350383ec4f55a2fe85e57f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1846fe767f00a9d0dade333e7838f81e6721b694 ]
+
@@ -36 +37,0 @@
-Cc: stable@dpdk.org
@@ -46 +47 @@
-index b90ff0444c..cc1ffe1ad9 100644
+index bef76e5fd9..3127a1f91f 100644
@@ -49 +50,2 @@
-@@ -674,6 +674,7 @@ Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
+@@ -613,6 +613,7 @@ Jia He <justin.he@arm.com> <jia.he@hxt-semitech.com>
+ Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
@@ -51 +52,0 @@
- Jiang Yu <yux.jiang@intel.com>
@@ -58 +59 @@
-index 6d92ad904e..52d8078d7c 100644
+index d665d6c7d9..6657355c2a 100644
@@ -61 +62 @@
-@@ -2277,6 +2277,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
+@@ -2147,6 +2147,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
@@ -63 +64 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -66 +67 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

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

* patch 'vhost: check GSO size validity' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: clear ring addresses when getting vring base' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'crypto/cnxk: fix build with GCC 15' " luca.boccassi
                   ` (75 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 63bff5d105c47713a59c84753a0af0185cc34759 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Fri, 20 Dec 2024 11:45:09 +0800
Subject: [PATCH] vhost: check GSO size validity

[ upstream commit 7023f3e532787eec7be674efb7a4aa54f1626b6c ]

The value of tso_segsz cannot be 0, instead check that value of
gso_size was set.

Fixes: d0cf91303d73 ("vhost: add Tx offload capabilities")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/vhost/virtio_net.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index 9c9d05d4d9..f16b7c45da 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -2503,6 +2503,9 @@ vhost_dequeue_offload_legacy(struct virtio_net *dev, struct virtio_net_hdr *hdr,
 	}
 
 	if (hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) {
+		if (hdr->gso_size == 0)
+			goto error;
+
 		switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) {
 		case VIRTIO_NET_HDR_GSO_TCPV4:
 		case VIRTIO_NET_HDR_GSO_TCPV6:
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.020932861 +0000
+++ 0003-vhost-check-GSO-size-validity.patch	2025-02-17 16:13:16.782441593 +0000
@@ -1 +1 @@
-From 7023f3e532787eec7be674efb7a4aa54f1626b6c Mon Sep 17 00:00:00 2001
+From 63bff5d105c47713a59c84753a0af0185cc34759 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7023f3e532787eec7be674efb7a4aa54f1626b6c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 69901ab3b5..2ac5bc29a3 100644
+index 9c9d05d4d9..f16b7c45da 100644
@@ -22 +23 @@
-@@ -2733,6 +2733,9 @@ vhost_dequeue_offload_legacy(struct virtio_net *dev, struct virtio_net_hdr *hdr,
+@@ -2503,6 +2503,9 @@ vhost_dequeue_offload_legacy(struct virtio_net *dev, struct virtio_net_hdr *hdr,

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

* patch 'crypto/cnxk: fix build with GCC 15' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: clear ring addresses when getting vring base' " luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: check GSO size validity' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/thunderx/base: " luca.boccassi
                   ` (74 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From a48eaccd798733531513c03baafd4eb018afded1 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 20 Jan 2025 15:23:38 -0800
Subject: [PATCH] crypto/cnxk: fix build with GCC 15
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 224e37a6a442b6a1f6d179b1756383f1a80cf3ed ]

GCC 15 produces warnings about uninitialized variables.

In file included from ../lib/mbuf/rte_mbuf.h:36,
                 from ../lib/cryptodev/rte_crypto.h:15,
                 from ../lib/cryptodev/rte_cryptodev.h:19,
                 from ../drivers/crypto/cnxk/cn9k_cryptodev_ops.c:5:
In function ‘pdcp_chain_sg1_prep’,
    inlined from ‘cpt_pdcp_chain_alg_prep’ at ../drivers/crypto/cnxk/cnxk_se.h:1621:11,
    inlined from ‘fill_pdcp_chain_params’ at ../drivers/crypto/cnxk/cnxk_se.h:3114:8,
    inlined from ‘cpt_sym_inst_fill’ at ../drivers/crypto/cnxk/cnxk_se.h:3364:9,
    inlined from ‘cn9k_cpt_inst_prep’ at ../drivers/crypto/cnxk/cn9k_cryptodev_ops.c:93:10:
../lib/eal/include/rte_common.h:469:38: warning: ‘fc_params.meta_buf.vaddr’ may be used uninitialized [-Wmaybe-uninitialized]
  469 | #define RTE_PTR_ADD(ptr, x) ((void*)((uintptr_t)(ptr) + (x)))
      |                                      ^~~~~~~~~~~~~~~~
../drivers/common/cnxk/roc_platform.h:47:34: note: in expansion of macro ‘RTE_PTR_ADD’
   47 | #define PLT_PTR_ADD              RTE_PTR_ADD
      |                                  ^~~~~~~~~~~
../drivers/crypto/cnxk/cnxk_se.h:900:19: note: in expansion of macro ‘PLT_PTR_ADD’
  900 |         m_vaddr = PLT_PTR_ADD(m_vaddr, ROC_SE_OFF_CTRL_LEN + PLT_ALIGN_CEIL(hdr_len, 8));
      |                   ^~~~~~~~~~~
In file included from ../drivers/crypto/cnxk/cn9k_cryptodev_ops.c:20:
../drivers/crypto/cnxk/cnxk_se.h: In function ‘cn9k_cpt_inst_prep’:
../drivers/crypto/cnxk/cnxk_se.h:3008:33: note: ‘fc_params.meta_buf.vaddr’ was declared here
 3008 |         struct roc_se_fc_params fc_params;
      |                                 ^~~~~~~~~
In function ‘pdcp_chain_sg1_prep’,
    inlined from ‘cpt_pdcp_chain_alg_prep’ at ../drivers/crypto/cnxk/cnxk_se.h:1621:11,
    inlined from ‘fill_pdcp_chain_params’ at ../drivers/crypto/cnxk/cnxk_se.h:3114:8,
    inlined from ‘cpt_sym_inst_fill’ at ../drivers/crypto/cnxk/cnxk_se.h:3364:9,
    inlined from ‘cn9k_cpt_inst_prep’ at ../drivers/crypto/cnxk/cn9k_cryptodev_ops.c:82:10:
../lib/eal/include/rte_common.h:469:38: warning: ‘fc_params.meta_buf.vaddr’ may be used uninitialized [-Wmaybe-uninitialized]
  469 | #define RTE_PTR_ADD(ptr, x) ((void*)((uintptr_t)(ptr) + (x)))
      |                                      ^~~~~~~~~~~~~~~~
../drivers/common/cnxk/roc_platform.h:47:34: note: in expansion of macro ‘RTE_PTR_ADD’
   47 | #define PLT_PTR_ADD              RTE_PTR_ADD
      |                                  ^~~~~~~~~~~
../drivers/crypto/cnxk/cnxk_se.h:900:19: note: in expansion of macro ‘PLT_PTR_ADD’
  900 |         m_vaddr = PLT_PTR_ADD(m_vaddr, ROC_SE_OFF_CTRL_LEN + PLT_ALIGN_CEIL(hdr_len, 8));
      |                   ^~~~~~~~~~~
../drivers/crypto/cnxk/cnxk_se.h: In function ‘cn9k_cpt_inst_prep’:
../drivers/crypto/cnxk/cnxk_se.h:3008:33: note: ‘fc_params.meta_buf.vaddr’ was declared here
 3008 |         struct roc_se_fc_params fc_params;
      |                                 ^~~~~~~~~

Fixes: d3bff77cc371 ("crypto/cnxk: separate out PDCP chain datapath")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/crypto/cnxk/cnxk_se.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h
index 32e2b2cd64..ea455f41e3 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -2752,7 +2752,7 @@ fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 {
 	uint32_t ci_data_length, ci_data_offset, a_data_length, a_data_offset;
 	struct rte_crypto_sym_op *sym_op = cop->sym;
-	struct roc_se_fc_params fc_params;
+	struct roc_se_fc_params fc_params = { };
 	struct rte_mbuf *m_src, *m_dst;
 	uint8_t cpt_op = sess->cpt_op;
 	uint64_t d_offs, d_lens;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.053201612 +0000
+++ 0004-crypto-cnxk-fix-build-with-GCC-15.patch	2025-02-17 16:13:16.786441593 +0000
@@ -1 +1 @@
-From 224e37a6a442b6a1f6d179b1756383f1a80cf3ed Mon Sep 17 00:00:00 2001
+From a48eaccd798733531513c03baafd4eb018afded1 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 224e37a6a442b6a1f6d179b1756383f1a80cf3ed ]
+
@@ -54 +55,0 @@
-Cc: stable@dpdk.org
@@ -63 +64 @@
-index 7262a49945..649e38c495 100644
+index 32e2b2cd64..ea455f41e3 100644
@@ -66 +67 @@
-@@ -3005,7 +3005,7 @@ fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
+@@ -2752,7 +2752,7 @@ fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,

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

* patch 'net/thunderx/base: fix build with GCC 15' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (2 preceding siblings ...)
  2025-02-17 17:03 ` patch 'crypto/cnxk: fix build with GCC 15' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'eal/x86: fix some intrinsics header include for Windows' " luca.boccassi
                   ` (73 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From e7efa63569eafa7d129e40cf2e5c645ad35c0a1d Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 20 Jan 2025 15:23:39 -0800
Subject: [PATCH] net/thunderx/base: fix build with GCC 15
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit e7133f8fb39f506dc1eef02c2927acda949ca000 ]

Gcc 15 now produces warning with the base code of Thunderx driver.
The issue is that Gcc now defaults to C23 mode, and the standards
gods have decided that the result of partial initialization of a union
is not defined for other fields.

The fix is to use an empty initializer which forces full initialization.

[2377/3224] Compiling C object drivers/net/thunderx/base/libnicvf_base.a.p/nicvf_mbox.c.o
In function ‘nicvf_mbox_send_msg_to_pf_raw’,
    inlined from ‘nicvf_mbox_send_async_msg_to_pf’ at ../drivers/net/thunderx/base/nicvf_mbox.c:70:2,
    inlined from ‘nicvf_mbox_cfg_done’ at ../drivers/net/thunderx/base/nicvf_mbox.c:468:2:
../drivers/net/thunderx/base/nicvf_mbox.c:59:17: warning: ‘mbx’ is used uninitialized [-Wuninitialized]
   59 |                 nicvf_reg_write(nic, mbx_addr, *mbx_data);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/net/thunderx/base/nicvf_mbox.c: In function ‘nicvf_mbox_cfg_done’:
../drivers/net/thunderx/base/nicvf_mbox.c:465:24: note: ‘mbx’ declared here
  465 |         struct nic_mbx mbx = { .msg = { 0 } };
      |                        ^~~
In function ‘nicvf_mbox_send_msg_to_pf_raw’,
    inlined from ‘nicvf_mbox_send_async_msg_to_pf’ at ../drivers/net/thunderx/base/nicvf_mbox.c:70:2,
    inlined from ‘nicvf_mbox_link_change’ at ../drivers/net/thunderx/base/nicvf_mbox.c:477:2:
../drivers/net/thunderx/base/nicvf_mbox.c:59:17: warning: ‘mbx’ is used uninitialized [-Wuninitialized]
   59 |                 nicvf_reg_write(nic, mbx_addr, *mbx_data);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../drivers/net/thunderx/base/nicvf_mbox.c: In function ‘nicvf_mbox_link_change’:
../drivers/net/thunderx/base/nicvf_mbox.c:474:24: note: ‘mbx’ declared here
  474 |         struct nic_mbx mbx = { .msg = { 0 } };

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/thunderx/base/nicvf_mbox.c | 42 +++++++++++++-------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/net/thunderx/base/nicvf_mbox.c b/drivers/net/thunderx/base/nicvf_mbox.c
index 0e0176974d..29407f75fa 100644
--- a/drivers/net/thunderx/base/nicvf_mbox.c
+++ b/drivers/net/thunderx/base/nicvf_mbox.c
@@ -212,7 +212,7 @@ int
 nicvf_mbox_set_mac_addr(struct nicvf *nic,
 			const uint8_t mac[NICVF_MAC_ADDR_SIZE])
 {
-	struct nic_mbx mbx = { .msg = {0} };
+	struct nic_mbx mbx = { };
 	int i;
 
 	mbx.msg.msg = NIC_MBOX_MSG_SET_MAC;
@@ -226,7 +226,7 @@ nicvf_mbox_set_mac_addr(struct nicvf *nic,
 int
 nicvf_mbox_config_cpi(struct nicvf *nic, uint32_t qcnt)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_CPI_CFG;
 	mbx.cpi_cfg.vf_id = nic->vf_id;
@@ -239,7 +239,7 @@ nicvf_mbox_config_cpi(struct nicvf *nic, uint32_t qcnt)
 int
 nicvf_mbox_get_rss_size(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_RSS_SIZE;
 	mbx.rss_size.vf_id = nic->vf_id;
@@ -251,7 +251,7 @@ nicvf_mbox_get_rss_size(struct nicvf *nic)
 int
 nicvf_mbox_config_rss(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 	struct nicvf_rss_reta_info *rss = &nic->rss_info;
 	size_t tot_len = rss->rss_size;
 	size_t cur_len;
@@ -284,7 +284,7 @@ int
 nicvf_mbox_rq_config(struct nicvf *nic, uint16_t qidx,
 		     struct pf_rq_cfg *pf_rq_cfg)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_RQ_CFG;
 	mbx.rq.qs_num = nic->vf_id;
@@ -296,7 +296,7 @@ nicvf_mbox_rq_config(struct nicvf *nic, uint16_t qidx,
 int
 nicvf_mbox_sq_config(struct nicvf *nic, uint16_t qidx)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_SQ_CFG;
 	mbx.sq.qs_num = nic->vf_id;
@@ -309,7 +309,7 @@ nicvf_mbox_sq_config(struct nicvf *nic, uint16_t qidx)
 int
 nicvf_mbox_qset_config(struct nicvf *nic, struct pf_qs_cfg *qs_cfg)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 #if NICVF_BYTE_ORDER == NICVF_BIG_ENDIAN
 	qs_cfg->be = 1;
@@ -325,7 +325,7 @@ nicvf_mbox_qset_config(struct nicvf *nic, struct pf_qs_cfg *qs_cfg)
 int
 nicvf_mbox_request_sqs(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 	size_t i;
 
 	assert_primary(nic);
@@ -346,7 +346,7 @@ nicvf_mbox_request_sqs(struct nicvf *nic)
 int
 nicvf_mbox_rq_drop_config(struct nicvf *nic, uint16_t qidx, bool enable)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 	struct pf_rq_drop_cfg *drop_cfg;
 
 	/* Enable CQ drop to reserve sufficient CQEs for all tx packets */
@@ -365,7 +365,7 @@ nicvf_mbox_rq_drop_config(struct nicvf *nic, uint16_t qidx, bool enable)
 int
 nicvf_mbox_update_hw_max_frs(struct nicvf *nic, uint16_t mtu)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_SET_MAX_FRS;
 	mbx.frs.max_frs = mtu;
@@ -376,7 +376,7 @@ nicvf_mbox_update_hw_max_frs(struct nicvf *nic, uint16_t mtu)
 int
 nicvf_mbox_rq_sync(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	/* Make sure all packets in the pipeline are written back into mem */
 	mbx.msg.msg = NIC_MBOX_MSG_RQ_SW_SYNC;
@@ -387,7 +387,7 @@ nicvf_mbox_rq_sync(struct nicvf *nic)
 int
 nicvf_mbox_rq_bp_config(struct nicvf *nic, uint16_t qidx, bool enable)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_RQ_BP_CFG;
 	mbx.rq.qs_num = nic->vf_id;
@@ -401,7 +401,7 @@ nicvf_mbox_rq_bp_config(struct nicvf *nic, uint16_t qidx, bool enable)
 int
 nicvf_mbox_loopback_config(struct nicvf *nic, bool enable)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.lbk.msg = NIC_MBOX_MSG_LOOPBACK;
 	mbx.lbk.vf_id = nic->vf_id;
@@ -414,7 +414,7 @@ nicvf_mbox_reset_stat_counters(struct nicvf *nic, uint16_t rx_stat_mask,
 			       uint8_t tx_stat_mask, uint16_t rq_stat_mask,
 			       uint16_t sq_stat_mask)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.reset_stat.msg = NIC_MBOX_MSG_RESET_STAT_COUNTER;
 	mbx.reset_stat.rx_stat_mask = rx_stat_mask;
@@ -427,7 +427,7 @@ nicvf_mbox_reset_stat_counters(struct nicvf *nic, uint16_t rx_stat_mask,
 int
 nicvf_mbox_set_link_up_down(struct nicvf *nic, bool enable)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.lbk.msg = NIC_MBOX_MSG_SET_LINK;
 	mbx.lbk.vf_id = nic->vf_id;
@@ -439,7 +439,7 @@ nicvf_mbox_set_link_up_down(struct nicvf *nic, bool enable)
 int
 nicvf_mbox_change_mode(struct nicvf *nic, struct change_link_mode *cfg)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.mode.msg = NIC_MBOX_MSG_CHANGE_MODE;
 	mbx.mode.vf_id = nic->vf_id;
@@ -453,7 +453,7 @@ nicvf_mbox_change_mode(struct nicvf *nic, struct change_link_mode *cfg)
 void
 nicvf_mbox_shutdown(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_SHUTDOWN;
 	nicvf_mbox_send_msg_to_pf(nic, &mbx);
@@ -462,7 +462,7 @@ nicvf_mbox_shutdown(struct nicvf *nic)
 void
 nicvf_mbox_cfg_done(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_CFG_DONE;
 	nicvf_mbox_send_async_msg_to_pf(nic, &mbx);
@@ -471,7 +471,7 @@ nicvf_mbox_cfg_done(struct nicvf *nic)
 void
 nicvf_mbox_link_change(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_BGX_LINK_CHANGE;
 	nicvf_mbox_send_async_msg_to_pf(nic, &mbx);
@@ -480,7 +480,7 @@ nicvf_mbox_link_change(struct nicvf *nic)
 void
 nicvf_mbox_reset_xcast(struct nicvf *nic)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.msg.msg = NIC_MBOX_MSG_RESET_XCAST;
 	nicvf_mbox_send_msg_to_pf(nic, &mbx);
@@ -489,7 +489,7 @@ nicvf_mbox_reset_xcast(struct nicvf *nic)
 int
 nicvf_mbox_set_xcast(struct nicvf *nic, uint8_t  mode, uint64_t mac)
 {
-	struct nic_mbx mbx = { .msg = { 0 } };
+	struct nic_mbx mbx = { };
 
 	mbx.xcast.msg = NIC_MBOX_MSG_SET_XCAST;
 	mbx.xcast.mode = mode;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.086302602 +0000
+++ 0005-net-thunderx-base-fix-build-with-GCC-15.patch	2025-02-17 16:13:16.786441593 +0000
@@ -1 +1 @@
-From e7133f8fb39f506dc1eef02c2927acda949ca000 Mon Sep 17 00:00:00 2001
+From e7efa63569eafa7d129e40cf2e5c645ad35c0a1d Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit e7133f8fb39f506dc1eef02c2927acda949ca000 ]
+
@@ -36,2 +37,0 @@
-
-Cc: stable@dpdk.org

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

* patch 'eal/x86: fix some intrinsics header include for Windows' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (3 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/thunderx/base: " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/bonding: fix dedicated queue setup' " luca.boccassi
                   ` (72 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: Pier Damouny, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From b260bcc18c7a05fb2edc61cb19a882b01c35c870 Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Tue, 14 Jan 2025 08:21:13 -0800
Subject: [PATCH] eal/x86: fix some intrinsics header include for Windows

[ upstream commit 5b856206c74bbcf19e12cafa15382a7e15b0a1b5 ]

Error reported:
../lib/net/net_crc_sse.c:49:17: error: call to undeclared function
'_mm_clmulepi64_si128'; ISO C99 and later do not support implicit
function declarations [-Wimplicit-function-declaration]

The fix is to remove the unnecessary ifdef around the inclusion of
header file immintrin.h. This header also contains functions that do
not require AVX instructions, so should not be included only when AVX
is available.

Bugzilla ID: 1595
Fixes: da826b7135a4 ("eal: introduce ymm type for AVX 256-bit")

Reported-by: Pier Damouny <pdamouny@nvidia.com>
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 .mailmap                       | 1 +
 lib/eal/x86/include/rte_vect.h | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/.mailmap b/.mailmap
index 3127a1f91f..df8e5c48ab 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1085,6 +1085,7 @@ Petr Houska <t-pehous@microsoft.com>
 Phanendra Vukkisala <pvukkisala@marvell.com>
 Phil Yang <phil.yang@arm.com>
 Philip Prindeville <philipp@redfish-solutions.com>
+Pier Damouny <pdamouny@nvidia.com>
 Pierre Pfister <ppfister@cisco.com>
 Piotr Azarewicz <piotr.azarewicz@intel.com> <piotrx.t.azarewicz@intel.com>
 Piotr Bartosiewicz <piotr.bartosiewicz@atendesoftware.pl>
diff --git a/lib/eal/x86/include/rte_vect.h b/lib/eal/x86/include/rte_vect.h
index 2e40b77da9..ea0bf169fd 100644
--- a/lib/eal/x86/include/rte_vect.h
+++ b/lib/eal/x86/include/rte_vect.h
@@ -21,11 +21,7 @@
 	(__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
 
 #include <smmintrin.h> /* SSE4 */
-
-#if defined(__AVX__)
 #include <immintrin.h>
-#endif
-
 #else
 
 #include <x86intrin.h>
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.117441232 +0000
+++ 0006-eal-x86-fix-some-intrinsics-header-include-for-Windo.patch	2025-02-17 16:13:16.786441593 +0000
@@ -1 +1 @@
-From 5b856206c74bbcf19e12cafa15382a7e15b0a1b5 Mon Sep 17 00:00:00 2001
+From b260bcc18c7a05fb2edc61cb19a882b01c35c870 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5b856206c74bbcf19e12cafa15382a7e15b0a1b5 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -24,3 +25,3 @@
- .mailmap                       | 2 +-
- lib/eal/x86/include/rte_vect.h | 2 --
- 2 files changed, 1 insertion(+), 3 deletions(-)
+ .mailmap                       | 1 +
+ lib/eal/x86/include/rte_vect.h | 4 ----
+ 2 files changed, 1 insertion(+), 4 deletions(-)
@@ -29 +30 @@
-index cc1ffe1ad9..94e12acbd4 100644
+index 3127a1f91f..df8e5c48ab 100644
@@ -32 +33 @@
-@@ -1192,7 +1192,7 @@ Petr Houska <t-pehous@microsoft.com>
+@@ -1085,6 +1085,7 @@ Petr Houska <t-pehous@microsoft.com>
@@ -36 +36,0 @@
--Pier Damouny  <pdamouny@nvidia.com>
@@ -42 +42 @@
-index 5ac3ccfd82..5fdcd632ac 100644
+index 2e40b77da9..ea0bf169fd 100644
@@ -45 +45,2 @@
-@@ -19,9 +19,7 @@
+@@ -21,11 +21,7 @@
+ 	(__GNUC__ == 4 &&  __GNUC_MINOR__ < 4))
@@ -47 +47,0 @@
- #if defined(__ICC) || defined(_WIN64)
@@ -48,0 +49 @@
+-
@@ -51,0 +53 @@
+-
@@ -52,0 +55 @@
+ 
@@ -54 +56,0 @@
- #endif

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

* patch 'net/bonding: fix dedicated queue setup' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (4 preceding siblings ...)
  2025-02-17 17:03 ` patch 'eal/x86: fix some intrinsics header include for Windows' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " luca.boccassi
                   ` (71 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 4c7148bc0ebe1a81b38b90cd3be73bb9f817c3b1 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Thu, 26 Dec 2024 09:26:18 +0800
Subject: [PATCH] net/bonding: fix dedicated queue setup

[ upstream commit 4da0705bf896327af062212b5a1e6cb1f1366aa5 ]

The bonding PMD hardcoded the value of dedicated hardware Rx/Tx
queue size as (128/512). This will cause the bonding port start
fail if some NIC requires more Rx/Tx descriptors than the hardcoded
number.

Therefore, use the minimum hardware queue size of the member port
to initialize dedicated hardware Rx/Tx queue. If obtaining the
minimum queue size failed, use the default queue size.

Fixes: 112891cd27e5 ("net/bonding: add dedicated HW queues for LACP control")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.h |  3 +++
 drivers/net/bonding/rte_eth_bond_pmd.c    | 24 +++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h
index 025bd0ec54..d4c1d78d77 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.h
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.h
@@ -35,6 +35,9 @@ extern "C" {
 #define MARKER_TLV_TYPE_INFO                0x01
 #define MARKER_TLV_TYPE_RESP                0x02
 
+#define SLOW_TX_QUEUE_HW_DEFAULT_SIZE       512
+#define SLOW_RX_QUEUE_HW_DEFAULT_SIZE       512
+
 typedef void (*rte_eth_bond_8023ad_ext_slowrx_fn)(uint16_t slave_id,
 						  struct rte_mbuf *lacp_pkt);
 
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 8df632fa6e..0e6f3aa42b 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1681,10 +1681,27 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
 	}
 
 	if (internals->mode4.dedicated_queues.enabled == 1) {
+		struct rte_eth_dev_info member_info = {};
+		uint16_t nb_rx_desc = SLOW_RX_QUEUE_HW_DEFAULT_SIZE;
+		uint16_t nb_tx_desc = SLOW_TX_QUEUE_HW_DEFAULT_SIZE;
+
+		errval = rte_eth_dev_info_get(slave_eth_dev->data->port_id,
+				&member_info);
+		if (errval != 0) {
+			RTE_BOND_LOG(ERR,
+					"rte_eth_dev_info_get: port=%d, err (%d)",
+					slave_eth_dev->data->port_id,
+					errval);
+			return errval;
+		}
+
+		if (member_info.rx_desc_lim.nb_min != 0)
+			nb_rx_desc = member_info.rx_desc_lim.nb_min;
+
 		/* Configure slow Rx queue */
 
 		errval = rte_eth_rx_queue_setup(slave_eth_dev->data->port_id,
-				internals->mode4.dedicated_queues.rx_qid, 128,
+				internals->mode4.dedicated_queues.rx_qid, nb_rx_desc,
 				rte_eth_dev_socket_id(slave_eth_dev->data->port_id),
 				NULL, port->slow_pool);
 		if (errval != 0) {
@@ -1696,8 +1713,11 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
 			return errval;
 		}
 
+		if (member_info.tx_desc_lim.nb_min != 0)
+			nb_tx_desc = member_info.tx_desc_lim.nb_min;
+
 		errval = rte_eth_tx_queue_setup(slave_eth_dev->data->port_id,
-				internals->mode4.dedicated_queues.tx_qid, 512,
+				internals->mode4.dedicated_queues.tx_qid, nb_tx_desc,
 				rte_eth_dev_socket_id(slave_eth_dev->data->port_id),
 				NULL);
 		if (errval != 0) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.149873051 +0000
+++ 0007-net-bonding-fix-dedicated-queue-setup.patch	2025-02-17 16:13:16.786441593 +0000
@@ -1 +1 @@
-From 4da0705bf896327af062212b5a1e6cb1f1366aa5 Mon Sep 17 00:00:00 2001
+From 4c7148bc0ebe1a81b38b90cd3be73bb9f817c3b1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4da0705bf896327af062212b5a1e6cb1f1366aa5 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +23,2 @@
- drivers/net/bonding/rte_eth_bond_pmd.c    | 25 ++++++++++++++++++++---
- 2 files changed, 25 insertions(+), 3 deletions(-)
+ drivers/net/bonding/rte_eth_bond_pmd.c    | 24 +++++++++++++++++++++--
+ 2 files changed, 25 insertions(+), 2 deletions(-)
@@ -26 +27 @@
-index 395e41ff95..4c30bd40ee 100644
+index 025bd0ec54..d4c1d78d77 100644
@@ -36 +37 @@
- typedef void (*rte_eth_bond_8023ad_ext_slowrx_fn)(uint16_t member_id,
+ typedef void (*rte_eth_bond_8023ad_ext_slowrx_fn)(uint16_t slave_id,
@@ -40 +41 @@
-index f69496feec..467f7fe7ea 100644
+index 8df632fa6e..0e6f3aa42b 100644
@@ -43 +44 @@
-@@ -1684,10 +1684,26 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
+@@ -1681,10 +1681,27 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
@@ -51 +52 @@
-+		errval = rte_eth_dev_info_get(member_eth_dev->data->port_id,
++		errval = rte_eth_dev_info_get(slave_eth_dev->data->port_id,
@@ -56 +57 @@
-+					member_eth_dev->data->port_id,
++					slave_eth_dev->data->port_id,
@@ -65,2 +66,2 @@
--
- 		errval = rte_eth_rx_queue_setup(member_eth_dev->data->port_id,
+ 
+ 		errval = rte_eth_rx_queue_setup(slave_eth_dev->data->port_id,
@@ -69 +70 @@
- 				rte_eth_dev_socket_id(member_eth_dev->data->port_id),
+ 				rte_eth_dev_socket_id(slave_eth_dev->data->port_id),
@@ -72 +73 @@
-@@ -1699,8 +1715,11 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
+@@ -1696,8 +1713,11 @@ slave_configure_slow_queue(struct rte_eth_dev *bonded_eth_dev,
@@ -79 +80 @@
- 		errval = rte_eth_tx_queue_setup(member_eth_dev->data->port_id,
+ 		errval = rte_eth_tx_queue_setup(slave_eth_dev->data->port_id,
@@ -82 +83 @@
- 				rte_eth_dev_socket_id(member_eth_dev->data->port_id),
+ 				rte_eth_dev_socket_id(slave_eth_dev->data->port_id),

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

* patch 'net/hns3: fix mbuf freeing in simple Tx path' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (5 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/bonding: fix dedicated queue setup' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/hns3: remove PVID info dump for VF' " luca.boccassi
                   ` (70 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 8d4e433013780c6e50077717809d29b587d02456 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 30 Dec 2024 14:54:03 +0800
Subject: [PATCH] net/hns3: fix mbuf freeing in simple Tx path

[ upstream commit d78c76dbeffbd2994d77236c403281b34612e024 ]

When RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE offload is not set,
use rte_pktmbuf_free_seg() to free the mbuf.

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

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index bdc162bc5c..3c866103ef 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -4000,7 +4000,7 @@ hns3_tx_free_buffer_simple(struct hns3_tx_queue *txq)
 		for (i = 0; i < txq->tx_rs_thresh; i++)
 			rte_prefetch0((tx_entry + i)->mbuf);
 		for (i = 0; i < txq->tx_rs_thresh; i++, tx_entry++) {
-			rte_mempool_put(tx_entry->mbuf->pool, tx_entry->mbuf);
+			rte_pktmbuf_free_seg(tx_entry->mbuf);
 			tx_entry->mbuf = NULL;
 		}
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.184175546 +0000
+++ 0008-net-hns3-fix-mbuf-freeing-in-simple-Tx-path.patch	2025-02-17 16:13:16.790441593 +0000
@@ -1 +1 @@
-From d78c76dbeffbd2994d77236c403281b34612e024 Mon Sep 17 00:00:00 2001
+From 8d4e433013780c6e50077717809d29b587d02456 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d78c76dbeffbd2994d77236c403281b34612e024 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 03bbbc435f..09e39cb673 100644
+index bdc162bc5c..3c866103ef 100644
@@ -22 +23 @@
-@@ -4006,7 +4006,7 @@ hns3_tx_free_buffer_simple(struct hns3_tx_queue *txq)
+@@ -4000,7 +4000,7 @@ hns3_tx_free_buffer_simple(struct hns3_tx_queue *txq)

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

* patch 'net/hns3: remove PVID info dump for VF' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (6 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/hns3: rename RAS module' " luca.boccassi
                   ` (69 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 4e3b40bb8a743cb142582d3c58ff6469c33f46d1 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Mon, 30 Dec 2024 14:54:04 +0800
Subject: [PATCH] net/hns3: remove PVID info dump for VF

[ upstream commit 3c805c1ebe02248bb0c2ba944046c2e3354b0c11 ]

Since the PVID status obtained from kernel varies on different
platform, and the PVID of VF can be accessed by 'ip link show'
command, so remove it in case of misunderstanding.

Fixes: 871e5a4f881b ("net/hns3: dump VLAN configuration info")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_dump.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/hns3/hns3_dump.c b/drivers/net/hns3/hns3_dump.c
index bac4427227..22ac3de146 100644
--- a/drivers/net/hns3/hns3_dump.c
+++ b/drivers/net/hns3/hns3_dump.c
@@ -628,6 +628,10 @@ hns3_get_vlan_tx_offload_cfg(FILE *file, struct hns3_hw *hw)
 static void
 hns3_get_port_pvid_info(FILE *file, struct hns3_hw *hw)
 {
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	if (hns->is_vf)
+		return;
+
 	fprintf(file, "  - pvid status: %s\n",
 		hw->port_base_vlan_cfg.state ? "On" : "Off");
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.217920359 +0000
+++ 0009-net-hns3-remove-PVID-info-dump-for-VF.patch	2025-02-17 16:13:16.790441593 +0000
@@ -1 +1 @@
-From 3c805c1ebe02248bb0c2ba944046c2e3354b0c11 Mon Sep 17 00:00:00 2001
+From 4e3b40bb8a743cb142582d3c58ff6469c33f46d1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3c805c1ebe02248bb0c2ba944046c2e3354b0c11 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 738dcb0c42..f21d32e6a2 100644
+index bac4427227..22ac3de146 100644
@@ -22 +23 @@
-@@ -693,6 +693,10 @@ hns3_get_vlan_tx_offload_cfg(FILE *file, struct hns3_hw *hw)
+@@ -628,6 +628,10 @@ hns3_get_vlan_tx_offload_cfg(FILE *file, struct hns3_hw *hw)

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

* patch 'net/hns3: rename RAS module' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (7 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/hns3: remove PVID info dump for VF' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/sfc: remove unnecessary assignment' " luca.boccassi
                   ` (68 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 3c915efd369d17f8868d8933756cb4b7626be8ac Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Mon, 30 Dec 2024 14:54:05 +0800
Subject: [PATCH] net/hns3: rename RAS module

[ upstream commit 501a40ae8370dcbfe086ef080a60c86a8d428ef6 ]

Rename ROH_MAC module as HIMAC to avoid misunderstandings.

Fixes: 1c1eb759e9d7 ("net/hns3: support RAS process in Kunpeng 930")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_intr.c | 4 ++--
 drivers/net/hns3/hns3_intr.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index d37c7eba6b..260cfcee7c 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -1432,8 +1432,8 @@ static const struct hns3_hw_mod_name hns3_hw_module_name[] = {
 		.module_name = MODULE_MASTER,
 		.msg = "MODULE_MASTER"
 	}, {
-		.module_name = MODULE_ROH_MAC,
-		.msg = "MODULE_ROH_MAC"
+		.module_name = MODULE_HIMAC,
+		.msg = "MODULE_HIMAC"
 	}
 };
 
diff --git a/drivers/net/hns3/hns3_intr.h b/drivers/net/hns3/hns3_intr.h
index aca1c0722c..fcfb9004cb 100644
--- a/drivers/net/hns3/hns3_intr.h
+++ b/drivers/net/hns3/hns3_intr.h
@@ -104,7 +104,7 @@ enum hns3_mod_name_list {
 	MODULE_RCB_TX,
 	MODULE_TXDMA,
 	MODULE_MASTER,
-	MODULE_ROH_MAC,
+	MODULE_HIMAC,
 };
 
 enum hns3_err_type_list {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.250587101 +0000
+++ 0010-net-hns3-rename-RAS-module.patch	2025-02-17 16:13:16.790441593 +0000
@@ -1 +1 @@
-From 501a40ae8370dcbfe086ef080a60c86a8d428ef6 Mon Sep 17 00:00:00 2001
+From 3c915efd369d17f8868d8933756cb4b7626be8ac Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 501a40ae8370dcbfe086ef080a60c86a8d428ef6 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 2de2b86b02..db5c84061c 100644
+index d37c7eba6b..260cfcee7c 100644
@@ -33 +34 @@
-index 1edb07de36..e88b00c9c9 100644
+index aca1c0722c..fcfb9004cb 100644

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

* patch 'net/sfc: remove unnecessary assignment' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (8 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/hns3: rename RAS module' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/mlx5: fix polling CQEs' " luca.boccassi
                   ` (67 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Ariel Otilibili; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ff415bac32c84488567e15997421a7736a271f32 Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <otilibil@eurecom.fr>
Date: Wed, 15 Jan 2025 13:11:51 +0100
Subject: [PATCH] net/sfc: remove unnecessary assignment

[ upstream commit de87641d5c004ef505d58d542a66d66f6a1cb2be ]

The same field was being set twice.

Coverity issue: 384444
Fixes: a62ec90522a6 ("net/sfc: add port representors infrastructure")

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
---
 drivers/net/sfc/sfc_repr.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/net/sfc/sfc_repr.c b/drivers/net/sfc/sfc_repr.c
index 79025e9052..4234d63144 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -797,11 +797,7 @@ static void
 sfc_repr_close(struct sfc_repr *sr)
 {
 	SFC_ASSERT(sfc_repr_lock_is_locked(sr));
-
 	SFC_ASSERT(sr->state == SFC_ETHDEV_CONFIGURED);
-	sr->state = SFC_ETHDEV_CLOSING;
-
-	/* Put representor close actions here */
 
 	sr->state = SFC_ETHDEV_INITIALIZED;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.282207920 +0000
+++ 0011-net-sfc-remove-unnecessary-assignment.patch	2025-02-17 16:13:16.794441593 +0000
@@ -1 +1 @@
-From de87641d5c004ef505d58d542a66d66f6a1cb2be Mon Sep 17 00:00:00 2001
+From ff415bac32c84488567e15997421a7736a271f32 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit de87641d5c004ef505d58d542a66d66f6a1cb2be ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index c2e5d4eb9e..2c1421b959 100644
+index 79025e9052..4234d63144 100644
@@ -21 +22 @@
-@@ -769,11 +769,7 @@ static void
+@@ -797,11 +797,7 @@ static void

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

* patch 'net/mlx5: fix polling CQEs' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (9 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/sfc: remove unnecessary assignment' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " luca.boccassi
                   ` (66 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Gavin Hu; +Cc: Changqi Dingluo, Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From afbe03428db62e75c98afe1aa492b5d252fe8e56 Mon Sep 17 00:00:00 2001
From: Gavin Hu <gahu@nvidia.com>
Date: Fri, 6 Dec 2024 02:58:11 +0200
Subject: [PATCH] net/mlx5: fix polling CQEs

[ upstream commit 73f7ae1d721aa5c388123db11827937205985999 ]

In certain situations, the receive queue (rxq) fails to replenish its
internal ring with memory buffers (mbufs) from the pool. This can happen
when the pool has a limited number of mbufs allocated, and the user
application holds incoming packets for an extended period, resulting in a
delayed release of mbufs. Consequently, the pool becomes depleted,
preventing the rxq from replenishing from it.

There was a bug in the behavior of the vectorized rxq_cq_process_v routine,
which handled completion queue entries (CQEs) in batches of four. This
routine consistently accessed four mbufs from the internal queue ring,
regardless of whether they had been replenished. As a result, it could
access mbufs that no longer belonged to the poll mode driver (PMD).

The fix involves checking if there are four replenished mbufs available
before allowing rxq_cq_process_v to handle the batch. Once replenishment
succeeds during the polling process, the routine will resume its operation.

Fixes: 1ded26239aa0 ("net/mlx5: refactor vectorized Rx")

Reported-by: Changqi Dingluo <dingluochangqi.ck@bytedance.com>
Signed-off-by: Gavin Hu <gahu@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 .mailmap                         | 4 +++-
 drivers/net/mlx5/mlx5_rxtx_vec.c | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index df8e5c48ab..51c2bc9df3 100644
--- a/.mailmap
+++ b/.mailmap
@@ -200,6 +200,7 @@ Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
 Chandubabu Namburu <chandu@amd.com>
 Changchun Ouyang <changchun.ouyang@intel.com>
 Changpeng Liu <changpeng.liu@intel.com>
+Changqi Dingluo <dingluochangqi.ck@bytedance.com>
 Changqing Wu <changqingx.wu@intel.com>
 Chaoyong He <chaoyong.he@corigine.com>
 Chao Zhu <chaozhu@linux.vnet.ibm.com> <bjzhuc@cn.ibm.com>
@@ -424,7 +425,8 @@ Gargi Sau <gargi.sau@intel.com>
 Gary Mussar <gmussar@ciena.com>
 Gaurav Singh <gaurav1086@gmail.com>
 Gautam Dawar <gdawar@solarflare.com>
-Gavin Hu <gavin.hu@arm.com> <gavin.hu@linaro.org>
+Gavin Hu <gahu@nvidia.com> <gavin.hu@arm.com> <gavin.hu@linaro.org>
+Gavin Li <gavinl@nvidia.com>
 Geoffrey Le Gourriérec <geoffrey.le_gourrierec@6wind.com>
 Geoffrey Lv <geoffrey.lv@gmail.com>
 Geoff Thorpe <geoff.thorpe@nxp.com>
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec.c b/drivers/net/mlx5/mlx5_rxtx_vec.c
index 667475a93e..f37e9e104e 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec.c
+++ b/drivers/net/mlx5/mlx5_rxtx_vec.c
@@ -324,6 +324,9 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts,
 	/* Not to cross queue end. */
 	pkts_n = RTE_MIN(pkts_n, q_n - elts_idx);
 	pkts_n = RTE_MIN(pkts_n, q_n - cq_idx);
+	/* Not to move past the allocated mbufs. */
+	pkts_n = RTE_MIN(pkts_n, RTE_ALIGN_FLOOR(rxq->rq_ci - rxq->rq_pi,
+						MLX5_VPMD_DESCS_PER_LOOP));
 	if (!pkts_n) {
 		*no_cq = !rcvd_pkt;
 		return rcvd_pkt;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.321175369 +0000
+++ 0012-net-mlx5-fix-polling-CQEs.patch	2025-02-17 16:13:16.794441593 +0000
@@ -1 +1 @@
-From 73f7ae1d721aa5c388123db11827937205985999 Mon Sep 17 00:00:00 2001
+From afbe03428db62e75c98afe1aa492b5d252fe8e56 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 73f7ae1d721aa5c388123db11827937205985999 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -30 +31 @@
- .mailmap                         | 3 ++-
+ .mailmap                         | 4 +++-
@@ -32 +33 @@
- 2 files changed, 5 insertions(+), 1 deletion(-)
+ 2 files changed, 6 insertions(+), 1 deletion(-)
@@ -35 +36 @@
-index 38e511a28b..1ed47e1cad 100644
+index df8e5c48ab..51c2bc9df3 100644
@@ -38,2 +39,2 @@
-@@ -225,6 +225,7 @@ Chandubabu Namburu <chandu@amd.com>
- Chang Miao <chang.miao@corigine.com>
+@@ -200,6 +200,7 @@ Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
+ Chandubabu Namburu <chandu@amd.com>
@@ -46 +47 @@
-@@ -465,7 +466,7 @@ Gargi Sau <gargi.sau@intel.com>
+@@ -424,7 +425,8 @@ Gargi Sau <gargi.sau@intel.com>
@@ -52 +53 @@
- Gavin Li <gavinl@nvidia.com>
++Gavin Li <gavinl@nvidia.com>
@@ -54,0 +56 @@
+ Geoff Thorpe <geoff.thorpe@nxp.com>
@@ -56 +58 @@
-index 1872bf310c..1b701801c5 100644
+index 667475a93e..f37e9e104e 100644
@@ -59 +61 @@
-@@ -325,6 +325,9 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts,
+@@ -324,6 +324,9 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts,

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

* patch 'net/iavf: remove reset of Tx prepare function pointer' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (10 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/mlx5: fix polling CQEs' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/ice: fix memory leak in scalar Rx' " luca.boccassi
                   ` (65 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Vladimir Medvedkin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From f2da2b7ca501a9a6faed8b239782c9b865f098e9 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 13 Dec 2024 14:33:19 +0000
Subject: [PATCH] net/iavf: remove reset of Tx prepare function pointer

[ upstream commit 41be96c907607bc709654f71901913f1534264f8 ]

The iavf driver only contains a single Tx prepare function, so when
selecting the Tx path, there is no need to reset and reassign the
function pointer in the ethdev structure. This fixes an issue where the
pointer was reset to NULL, but never assigned back later on function
selection.

Fixes: 5712bf9d6e14 ("net/iavf: add Tx AVX2 offload path")
Fixes: 08eb6a9cc2e1 ("net/iavf: fix Tx L4 checksum")
Fixes: 4f8259df563a ("net/iavf: enable Tx outer checksum offload on AVX512")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 073f724231..3272553b5c 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -3261,7 +3261,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 					    iavf_xmit_pkts_vec_avx2 :
 					    iavf_xmit_pkts_vec;
 		}
-		dev->tx_pkt_prepare = NULL;
 #ifdef CC_AVX512_SUPPORT
 		if (use_avx512) {
 			if (check_ret == IAVF_VECTOR_PATH) {
@@ -3270,7 +3269,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
 					    dev->data->port_id);
 			} else {
 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_offload;
-				dev->tx_pkt_prepare = iavf_prep_pkts;
 				PMD_DRV_LOG(DEBUG, "Using AVX512 OFFLOAD Vector Tx (port %d).",
 					    dev->data->port_id);
 			}
@@ -3299,7 +3297,6 @@ normal:
 	PMD_DRV_LOG(DEBUG, "Using Basic Tx callback (port=%d).",
 		    dev->data->port_id);
 	dev->tx_pkt_burst = iavf_xmit_pkts;
-	dev->tx_pkt_prepare = iavf_prep_pkts;
 }
 
 static int
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.353455422 +0000
+++ 0013-net-iavf-remove-reset-of-Tx-prepare-function-pointer.patch	2025-02-17 16:13:16.794441593 +0000
@@ -1 +1 @@
-From 41be96c907607bc709654f71901913f1534264f8 Mon Sep 17 00:00:00 2001
+From f2da2b7ca501a9a6faed8b239782c9b865f098e9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 41be96c907607bc709654f71901913f1534264f8 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -20,2 +21,2 @@
- drivers/net/iavf/iavf_rxtx.c | 6 ------
- 1 file changed, 6 deletions(-)
+ drivers/net/iavf/iavf_rxtx.c | 3 ---
+ 1 file changed, 3 deletions(-)
@@ -24 +25 @@
-index f7df5f21f2..457b5a5655 100644
+index 073f724231..3272553b5c 100644
@@ -27,4 +28,4 @@
-@@ -4173,7 +4173,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
- 		if (!use_sse && !use_avx2 && !use_avx512)
- 			goto normal;
- 
+@@ -3261,7 +3261,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+ 					    iavf_xmit_pkts_vec_avx2 :
+ 					    iavf_xmit_pkts_vec;
+ 		}
@@ -32,12 +33,4 @@
- 		if (use_sse) {
- 			PMD_DRV_LOG(DEBUG, "Using Vector Tx (port %d).",
- 				    dev->data->port_id);
-@@ -4190,7 +4189,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
- 				goto normal;
- 			} else {
- 				tx_burst_type = IAVF_TX_AVX2_OFFLOAD;
--				dev->tx_pkt_prepare = iavf_prep_pkts;
- 				PMD_DRV_LOG(DEBUG, "Using AVX2 OFFLOAD Vector Tx (port %d).",
- 					    dev->data->port_id);
- 			}
-@@ -4203,17 +4201,14 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+ #ifdef CC_AVX512_SUPPORT
+ 		if (use_avx512) {
+ 			if (check_ret == IAVF_VECTOR_PATH) {
+@@ -3270,7 +3269,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -45,10 +37,0 @@
- 			} else if (check_ret == IAVF_VECTOR_OFFLOAD_PATH) {
- 				tx_burst_type = IAVF_TX_AVX512_OFFLOAD;
--				dev->tx_pkt_prepare = iavf_prep_pkts;
- 				PMD_DRV_LOG(DEBUG, "Using AVX512 OFFLOAD Vector Tx (port %d).",
- 					    dev->data->port_id);
- 			} else if (check_ret == IAVF_VECTOR_CTX_PATH) {
- 				tx_burst_type = IAVF_TX_AVX512_CTX;
--				dev->tx_pkt_prepare = iavf_prep_pkts;
- 				PMD_DRV_LOG(DEBUG, "Using AVX512 CONTEXT Vector Tx (port %d).",
- 						dev->data->port_id);
@@ -56 +39 @@
- 				tx_burst_type = IAVF_TX_AVX512_CTX_OFFLOAD;
+ 				dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_offload;
@@ -58 +41 @@
- 				PMD_DRV_LOG(DEBUG, "Using AVX512 CONTEXT OFFLOAD Vector Tx (port %d).",
+ 				PMD_DRV_LOG(DEBUG, "Using AVX512 OFFLOAD Vector Tx (port %d).",
@@ -61 +44 @@
-@@ -4251,7 +4246,6 @@ normal:
+@@ -3299,7 +3297,6 @@ normal:
@@ -64 +47 @@
- 	tx_burst_type = IAVF_TX_DEFAULT;
+ 	dev->tx_pkt_burst = iavf_xmit_pkts;
@@ -65,0 +49 @@
+ }
@@ -67,2 +51 @@
- 	if (no_poll_on_link_down) {
- 		adapter->tx_burst_type = tx_burst_type;
+ static int

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

* patch 'net/ice: fix memory leak in scalar Rx' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (11 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'common/cnxk: fix atomic load in batch ops' " luca.boccassi
                   ` (64 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From e2b8339be196c4704b5441d4fc484b9081e27ef4 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Fri, 17 Jan 2025 17:52:05 +0000
Subject: [PATCH] net/ice: fix memory leak in scalar Rx

[ upstream commit 07cbd0b43ce4af9d628c8ad751789934d0a8c4a7 ]

If the buffer splitting feature is configured and the payload mbuf
allocation fails, the previously allocated header mbuf may be returned
not fully initialized or a memory leak may occur.  This patch handles
this case correctly by freeing the corresponding header buffer.

Fixes: 629dad3ef325 ("net/ice: support buffer split in scalar Rx")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 93b284ad87..0814c79bde 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -483,6 +483,7 @@ ice_alloc_rx_queue_mbufs(struct ice_rx_queue *rxq)
 			struct rte_mbuf *mbuf_pay;
 			mbuf_pay = rte_mbuf_raw_alloc(rxq->rxseg[1].mp);
 			if (unlikely(!mbuf_pay)) {
+				rte_pktmbuf_free(mbuf);
 				PMD_DRV_LOG(ERR, "Failed to allocate payload mbuf for RX");
 				return -ENOMEM;
 			}
@@ -1873,6 +1874,8 @@ ice_rx_alloc_bufs(struct ice_rx_queue *rxq)
 		diag_pay = rte_mempool_get_bulk(rxq->rxseg[1].mp,
 				(void *)mbufs_pay, rxq->rx_free_thresh);
 		if (unlikely(diag_pay != 0)) {
+			rte_mempool_put_bulk(rxq->mp, (void *)rxep,
+				    rxq->rx_free_thresh);
 			PMD_RX_LOG(ERR, "Failed to get payload mbufs in bulk");
 			return -ENOMEM;
 		}
@@ -2579,6 +2582,13 @@ ice_recv_pkts(void *rx_queue,
 			nmb_pay = rte_mbuf_raw_alloc(rxq->rxseg[1].mp);
 			if (unlikely(!nmb_pay)) {
 				rxq->vsi->adapter->pf.dev_data->rx_mbuf_alloc_failed++;
+				rxe->mbuf = NULL;
+				nb_hold--;
+				if (unlikely(rx_id == 0))
+					rx_id = rxq->nb_rx_desc;
+
+				rx_id--;
+				rte_pktmbuf_free(nmb);
 				break;
 			}
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.387522423 +0000
+++ 0014-net-ice-fix-memory-leak-in-scalar-Rx.patch	2025-02-17 16:13:16.798441593 +0000
@@ -1 +1 @@
-From 07cbd0b43ce4af9d628c8ad751789934d0a8c4a7 Mon Sep 17 00:00:00 2001
+From e2b8339be196c4704b5441d4fc484b9081e27ef4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 07cbd0b43ce4af9d628c8ad751789934d0a8c4a7 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 0c7106c7e0..f58df9bdfe 100644
+index 93b284ad87..0814c79bde 100644
@@ -24 +25 @@
-@@ -484,6 +484,7 @@ ice_alloc_rx_queue_mbufs(struct ice_rx_queue *rxq)
+@@ -483,6 +483,7 @@ ice_alloc_rx_queue_mbufs(struct ice_rx_queue *rxq)
@@ -32 +33 @@
-@@ -1900,6 +1901,8 @@ ice_rx_alloc_bufs(struct ice_rx_queue *rxq)
+@@ -1873,6 +1874,8 @@ ice_rx_alloc_bufs(struct ice_rx_queue *rxq)
@@ -41 +42 @@
-@@ -2607,6 +2610,13 @@ ice_recv_pkts(void *rx_queue,
+@@ -2579,6 +2582,13 @@ ice_recv_pkts(void *rx_queue,

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

* patch 'common/cnxk: fix atomic load in batch ops' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (12 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/ice: fix memory leak in scalar Rx' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'common/cnxk: fix DPI mailbox structure' " luca.boccassi
                   ` (63 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Nawal Kishor; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 0872aaa1f0c0d4a849f857367ae1c0f59eddaf1f Mon Sep 17 00:00:00 2001
From: Nawal Kishor <nkishor@marvell.com>
Date: Mon, 2 Dec 2024 22:27:39 +0530
Subject: [PATCH] common/cnxk: fix atomic load in batch ops

[ upstream commit 73d38682fddd614d95942442c20b3a1de211bb4c ]

In roc batch alloc wait code, __ATOMIC_RELAXED is changed to
__ATOMIC_ACQUIRE in order to avoid potential out of order loads.

Fixes: 50d08d3934ec ("common/cnxk: fix batch alloc completion poll logic")

Signed-off-by: Nawal Kishor <nkishor@marvell.com>
---
 .mailmap                      | 1 +
 drivers/common/cnxk/roc_npa.h | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 51c2bc9df3..8eb97ded9f 100644
--- a/.mailmap
+++ b/.mailmap
@@ -986,6 +986,7 @@ Natalie Samsonov <nsamsono@marvell.com>
 Natanael Copa <ncopa@alpinelinux.org>
 Nathan Law <nlaw@brocade.com>
 Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
+Nawal Kishor <nkishor@marvell.com>
 Neel Patel <neel.patel@amd.com> <neel@pensando.io>
 Neil Horman <nhorman@tuxdriver.com>
 Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
diff --git a/drivers/common/cnxk/roc_npa.h b/drivers/common/cnxk/roc_npa.h
index 46b668a310..3d0821dfe6 100644
--- a/drivers/common/cnxk/roc_npa.h
+++ b/drivers/common/cnxk/roc_npa.h
@@ -261,7 +261,7 @@ roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us)
 	/* Batch alloc status code is updated in bits [5:6] of the first word
 	 * of the 128 byte cache line.
 	 */
-	while (((__atomic_load_n(cache_line, __ATOMIC_RELAXED) >> 5) & 0x3) ==
+	while (((__atomic_load_n(cache_line, __ATOMIC_ACQUIRE) >> 5) & 0x3) ==
 	       ALLOC_CCODE_INVAL)
 		if (wait_us && (plt_tsc_cycles() - start) >= ticks)
 			break;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.420757215 +0000
+++ 0015-common-cnxk-fix-atomic-load-in-batch-ops.patch	2025-02-17 16:13:16.798441593 +0000
@@ -1 +1 @@
-From 73d38682fddd614d95942442c20b3a1de211bb4c Mon Sep 17 00:00:00 2001
+From 0872aaa1f0c0d4a849f857367ae1c0f59eddaf1f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 73d38682fddd614d95942442c20b3a1de211bb4c ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 1ed47e1cad..8524952d24 100644
+index 51c2bc9df3..8eb97ded9f 100644
@@ -22,2 +23,2 @@
-@@ -1079,6 +1079,7 @@ Natanael Copa <ncopa@alpinelinux.org>
- Nathan Brown <nathan.brown@arm.com>
+@@ -986,6 +986,7 @@ Natalie Samsonov <nsamsono@marvell.com>
+ Natanael Copa <ncopa@alpinelinux.org>
@@ -31 +32 @@
-index f7cb4460e7..8525038810 100644
+index 46b668a310..3d0821dfe6 100644
@@ -34 +35 @@
-@@ -255,7 +255,7 @@ roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us)
+@@ -261,7 +261,7 @@ roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us)

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

* patch 'common/cnxk: fix DPI mailbox structure' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (13 preceding siblings ...)
  2025-02-17 17:03 ` patch 'common/cnxk: fix atomic load in batch ops' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'crypto/virtio: fix redundant queue free' " luca.boccassi
                   ` (62 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Vamsi Attunuru; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 7c0f448f07b55ddae669e205b593db5dba195bc2 Mon Sep 17 00:00:00 2001
From: Vamsi Attunuru <vattunuru@marvell.com>
Date: Wed, 15 Jan 2025 18:06:54 +0530
Subject: [PATCH] common/cnxk: fix DPI mailbox structure

[ upstream commit b03c474188383c3d3d529b1c9ca86767e5fb6167 ]

In the existing DPI mailbox structure, one of the fields
spans a 64-bit boundary, making it appear unusual and
complicatng extraction using bit operations.

Patch enlarges csize fields to ensure that mailbox fields
are correctly positioned.

Fixes: b6e395692b6d ("common/cnxk: add DPI DMA support")

Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
---
 drivers/common/cnxk/roc_dpi_priv.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_dpi_priv.h b/drivers/common/cnxk/roc_dpi_priv.h
index 1fa1a715d3..a0a868fab9 100644
--- a/drivers/common/cnxk/roc_dpi_priv.h
+++ b/drivers/common/cnxk/roc_dpi_priv.h
@@ -27,7 +27,7 @@ typedef union dpi_mbox_msg_t {
 		/* Command code */
 		uint64_t cmd : 4;
 		/* Command buffer size in 8-byte words */
-		uint64_t csize : 14;
+		uint64_t csize : 16;
 		/* aura of the command buffer */
 		uint64_t aura : 20;
 		/* SSO PF function */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.453019494 +0000
+++ 0016-common-cnxk-fix-DPI-mailbox-structure.patch	2025-02-17 16:13:16.798441593 +0000
@@ -1 +1 @@
-From b03c474188383c3d3d529b1c9ca86767e5fb6167 Mon Sep 17 00:00:00 2001
+From 7c0f448f07b55ddae669e205b593db5dba195bc2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b03c474188383c3d3d529b1c9ca86767e5fb6167 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 1f975915f7..05b6751ca6 100644
+index 1fa1a715d3..a0a868fab9 100644

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

* patch 'crypto/virtio: fix redundant queue free' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (14 preceding siblings ...)
  2025-02-17 17:03 ` patch 'common/cnxk: fix DPI mailbox structure' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'crypto/openssl: fix CMAC auth context update' " luca.boccassi
                   ` (61 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Rajesh Mudimadugula; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 8d2f28691561ee61e933df70b750f9b1fad0dc4a Mon Sep 17 00:00:00 2001
From: Rajesh Mudimadugula <rmudimadugul@marvell.com>
Date: Wed, 27 Nov 2024 14:12:48 +0000
Subject: [PATCH] crypto/virtio: fix redundant queue free

[ upstream commit 89241aba832c044a9efb99329cfaa9faff8a6c4e ]

Remove multiple invocations of virtio_crypto_queue_release,
and set virtio crypto queue as null upon free to avoid
segfaults.

Fixes: 6f0175ff53e0 ("crypto/virtio: support basic PMD ops")

Signed-off-by: Rajesh Mudimadugula <rmudimadugul@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 .mailmap                                 |  1 +
 drivers/crypto/virtio/virtio_cryptodev.c | 11 +++++------
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/.mailmap b/.mailmap
index 8eb97ded9f..9b6f5f770d 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1137,6 +1137,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
 Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
 Rahul Shah <rahul.r.shah@intel.com>
 Raja Zidane <rzidane@nvidia.com>
+Rajesh Mudimadugula <rmudimadugul@marvell.com>
 Rajesh Ravi <rajesh.ravi@broadcom.com>
 Rakesh Kudurumalla <rkudurumalla@marvell.com> <rkudurumalla@caviumnetworks.com>
 Ralf Hoffmann <ralf.hoffmann@allegro-packets.com>
diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c
index 4854820ba6..b696cedb49 100644
--- a/drivers/crypto/virtio/virtio_cryptodev.c
+++ b/drivers/crypto/virtio/virtio_cryptodev.c
@@ -479,10 +479,13 @@ virtio_crypto_free_queues(struct rte_cryptodev *dev)
 
 	/* control queue release */
 	virtio_crypto_queue_release(hw->cvq);
+	hw->cvq = NULL;
 
 	/* data queue release */
-	for (i = 0; i < hw->max_dataqueues; i++)
+	for (i = 0; i < hw->max_dataqueues; i++) {
 		virtio_crypto_queue_release(dev->data->queue_pairs[i]);
+		dev->data->queue_pairs[i] = NULL;
+	}
 }
 
 static int
@@ -614,6 +617,7 @@ virtio_crypto_qp_release(struct rte_cryptodev *dev, uint16_t queue_pair_id)
 	}
 
 	virtio_crypto_queue_release(vq);
+	dev->data->queue_pairs[queue_pair_id] = NULL;
 	return 0;
 }
 
@@ -761,8 +765,6 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev,
 static int
 virtio_crypto_dev_uninit(struct rte_cryptodev *cryptodev)
 {
-	struct virtio_crypto_hw *hw = cryptodev->data->dev_private;
-
 	PMD_INIT_FUNC_TRACE();
 
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY)
@@ -777,9 +779,6 @@ virtio_crypto_dev_uninit(struct rte_cryptodev *cryptodev)
 	cryptodev->enqueue_burst = NULL;
 	cryptodev->dequeue_burst = NULL;
 
-	/* release control queue */
-	virtio_crypto_queue_release(hw->cvq);
-
 	rte_free(cryptodev->data);
 	cryptodev->data = NULL;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.491893186 +0000
+++ 0017-crypto-virtio-fix-redundant-queue-free.patch	2025-02-17 16:13:16.798441593 +0000
@@ -1 +1 @@
-From 89241aba832c044a9efb99329cfaa9faff8a6c4e Mon Sep 17 00:00:00 2001
+From 8d2f28691561ee61e933df70b750f9b1fad0dc4a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 89241aba832c044a9efb99329cfaa9faff8a6c4e ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 8524952d24..e428ed3dec 100644
+index 8eb97ded9f..9b6f5f770d 100644
@@ -24 +25 @@
-@@ -1252,6 +1252,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
+@@ -1137,6 +1137,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
@@ -33 +34 @@
-index 643921dc02..98415af123 100644
+index 4854820ba6..b696cedb49 100644
@@ -36 +37 @@
-@@ -478,10 +478,13 @@ virtio_crypto_free_queues(struct rte_cryptodev *dev)
+@@ -479,10 +479,13 @@ virtio_crypto_free_queues(struct rte_cryptodev *dev)
@@ -51 +52 @@
-@@ -613,6 +616,7 @@ virtio_crypto_qp_release(struct rte_cryptodev *dev, uint16_t queue_pair_id)
+@@ -614,6 +617,7 @@ virtio_crypto_qp_release(struct rte_cryptodev *dev, uint16_t queue_pair_id)
@@ -59 +60 @@
-@@ -760,8 +764,6 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev,
+@@ -761,8 +765,6 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev,
@@ -68 +69 @@
-@@ -776,9 +778,6 @@ virtio_crypto_dev_uninit(struct rte_cryptodev *cryptodev)
+@@ -777,9 +779,6 @@ virtio_crypto_dev_uninit(struct rte_cryptodev *cryptodev)

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

* patch 'crypto/openssl: fix CMAC auth context update' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (15 preceding siblings ...)
  2025-02-17 17:03 ` patch 'crypto/virtio: fix redundant queue free' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'crypto/virtio: fix data queues iteration' " luca.boccassi
                   ` (60 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Wathsala Vithanage; +Cc: Jack Bond-Preston, Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From fab6dc3fdbe9db3ab64d3f1b670effdf0b7fe492 Mon Sep 17 00:00:00 2001
From: Wathsala Vithanage <wathsala.vithanage@arm.com>
Date: Fri, 29 Nov 2024 20:20:22 +0000
Subject: [PATCH] crypto/openssl: fix CMAC auth context update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 0241aebfa3bdc53fb36972fb116298adbdbd3957 ]

This patch removes an unnecessary cleanup of the shared CMAC context at
the end of the CMAC authentication function, which causes subsequent
calls to it to fail.

Fixes: 17d5bc6135af ("crypto/openssl: make per-QP auth context clones")

Signed-off-by: Wathsala Vithanage <wathsala.vithanage@arm.com>
Reviewed-by: Jack Bond-Preston <jack.bond-preston@foss.arm.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/openssl/rte_openssl_pmd.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 7eaa9650b6..679a7bbeb6 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1594,9 +1594,6 @@ process_openssl_auth_cmac(struct rte_mbuf *mbuf_src, uint8_t *dst, int offset,
 process_auth_final:
 	if (CMAC_Final(ctx, dst, (size_t *)&dstlen) != 1)
 		goto process_auth_err;
-
-	CMAC_CTX_cleanup(ctx);
-
 	return 0;
 
 process_auth_err:
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.525247203 +0000
+++ 0018-crypto-openssl-fix-CMAC-auth-context-update.patch	2025-02-17 16:13:16.798441593 +0000
@@ -1 +1 @@
-From 0241aebfa3bdc53fb36972fb116298adbdbd3957 Mon Sep 17 00:00:00 2001
+From fab6dc3fdbe9db3ab64d3f1b670effdf0b7fe492 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 0241aebfa3bdc53fb36972fb116298adbdbd3957 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index d2cf20c059..b090611bd0 100644
+index 7eaa9650b6..679a7bbeb6 100644
@@ -27 +28 @@
-@@ -1595,9 +1595,6 @@ process_openssl_auth_cmac(struct rte_mbuf *mbuf_src, uint8_t *dst, int offset,
+@@ -1594,9 +1594,6 @@ process_openssl_auth_cmac(struct rte_mbuf *mbuf_src, uint8_t *dst, int offset,

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

* patch 'crypto/virtio: fix data queues iteration' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (16 preceding siblings ...)
  2025-02-17 17:03 ` patch 'crypto/openssl: fix CMAC auth context update' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/enetfec: remove useless assignment' " luca.boccassi
                   ` (59 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Gowrishankar Muthukrishnan; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 0fda42768976db5e1e2324925bb79754e874cac2 Mon Sep 17 00:00:00 2001
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Date: Tue, 7 Jan 2025 23:06:02 +0530
Subject: [PATCH] crypto/virtio: fix data queues iteration

[ upstream commit e27ff6e63a8d6202149d5b458ad3d78711806dfc ]

Fix dataqueues iteration using nb_queue_pairs info available in
device data instead of max dataqueues as dataqueue count might
have been changed in device configuration.

Fixes: 6f0175ff53e0 ("crypto/virtio: support basic PMD ops")

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 drivers/crypto/virtio/virtio_cryptodev.c | 3 +--
 drivers/crypto/virtio/virtio_rxtx.c      | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c
index b696cedb49..51e560e045 100644
--- a/drivers/crypto/virtio/virtio_cryptodev.c
+++ b/drivers/crypto/virtio/virtio_cryptodev.c
@@ -849,9 +849,8 @@ static void
 virtio_crypto_dev_free_mbufs(struct rte_cryptodev *dev)
 {
 	uint32_t i;
-	struct virtio_crypto_hw *hw = dev->data->dev_private;
 
-	for (i = 0; i < hw->max_dataqueues; i++) {
+	for (i = 0; i < dev->data->nb_queue_pairs; i++) {
 		VIRTIO_CRYPTO_INIT_LOG_DBG("Before freeing dataq[%d] used "
 			"and unused buf", i);
 		VIRTQUEUE_DUMP((struct virtqueue *)
diff --git a/drivers/crypto/virtio/virtio_rxtx.c b/drivers/crypto/virtio/virtio_rxtx.c
index 48b5f4ebbb..d02486661f 100644
--- a/drivers/crypto/virtio/virtio_rxtx.c
+++ b/drivers/crypto/virtio/virtio_rxtx.c
@@ -419,12 +419,11 @@ virtio_crypto_dataq_start(struct rte_cryptodev *dev)
 	 * -	Setup vring structure for data queues
 	 */
 	uint16_t i;
-	struct virtio_crypto_hw *hw = dev->data->dev_private;
 
 	PMD_INIT_FUNC_TRACE();
 
 	/* Start data vring. */
-	for (i = 0; i < hw->max_dataqueues; i++) {
+	for (i = 0; i < dev->data->nb_queue_pairs; i++) {
 		virtio_crypto_vring_start(dev->data->queue_pairs[i]);
 		VIRTQUEUE_DUMP((struct virtqueue *)dev->data->queue_pairs[i]);
 	}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.556847303 +0000
+++ 0019-crypto-virtio-fix-data-queues-iteration.patch	2025-02-17 16:13:16.802441593 +0000
@@ -1 +1 @@
-From e27ff6e63a8d6202149d5b458ad3d78711806dfc Mon Sep 17 00:00:00 2001
+From 0fda42768976db5e1e2324925bb79754e874cac2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e27ff6e63a8d6202149d5b458ad3d78711806dfc ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 98415af123..b4a6fae9e0 100644
+index b696cedb49..51e560e045 100644
@@ -24 +25 @@
-@@ -848,9 +848,8 @@ static void
+@@ -849,9 +849,8 @@ static void

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

* patch 'net/enetfec: remove useless assignment' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (17 preceding siblings ...)
  2025-02-17 17:03 ` patch 'crypto/virtio: fix data queues iteration' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/cnxk: fix NIX send header L3 type' " luca.boccassi
                   ` (58 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Ariel Otilibili; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ccd7e6b38b5505bca120c7a1068644c43d6d4a2f Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <otilibil@eurecom.fr>
Date: Wed, 18 Dec 2024 21:00:09 +0100
Subject: [PATCH] net/enetfec: remove useless assignment

[ upstream commit 93fdf2ab302f244076c3894ab4a1a5b86d704eae ]

Coverity issue: 374016
Fixes: bb5b5bf1e5c6 ("net/enetfec: support queue configuration")

Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
---
 drivers/net/enetfec/enet_ethdev.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/enetfec/enet_ethdev.c b/drivers/net/enetfec/enet_ethdev.c
index 898aad1c37..d7a1121ff4 100644
--- a/drivers/net/enetfec/enet_ethdev.c
+++ b/drivers/net/enetfec/enet_ethdev.c
@@ -414,7 +414,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev,
 			offset_des_active_txq[queue_idx];
 	bd_base = (struct bufdesc *)(((uintptr_t)bd_base) + size);
 	txq->bd.last = (struct bufdesc *)(((uintptr_t)bd_base) - dsize);
-	bdp = txq->bd.base;
 	bdp = txq->bd.cur;
 
 	for (i = 0; i < txq->bd.ring_size; i++) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.586397189 +0000
+++ 0020-net-enetfec-remove-useless-assignment.patch	2025-02-17 16:13:16.802441593 +0000
@@ -1 +1 @@
-From 93fdf2ab302f244076c3894ab4a1a5b86d704eae Mon Sep 17 00:00:00 2001
+From ccd7e6b38b5505bca120c7a1068644c43d6d4a2f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 93fdf2ab302f244076c3894ab4a1a5b86d704eae ]
+
@@ -8 +9,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
-index 91c0f60490..0d27b63953 100644
+index 898aad1c37..d7a1121ff4 100644
@@ -19 +20 @@
-@@ -415,7 +415,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -414,7 +414,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev,

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

* patch 'net/cnxk: fix NIX send header L3 type' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (18 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/enetfec: remove useless assignment' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'eal/linux: fix memseg length in legacy mem init' " luca.boccassi
                   ` (57 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Rahul Bhansali; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From bf3f2c07d4ed6953ae982869c975f508c5eece40 Mon Sep 17 00:00:00 2001
From: Rahul Bhansali <rbhansali@marvell.com>
Date: Thu, 30 Jan 2025 17:25:26 +0530
Subject: [PATCH] net/cnxk: fix NIX send header L3 type

[ upstream commit 32c18e7364e30a8e43cc7cc6709a7ce606fa285e ]

For small packets less than 55 bytes, SQ error interrupts are
observed.
When checksum offload flag is enabled and mbuf ol_flags are not
set, then default L3 type will be set to IPv6 in vector
processing. Based on this, HW will still validate for minimum
header size and generate send header error if mismatch.

To address this, will set default L3 type to none. Mbuf ol_flags
RTE_MBUF_F_TX_IPV6 will set with offload feature TSO or L4
checksum only, so handled in corresponding routine.

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

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
---
 drivers/net/cnxk/cn10k_tx.h | 7 +++++--
 drivers/net/cnxk/cn9k_tx.h  | 7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index cd9b1f225e..97d06ab491 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1340,6 +1340,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
 	w0->lso_mps = m->tso_segsz;
 	w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
 	w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
+	w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
+		      ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
+		      !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
 
 	/* Handle tunnel tso */
 	if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) &&
@@ -2031,7 +2034,7 @@ again:
 			 */
 			const uint8x16_t tbl = {
 				/* [0-15] = il4type:il3type */
-				0x04, /* none (IPv6 assumed) */
+				0x00, /* none */
 				0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
 				0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
 				0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
@@ -2235,7 +2238,7 @@ again:
 			const uint8x16x2_t tbl = {{
 				{
 					/* [0-15] = il4type:il3type */
-					0x04, /* none (IPv6) */
+					0x00, /* none */
 					0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
 					0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
 					0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
diff --git a/drivers/net/cnxk/cn9k_tx.h b/drivers/net/cnxk/cn9k_tx.h
index 33db781abe..a76c071d8a 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -659,6 +659,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
 	w0->lso_mps = m->tso_segsz;
 	w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
 	w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
+	w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
+		      ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
+		      !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
 
 	/* Handle tunnel tso */
 	if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) &&
@@ -1147,7 +1150,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 			 */
 			const uint8x16_t tbl = {
 				/* [0-15] = il4type:il3type */
-				0x04, /* none (IPv6 assumed) */
+				0x00, /* none */
 				0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
 				0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
 				0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
@@ -1351,7 +1354,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
 			const uint8x16x2_t tbl = {{
 				{
 					/* [0-15] = il4type:il3type */
-					0x04, /* none (IPv6) */
+					0x00, /* none */
 					0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
 					0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
 					0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.617853929 +0000
+++ 0021-net-cnxk-fix-NIX-send-header-L3-type.patch	2025-02-17 16:13:16.802441593 +0000
@@ -1 +1 @@
-From 32c18e7364e30a8e43cc7cc6709a7ce606fa285e Mon Sep 17 00:00:00 2001
+From bf3f2c07d4ed6953ae982869c975f508c5eece40 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 32c18e7364e30a8e43cc7cc6709a7ce606fa285e ]
+
@@ -20 +21,0 @@
-Cc: stable@dpdk.org
@@ -25 +25,0 @@
- drivers/net/cnxk/cn20k_tx.h | 7 +++++--
@@ -27 +27 @@
- 3 files changed, 15 insertions(+), 6 deletions(-)
+ 2 files changed, 10 insertions(+), 4 deletions(-)
@@ -30 +30 @@
-index 7d9b259a5f..77f4e54cd8 100644
+index cd9b1f225e..97d06ab491 100644
@@ -33 +33 @@
-@@ -1773,6 +1773,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
+@@ -1340,6 +1340,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
@@ -43,33 +43 @@
-@@ -2477,7 +2480,7 @@ again:
- 			 */
- 			const uint8x16_t tbl = {
- 				/* [0-15] = il4type:il3type */
--				0x04, /* none (IPv6 assumed) */
-+				0x00, /* none */
- 				0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6 assumed) */
- 				0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6 assumed) */
- 				0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6 assumed) */
-@@ -2681,7 +2684,7 @@ again:
- 			const uint8x16x2_t tbl = {{
- 				{
- 					/* [0-15] = il4type:il3type */
--					0x04, /* none (IPv6) */
-+					0x00, /* none */
- 					0x14, /* RTE_MBUF_F_TX_TCP_CKSUM (IPv6) */
- 					0x24, /* RTE_MBUF_F_TX_SCTP_CKSUM (IPv6) */
- 					0x34, /* RTE_MBUF_F_TX_UDP_CKSUM (IPv6) */
-diff --git a/drivers/net/cnxk/cn20k_tx.h b/drivers/net/cnxk/cn20k_tx.h
-index c731406529..8c3ba8326d 100644
---- a/drivers/net/cnxk/cn20k_tx.h
-+++ b/drivers/net/cnxk/cn20k_tx.h
-@@ -1733,6 +1733,9 @@ cn20k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1, union nix
- 	w0->lso_mps = m->tso_segsz;
- 	w0->lso_format = NIX_LSO_FORMAT_IDX_TSOV4 + !!(ol_flags & RTE_MBUF_F_TX_IPV6);
- 	w1->ol4type = NIX_SENDL4TYPE_TCP_CKSUM;
-+	w1->ol3type = ((!!(ol_flags & RTE_MBUF_F_TX_IPV4)) << 1) +
-+		      ((!!(ol_flags & RTE_MBUF_F_TX_IPV6)) << 2) +
-+		      !!(ol_flags & RTE_MBUF_F_TX_IP_CKSUM);
- 
- 	/* Handle tunnel tso */
- 	if ((flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) && (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)) {
-@@ -2395,7 +2398,7 @@ again:
+@@ -2031,7 +2034,7 @@ again:
@@ -84 +52 @@
-@@ -2595,7 +2598,7 @@ again:
+@@ -2235,7 +2238,7 @@ again:
@@ -94 +62 @@
-index 9370985864..902a17860c 100644
+index 33db781abe..a76c071d8a 100644
@@ -97 +65 @@
-@@ -889,6 +889,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
+@@ -659,6 +659,9 @@ cn9k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
@@ -107 +75 @@
-@@ -1402,7 +1405,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1147,7 +1150,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -116 +84 @@
-@@ -1606,7 +1609,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -1351,7 +1354,7 @@ cn9k_nix_xmit_pkts_vector(void *tx_queue, struct rte_mbuf **tx_pkts,

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

* patch 'eal/linux: fix memseg length in legacy mem init' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (19 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/cnxk: fix NIX send header L3 type' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'use Python raw string notation' " luca.boccassi
                   ` (56 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Yang Ming; +Cc: Dmitry Kozlyuk, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 8d10eae3cd0ec8c0970339a8ae91eac7487f549a Mon Sep 17 00:00:00 2001
From: Yang Ming <ming.1.yang@nokia-sbell.com>
Date: Thu, 2 Jan 2025 16:58:38 +0800
Subject: [PATCH] eal/linux: fix memseg length in legacy mem init
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit b974cbbbef6e1036e7ed7d19fefb7ef8cda0e4a1 ]

Fix the issue where OS memory is mistakenly freed with rte_free
by setting the length (len) of unused memseg to 0.

When `eal_legacy_hugepage_init()` releases the VA space for
unused memseg lists(MSLs), it does not reset MSLs' length to 0.
As a result, `mlx5_mem_is_rte()` may incorrectly identify OS
memory as rte memory.
This can lead to `mlx_free()` calling `rte_free()` on OS memory,
causing an "EAL: Error: Invalid memory" log and failing to free
the OS memory.

This issue is occasional and occurs when the DPDK program’s
memory map places the heap address range between 0 and len(32G).
In such cases, malloc may return an address less than len,
causing `mlx5_mem_is_rte()` to incorrectly treat it as rte
memory.

Also, consider how the MSL with `base_va == NULL` ends up in
`mlx5_mem_is_rte()`. It comes from `rte_mem_virt2memseg_list()`
which iterates MSLs and checks that an address belongs to
[`base_va`; `base_va+len`) without checking whether
`base_va == NULL` i.e. that the MSL is inactive. So this patch
also corrects `rte_mem_virt2memseg_list()` behavior.

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

Signed-off-by: Yang Ming <ming.1.yang@nokia-sbell.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
---
 .mailmap                   | 1 +
 lib/eal/linux/eal_memory.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.mailmap b/.mailmap
index 9b6f5f770d..fdcfe1c30a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1559,6 +1559,7 @@ Yahui Cao <yahui.cao@intel.com>
 Yajun Wu <yajunw@nvidia.com>
 Yangchao Zhou <zhouyates@gmail.com>
 Yanglong Wu <yanglong.wu@intel.com>
+Yang Ming <ming.1.yang@nokia-sbell.com>
 Yang Zhang <zy107165@alibaba-inc.com>
 Yanjie Xu <yanjie.xu@intel.com>
 Yan Xia <yanx.xia@intel.com>
diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
index 9b6f08fba8..077f77d406 100644
--- a/lib/eal/linux/eal_memory.c
+++ b/lib/eal/linux/eal_memory.c
@@ -1472,6 +1472,7 @@ eal_legacy_hugepage_init(void)
 		mem_sz = msl->len;
 		munmap(msl->base_va, mem_sz);
 		msl->base_va = NULL;
+		msl->len = 0;
 		msl->heap = 0;
 
 		/* destroy backing fbarray */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.653512050 +0000
+++ 0022-eal-linux-fix-memseg-length-in-legacy-mem-init.patch	2025-02-17 16:13:16.806441593 +0000
@@ -1 +1 @@
-From b974cbbbef6e1036e7ed7d19fefb7ef8cda0e4a1 Mon Sep 17 00:00:00 2001
+From 8d10eae3cd0ec8c0970339a8ae91eac7487f549a Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit b974cbbbef6e1036e7ed7d19fefb7ef8cda0e4a1 ]
+
@@ -34 +35,0 @@
-Cc: stable@dpdk.org
@@ -44 +45 @@
-index 9209a716e0..19bbdbc0c8 100644
+index 9b6f5f770d..fdcfe1c30a 100644
@@ -47 +48 @@
-@@ -1722,6 +1722,7 @@ Yahui Cao <yahui.cao@intel.com>
+@@ -1559,6 +1559,7 @@ Yahui Cao <yahui.cao@intel.com>
@@ -56 +57 @@
-index 45879ca743..9dda60c0e1 100644
+index 9b6f08fba8..077f77d406 100644

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

* patch 'use Python raw string notation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (20 preceding siblings ...)
  2025-02-17 17:03 ` patch 'eal/linux: fix memseg length in legacy mem init' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'net/af_packet: fix socket close on device stop' " luca.boccassi
                   ` (55 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Ariel Otilibili; +Cc: Robin Jarry, Luca Vizzarro, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 36f4323ab38a21028cb1d41c253f815031ef4915 Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <otilibil@eurecom.fr>
Date: Sat, 14 Dec 2024 11:36:35 +0100
Subject: [PATCH] use Python raw string notation

[ upstream commit d3e90e5e37872f1040f37a08b056102c1a302bb3 ]

* follow up of a discussion with Robin Jarry
* since 3.12 invalid escape sequences generate SyntaxWarning
* in the future, these invalid sequences will generate SyntaxError
* therefore changed syntax to raw string notation.

Link: https://inbox.dpdk.org/dev/D6AMQXRSG8E7.33BAORRHRHV9A@redhat.com/
Link: https://docs.python.org/3/whatsnew/3.12.html#other-language-changes
Fixes: 9d4efc5cc6f9 ("buildtools: fix NUMA nodes count")
Fixes: f88b0b892204 ("devtools: forbid indent with tabs in Meson")

Suggested-by: Robin Jarry <rjarry@redhat.com>
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
Reviewed-by: Luca Vizzarro <luca.vizzarro@arm.com>
---
 buildtools/get-numa-count.py | 2 +-
 devtools/check-meson.py      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/buildtools/get-numa-count.py b/buildtools/get-numa-count.py
index 2f243886cd..f8bea5b58e 100644
--- a/buildtools/get-numa-count.py
+++ b/buildtools/get-numa-count.py
@@ -11,7 +11,7 @@ import re
 if os.name == 'posix':
     if os.path.isdir('/sys/devices/system/node'):
         numa_nodes = glob.glob('/sys/devices/system/node/node*')
-        numa_nodes.sort(key=lambda l: int(re.findall('\d+', l)[0]))
+        numa_nodes.sort(key=lambda l: int(re.findall(r'\d+', l)[0]))
         print(int(os.path.basename(numa_nodes[-1])[4:]) + 1)
     else:
         subprocess.run(['sysctl', '-n', 'vm.ndomains'], check=False)
diff --git a/devtools/check-meson.py b/devtools/check-meson.py
index 4b2338828d..9a33d8b036 100755
--- a/devtools/check-meson.py
+++ b/devtools/check-meson.py
@@ -51,7 +51,7 @@ def check_indentation(filename, contents):
         code, comments = split_code_comments(line)
         if not code.strip():
             continue
-        if re.match('^ *\t', code):
+        if re.match(r'^ *\t', code):
             print(f'Error parsing {filename}:{lineno}, got some tabulation')
         if code.endswith('files('):
             if infiles:
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.684389318 +0000
+++ 0023-use-Python-raw-string-notation.patch	2025-02-17 16:13:16.806441593 +0000
@@ -1 +1 @@
-From d3e90e5e37872f1040f37a08b056102c1a302bb3 Mon Sep 17 00:00:00 2001
+From 36f4323ab38a21028cb1d41c253f815031ef4915 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d3e90e5e37872f1040f37a08b056102c1a302bb3 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -21,5 +22,3 @@
- buildtools/get-numa-count.py                           | 2 +-
- devtools/check-meson.py                                | 2 +-
- dts/framework/testbed_model/traffic_generator/scapy.py | 2 +-
- dts/tests/TestSuite_smoke_tests.py                     | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
+ buildtools/get-numa-count.py | 2 +-
+ devtools/check-meson.py      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
@@ -53,25 +51,0 @@
-diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py b/dts/framework/testbed_model/traffic_generator/scapy.py
-index d24efc44e6..a16cdf6758 100644
---- a/dts/framework/testbed_model/traffic_generator/scapy.py
-+++ b/dts/framework/testbed_model/traffic_generator/scapy.py
-@@ -237,6 +237,6 @@ class ScapyTrafficGenerator(PythonShell, CapturingTrafficGenerator):
-         )
-         # In the string of bytes "b'XXXX'", we only want the contents ("XXXX")
-         list_of_packets_base64 = re.findall(
--            f"^b'({REGEX_FOR_BASE64_ENCODING})'", packet_strs, re.MULTILINE
-+            rf"^b'({REGEX_FOR_BASE64_ENCODING})'", packet_strs, re.MULTILINE
-         )
-         return [Ether(base64_bytes(pakt)) for pakt in list_of_packets_base64]
-diff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py
-index bc3a2a6bf9..ab5ad44850 100644
---- a/dts/tests/TestSuite_smoke_tests.py
-+++ b/dts/tests/TestSuite_smoke_tests.py
-@@ -136,7 +136,7 @@ class TestSmokeTests(TestSuite):
-             # with the address for the nic we are on in the loop and then captures the
-             # name of the driver in a group
-             devbind_info_for_nic = re.search(
--                f"{nic.pci}[^\\n]*drv=([\\d\\w-]*) [^\\n]*",
-+                rf"{nic.pci}[^\\n]*drv=([\\d\\w-]*) [^\\n]*",
-                 all_nics_in_dpdk_devbind,
-             )
-             self.verify(

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

* patch 'net/af_packet: fix socket close on device stop' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (21 preceding siblings ...)
  2025-02-17 17:03 ` patch 'use Python raw string notation' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'ethdev: fix functions available in new device event' " luca.boccassi
                   ` (54 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Tudor Cornea; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 9c3d54e8aa2e8e66bbc5326028e0776631a42411 Mon Sep 17 00:00:00 2001
From: Tudor Cornea <tudor.cornea@gmail.com>
Date: Tue, 4 Feb 2025 18:45:08 +0200
Subject: [PATCH] net/af_packet: fix socket close on device stop

[ upstream commit 872e846f6bb31afbdd508903380cf05a3d313a3a ]

Currently, if we call rte_eth_dev_stop(), the sockets are closed.
If we attempt to start the port again, socket related operations
will not work correctly.

This can be alleviated by closing the socket at the same place in
which we currently free the memory, in eth_dev_close().

If an application calls rte_eth_dev_stop() on a port managed
by the af_packet PMD, the port becomes unusable. This is in contrast
with ports managed by other drivers (e.g virtio).

I also managed to reproduce the issue using testpmd.

sudo ip link add test-veth0 type veth peer name test-veth1

sudo ip link set test-veth0 up
sudo ip link set test-veth1 up

AF_PACKET_ARGS=\
"blocksz=4096,framesz=2048,framecnt=512,qpairs=1,qdisc_bypass=0"

sudo ./dpdk-testpmd \
        -l 0-3 \
        -m 1024 \
        --no-huge \
        --no-shconf \
        --no-pci \
        --vdev=net_af_packet0,iface=test-veth0,${AF_PACKET_ARGS} \
        --vdev=net_af_packet1,iface=test-veth1,${AF_PACKET_ARGS} \
        -- \
        -i

testpmd> start tx_first

Forwarding will start, and we will see traffic on the interfaces.

testpmd> stop
testpmd> port stop 0
Stopping ports...
Checking link statuses...
Done
testpmd> port stop 1
Stopping ports...
Checking link statuses...
Done

testpmd> port start 0
AFPACKET: eth_dev_macaddr_set(): receive socket not found
Port 0: CA:65:81:63:81:B2
Checking link statuses...
Done
testpmd> port start 1
AFPACKET: eth_dev_macaddr_set(): receive socket not found
Port 1: CA:12:D0:BE:93:3F
Checking link statuses...
Done

testpmd> start tx_first

When we start forwarding again, we can see that there is no traffic
on the interfaces. This does not happen when testing with other PMD
drivers (e.g virtio).

With the patch, the port should re-initialize correctly.

testpmd> port start 0
Port 0: CA:65:81:63:81:B2
Checking link statuses...
Done

Fixes: 364e08f2bbc0 ("af_packet: add PMD for AF_PACKET-based virtual devices")

Signed-off-by: Tudor Cornea <tudor.cornea@gmail.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 30 +++++++++++------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 6b7b16f348..0b059bfd0b 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -332,27 +332,12 @@ static int
 eth_dev_stop(struct rte_eth_dev *dev)
 {
 	unsigned i;
-	int sockfd;
 	struct pmd_internals *internals = dev->data->dev_private;
 
 	for (i = 0; i < internals->nb_queues; i++) {
-		sockfd = internals->rx_queue[i].sockfd;
-		if (sockfd != -1)
-			close(sockfd);
-
-		/* Prevent use after free in case tx fd == rx fd */
-		if (sockfd != internals->tx_queue[i].sockfd) {
-			sockfd = internals->tx_queue[i].sockfd;
-			if (sockfd != -1)
-				close(sockfd);
-		}
-
-		internals->rx_queue[i].sockfd = -1;
-		internals->tx_queue[i].sockfd = -1;
 		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}
-
 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
 	return 0;
 }
@@ -447,6 +432,7 @@ eth_dev_close(struct rte_eth_dev *dev)
 	struct pmd_internals *internals;
 	struct tpacket_req *req;
 	unsigned int q;
+	int sockfd;
 
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
@@ -457,6 +443,20 @@ eth_dev_close(struct rte_eth_dev *dev)
 	internals = dev->data->dev_private;
 	req = &internals->req;
 	for (q = 0; q < internals->nb_queues; q++) {
+		sockfd = internals->rx_queue[q].sockfd;
+		if (sockfd != -1)
+			close(sockfd);
+
+		/* Prevent use after free in case tx fd == rx fd */
+		if (sockfd != internals->tx_queue[q].sockfd) {
+			sockfd = internals->tx_queue[q].sockfd;
+			if (sockfd != -1)
+				close(sockfd);
+		}
+
+		internals->rx_queue[q].sockfd = -1;
+		internals->tx_queue[q].sockfd = -1;
+
 		munmap(internals->rx_queue[q].map,
 			2 * req->tp_block_size * req->tp_block_nr);
 		rte_free(internals->rx_queue[q].rd);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.717898277 +0000
+++ 0024-net-af_packet-fix-socket-close-on-device-stop.patch	2025-02-17 16:13:16.806441593 +0000
@@ -1 +1 @@
-From 872e846f6bb31afbdd508903380cf05a3d313a3a Mon Sep 17 00:00:00 2001
+From 9c3d54e8aa2e8e66bbc5326028e0776631a42411 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 872e846f6bb31afbdd508903380cf05a3d313a3a ]
+
@@ -77 +78,0 @@
-Cc: stable@dpdk.org
@@ -85 +86 @@
-index 7fcd27ee0c..ab34285ed9 100644
+index 6b7b16f348..0b059bfd0b 100644
@@ -88 +89 @@
-@@ -363,27 +363,12 @@ static int
+@@ -332,27 +332,12 @@ static int
@@ -116 +117 @@
-@@ -510,6 +495,7 @@ eth_dev_close(struct rte_eth_dev *dev)
+@@ -447,6 +432,7 @@ eth_dev_close(struct rte_eth_dev *dev)
@@ -124 +125 @@
-@@ -520,6 +506,20 @@ eth_dev_close(struct rte_eth_dev *dev)
+@@ -457,6 +443,20 @@ eth_dev_close(struct rte_eth_dev *dev)

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

* patch 'ethdev: fix functions available in new device event' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (22 preceding siblings ...)
  2025-02-17 17:03 ` patch 'net/af_packet: fix socket close on device stop' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:03 ` patch 'vhost: add null callback checks' " luca.boccassi
                   ` (53 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Huisong Li; +Cc: Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 121d61206b7575fb0d492ad171c05221ecbab4df Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 17 Jan 2025 17:12:10 +0800
Subject: [PATCH] ethdev: fix functions available in new device event

[ upstream commit 0b8f35358ceb0178878f72b66a36dc0ab7924377 ]

During probing, before the port becomes generally available, the
rte_eth_dev_socket_id() and rte_eth_dev_owner_*() are available to
the application.

Fixes: 7dcd73e37965 ("drivers/bus: set device NUMA node to unknown by default")
Fixes: 53ef1b34776b ("ethdev: add sanity checks in control APIs")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/ethdev/rte_ethdev.c | 14 +++++++++++---
 lib/ethdev/rte_ethdev.h |  8 +++++++-
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 99b16e4dcc..f08cf5ccad 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -534,9 +534,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
 {
 	struct rte_eth_dev *ethdev;
 
-	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-	ethdev = &rte_eth_devices[port_id];
+	if (port_id >= RTE_MAX_ETHPORTS)
+		return -ENODEV;
 
+	ethdev = &rte_eth_devices[port_id];
 	if (!eth_dev_is_allocated(ethdev)) {
 		RTE_ETHDEV_LOG(ERR, "Port ID %"PRIu16" is not allocated\n",
 			port_id);
@@ -562,8 +563,15 @@ int
 rte_eth_dev_socket_id(uint16_t port_id)
 {
 	int socket_id = SOCKET_ID_ANY;
+	struct rte_eth_dev *ethdev;
 
-	if (!rte_eth_dev_is_valid_port(port_id)) {
+	if (port_id >= RTE_MAX_ETHPORTS) {
+		rte_errno = EINVAL;
+		return socket_id;
+	}
+
+	ethdev = &rte_eth_devices[port_id];
+	if (!eth_dev_is_allocated(ethdev)) {
 		rte_errno = EINVAL;
 	} else {
 		socket_id = rte_eth_devices[port_id].data->numa_node;
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index e73244822a..896be82ee0 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -3885,7 +3885,13 @@ enum rte_eth_event_type {
 	RTE_ETH_EVENT_VF_MBOX,  /**< message from the VF received by PF */
 	RTE_ETH_EVENT_MACSEC,   /**< MACsec offload related event */
 	RTE_ETH_EVENT_INTR_RMV, /**< device removal event */
-	RTE_ETH_EVENT_NEW,      /**< port is probed */
+	/**
+	 * The port is being probed, i.e. allocated and not yet available.
+	 * It is too early to check validity, query infos, and configure
+	 * the port. But some functions, like rte_eth_dev_socket_id() and
+	 * rte_eth_dev_owner_*() are available to the application.
+	 */
+	RTE_ETH_EVENT_NEW,
 	RTE_ETH_EVENT_DESTROY,  /**< port is released */
 	RTE_ETH_EVENT_IPSEC,    /**< IPsec offload related event */
 	RTE_ETH_EVENT_FLOW_AGED,/**< New aged-out flows is detected */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.749951361 +0000
+++ 0025-ethdev-fix-functions-available-in-new-device-event.patch	2025-02-17 16:13:16.810441593 +0000
@@ -1 +1 @@
-From 0b8f35358ceb0178878f72b66a36dc0ab7924377 Mon Sep 17 00:00:00 2001
+From 121d61206b7575fb0d492ad171c05221ecbab4df Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0b8f35358ceb0178878f72b66a36dc0ab7924377 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- lib/ethdev/rte_ethdev.h |  3 ++-
- 2 files changed, 13 insertions(+), 4 deletions(-)
+ lib/ethdev/rte_ethdev.h |  8 +++++++-
+ 2 files changed, 18 insertions(+), 4 deletions(-)
@@ -22 +23 @@
-index b7cb26f0d3..c4079bb924 100644
+index 99b16e4dcc..f08cf5ccad 100644
@@ -25 +26,2 @@
-@@ -602,9 +602,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
+@@ -534,9 +534,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
+ {
@@ -27 +28,0 @@
- 	int ret;
@@ -36 +37 @@
- 		RTE_ETHDEV_LOG_LINE(ERR, "Port ID %"PRIu16" is not allocated",
+ 		RTE_ETHDEV_LOG(ERR, "Port ID %"PRIu16" is not allocated\n",
@@ -38 +39 @@
-@@ -637,8 +638,15 @@ int
+@@ -562,8 +563,15 @@ int
@@ -56 +57 @@
-index 978104d232..40d97b17d4 100644
+index e73244822a..896be82ee0 100644
@@ -59,5 +60,8 @@
-@@ -4162,7 +4162,8 @@ enum rte_eth_event_type {
- 	/**
- 	 * The port is being probed, i.e. allocated and not yet available.
- 	 * It is too early to check validity, query infos, and configure
--	 * the port.
+@@ -3885,7 +3885,13 @@ enum rte_eth_event_type {
+ 	RTE_ETH_EVENT_VF_MBOX,  /**< message from the VF received by PF */
+ 	RTE_ETH_EVENT_MACSEC,   /**< MACsec offload related event */
+ 	RTE_ETH_EVENT_INTR_RMV, /**< device removal event */
+-	RTE_ETH_EVENT_NEW,      /**< port is probed */
++	/**
++	 * The port is being probed, i.e. allocated and not yet available.
++	 * It is too early to check validity, query infos, and configure
@@ -66,2 +70,2 @@
- 	 */
- 	RTE_ETH_EVENT_NEW,
++	 */
++	RTE_ETH_EVENT_NEW,
@@ -68,0 +73,2 @@
+ 	RTE_ETH_EVENT_IPSEC,    /**< IPsec offload related event */
+ 	RTE_ETH_EVENT_FLOW_AGED,/**< New aged-out flows is detected */

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

* patch 'vhost: add null callback checks' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (23 preceding siblings ...)
  2025-02-17 17:03 ` patch 'ethdev: fix functions available in new device event' " luca.boccassi
@ 2025-02-17 17:03 ` luca.boccassi
  2025-02-17 17:04 ` patch 'build: force GCC 15 to initialize padding bits' " luca.boccassi
                   ` (52 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:03 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 7a8aeea3366b7366b13d4827a6c57ade4791f2bd Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Fri, 24 Jan 2025 14:14:07 +0000
Subject: [PATCH] vhost: add null callback checks

[ upstream commit 66be1a05a480a0484b02c1a0194126763f4dbb99 ]

rte_vhost_driver_callback_register() does not specify
any mandatory callbacks in struct rte_vhost_device_ops.

Add some missing NULL checks before calling rte_vhost_device_ops
callbacks.

Fixes: 4796ad63ba1f ("examples/vhost: import userspace vhost application")

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/vhost/vhost.c      | 5 +++--
 lib/vhost/vhost_user.c | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 9e28198528..662f7f3f11 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -716,10 +716,11 @@ vhost_destroy_device_notify(struct virtio_net *dev)
 
 	if (dev->flags & VIRTIO_DEV_RUNNING) {
 		vdpa_dev = dev->vdpa_dev;
-		if (vdpa_dev)
+		if (vdpa_dev && vdpa_dev->ops->dev_close)
 			vdpa_dev->ops->dev_close(dev->vid);
 		dev->flags &= ~VIRTIO_DEV_RUNNING;
-		dev->notify_ops->destroy_device(dev->vid);
+		if (dev->notify_ops->destroy_device)
+			dev->notify_ops->destroy_device(dev->vid);
 	}
 }
 
diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c
index 6657355c2a..0c4accfc08 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -3190,7 +3190,8 @@ unlock:
 	 */
 
 	if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
-		if (dev->notify_ops->new_device(dev->vid) == 0)
+		if (!dev->notify_ops->new_device ||
+			dev->notify_ops->new_device(dev->vid) == 0)
 			dev->flags |= VIRTIO_DEV_RUNNING;
 	}
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.790473321 +0000
+++ 0026-vhost-add-null-callback-checks.patch	2025-02-17 16:13:16.814441593 +0000
@@ -1 +1 @@
-From 66be1a05a480a0484b02c1a0194126763f4dbb99 Mon Sep 17 00:00:00 2001
+From 7a8aeea3366b7366b13d4827a6c57ade4791f2bd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 66be1a05a480a0484b02c1a0194126763f4dbb99 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +18,0 @@
- lib/vhost/vduse.c      | 3 ++-
@@ -21 +21 @@
- 3 files changed, 7 insertions(+), 4 deletions(-)
+ 2 files changed, 5 insertions(+), 3 deletions(-)
@@ -23,14 +22,0 @@
-diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
-index 8ba58555f9..be548f051e 100644
---- a/lib/vhost/vduse.c
-+++ b/lib/vhost/vduse.c
-@@ -318,7 +318,8 @@ vduse_device_start(struct virtio_net *dev, bool reconnect)
- 
- 	dev->flags |= VIRTIO_DEV_READY;
- 
--	if (dev->notify_ops->new_device(dev->vid) == 0)
-+	if (!dev->notify_ops->new_device ||
-+		dev->notify_ops->new_device(dev->vid) == 0)
- 		dev->flags |= VIRTIO_DEV_RUNNING;
- 
- 	for (i = 0; i < dev->nr_vring; i++) {
@@ -38 +24 @@
-index 2f34d3500e..f01ae6130e 100644
+index 9e28198528..662f7f3f11 100644
@@ -41 +27 @@
-@@ -751,10 +751,11 @@ vhost_destroy_device_notify(struct virtio_net *dev)
+@@ -716,10 +716,11 @@ vhost_destroy_device_notify(struct virtio_net *dev)
@@ -56 +42 @@
-index 52d8078d7c..26dc0bde97 100644
+index 6657355c2a..0c4accfc08 100644
@@ -59 +45 @@
-@@ -3301,7 +3301,8 @@ unlock:
+@@ -3190,7 +3190,8 @@ unlock:

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

* patch 'build: force GCC 15 to initialize padding bits' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (24 preceding siblings ...)
  2025-02-17 17:03 ` patch 'vhost: add null callback checks' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/bnxt: fix indication of allocation' " luca.boccassi
                   ` (51 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 655a2accb3b6c327b3480b6543db644f8e4abbce Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 24 Jan 2025 10:26:48 -0800
Subject: [PATCH] build: force GCC 15 to initialize padding bits
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 3c015da37afecbeaa7c9ebf8cf2adcb20ab0e54d ]

With GCC 15, the compiler has changed the default behavior when
initialization is used for aggregate variables. The new default
is to follow the standard (C23) and not initialize everything by
default. This breaks assumptions in some drivers and can be
lead to other bugs. Use the new zero initialization flag to
force of all fields to zero.

Note: other compilers always initialize to zero in these cases.
Only GCC seems to have decided to start initializing less as
a silly attempt at optimization.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/meson.build | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/config/meson.build b/config/meson.build
index c755083db0..2f07c187b9 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -262,7 +262,7 @@ add_project_arguments('-include', 'rte_config.h', language: 'c')
 # enable extra warnings and disable any unwanted warnings
 # -Wall is added by default at warning level 1, and -Wextra
 # at warning level 2 (DPDK default)
-warning_flags = [
+global_cflags = [
         # additional warnings in alphabetical order
         '-Wcast-qual',
         '-Wdeprecated',
@@ -283,22 +283,25 @@ warning_flags = [
         '-Wno-address-of-packed-member',
         '-Wno-packed-not-aligned',
         '-Wno-missing-field-initializers',
+
+        # guarantee that all non-initialized parts of structure/union are zero
+        '-fzero-init-padding-bits=all',
 ]
 if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')
 # FIXME: Bugzilla 396
-    warning_flags += '-Wno-zero-length-bounds'
+    global_cflags += '-Wno-zero-length-bounds'
 endif
 if not dpdk_conf.get('RTE_ARCH_64')
 # for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
-    warning_flags += '-Wno-pointer-to-int-cast'
+    global_cflags += '-Wno-pointer-to-int-cast'
 endif
 if cc.get_id() == 'intel'
     warning_ids = [181, 188, 2203, 2279, 2557, 3179, 3656]
     foreach i:warning_ids
-        warning_flags += '-diag-disable=@0@'.format(i)
+        global_cflags += '-diag-disable=@0@'.format(i)
     endforeach
 endif
-foreach arg: warning_flags
+foreach arg: global_cflags
     if cc.has_argument(arg)
         add_project_arguments(arg, language: 'c')
     endif
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.825189826 +0000
+++ 0027-build-force-GCC-15-to-initialize-padding-bits.patch	2025-02-17 16:13:16.814441593 +0000
@@ -1 +1 @@
-From 3c015da37afecbeaa7c9ebf8cf2adcb20ab0e54d Mon Sep 17 00:00:00 2001
+From 655a2accb3b6c327b3480b6543db644f8e4abbce Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 3c015da37afecbeaa7c9ebf8cf2adcb20ab0e54d ]
+
@@ -20,2 +21,0 @@
-Cc: stable@dpdk.org
-
@@ -26,2 +26,2 @@
- config/meson.build | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
+ config/meson.build | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
@@ -30 +30 @@
-index 710206095b..f31fef216c 100644
+index c755083db0..2f07c187b9 100644
@@ -33 +33 @@
-@@ -310,7 +310,7 @@ endif
+@@ -262,7 +262,7 @@ add_project_arguments('-include', 'rte_config.h', language: 'c')
@@ -42,2 +42,2 @@
-@@ -330,16 +330,19 @@ warning_flags = [
-         # globally disabled warnings
+@@ -283,22 +283,25 @@ warning_flags = [
+         '-Wno-address-of-packed-member',
@@ -50 +50,5 @@
- 
+ if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')
+ # FIXME: Bugzilla 396
+-    warning_flags += '-Wno-zero-length-bounds'
++    global_cflags += '-Wno-zero-length-bounds'
+ endif
@@ -63,5 +66,0 @@
- 
-@@ -351,7 +354,7 @@ if cc.has_argument('-Wvla')
-     endif
- endif
- 

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

* patch 'net/bnxt: fix indication of allocation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (25 preceding siblings ...)
  2025-02-17 17:04 ` patch 'build: force GCC 15 to initialize padding bits' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/bnxt: fix crash when representor is re-attached' " luca.boccassi
                   ` (50 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 1846a93afdb993010a670fe9ec971ef2215a44b7 Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Fri, 17 Jan 2025 12:51:33 -0800
Subject: [PATCH] net/bnxt: fix indication of allocation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit 8531f9ba0062032454121f4959cd3d495cd4147e ]

When experimenting with the -std=c2x compiler option the error below
popped up:

../drivers/net/bnxt/tf_core/tf_sram_mgr.c:952:39: error: incompatible
   types when assigning to type ‘_Bool *’ from type ‘_Bool’

The code indicates that the intention was to assign false to the bool
being pointed to, not to the pointer itself.

Fixes: 37ff91c158a3 ("net/bnxt: add SRAM manager model")

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/tf_core/tf_sram_mgr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bnxt/tf_core/tf_sram_mgr.c b/drivers/net/bnxt/tf_core/tf_sram_mgr.c
index acb3372486..02c96e0a14 100644
--- a/drivers/net/bnxt/tf_core/tf_sram_mgr.c
+++ b/drivers/net/bnxt/tf_core/tf_sram_mgr.c
@@ -898,7 +898,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,
 			    tf_sram_slice_2_str(parms->slice_size),
 			    tf_sram_bank_2_str(parms->bank_id));
 
-		parms->is_allocated = false;
+		*parms->is_allocated = false;
 		goto done;
 	}
 
@@ -913,7 +913,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,
 	if (block == NULL) {
 		TFP_DRV_LOG(ERR, "block not found in list 0x%x\n",
 			    parms->sram_offset);
-		parms->is_allocated = false;
+		*parms->is_allocated = false;
 		goto done;
 	}
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.855475869 +0000
+++ 0028-net-bnxt-fix-indication-of-allocation.patch	2025-02-17 16:13:16.814441593 +0000
@@ -1 +1 @@
-From 8531f9ba0062032454121f4959cd3d495cd4147e Mon Sep 17 00:00:00 2001
+From 1846a93afdb993010a670fe9ec971ef2215a44b7 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 8531f9ba0062032454121f4959cd3d495cd4147e ]
+
@@ -19 +20,0 @@
-Cc: stable@dpdk.org
@@ -28 +29 @@
-index 87e8882fed..0dffd74cd5 100644
+index acb3372486..02c96e0a14 100644
@@ -31 +32 @@
-@@ -949,7 +949,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,
+@@ -898,7 +898,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,
@@ -40 +41 @@
-@@ -964,7 +964,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,
+@@ -913,7 +913,7 @@ int tf_sram_mgr_is_allocated(void *sram_handle,

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

* patch 'net/bnxt: fix crash when representor is re-attached' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (26 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/bnxt: fix indication of allocation' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/mlx5: fix Netlink socket leak' " luca.boccassi
                   ` (49 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Sangtani Parag Satishbhai
  Cc: Somnath Kotur, Kalesh AP, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From fc55d68d544f753961b7bcfdab85f2d0ce0e3b9d Mon Sep 17 00:00:00 2001
From: Sangtani Parag Satishbhai <parag-satishbhai.sangtani@broadcom.com>
Date: Thu, 19 Dec 2024 17:31:13 -0800
Subject: [PATCH] net/bnxt: fix crash when representor is re-attached

[ upstream commit fca6cf68bbcf9b84e4388239031fb168a6624375 ]

When the PCI port is detached using the testpmd command,
as part of cleanup testpmd removes resources of parent
port and all the children's ports and calls the driver specific
pci_remove API with the parent rte ethdev to clean-up ethdevs.
For the bnxt driver, a condition to check type of ethdev is added
in bnxt_pci_remove and based on the condition relevant
ethdev is removed (VF/PF or VFR). As the RTE layer always
calls PCI remove with the parent ethdev, the bnxt_pci_remove
never frees children (VFRs) ethdev. As, these ethdevs were not
freed it gives spurious status in re-allocation check(when pci
port attach command is executed) and when RTE layers tries to
access interrupt specific info from the ethdev due to uninitialized
members it access NULL pointer which results in seg fault. The fix
is made in bnxt_pci_remove to clean ethdev for parent (PF/VF) along
with children (VFRs).

Fixes: 322bd6e70272 ("net/bnxt: add port representor infrastructure")

Signed-off-by: Sangtani Parag Satishbhai <parag-satishbhai.sangtani@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index e44fa4405c..93dcfb7e01 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -6340,6 +6340,8 @@ static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
 {
 	struct rte_eth_dev *eth_dev;
+	uint16_t port_id;
+	int rc = 0;
 
 	eth_dev = rte_eth_dev_allocated(pci_dev->device.name);
 	if (!eth_dev)
@@ -6349,14 +6351,20 @@ static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
 			   * +ve value will at least help in proper cleanup
 			   */
 
-	PMD_DRV_LOG(DEBUG, "BNXT Port:%d pci remove\n", eth_dev->data->port_id);
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-		if (eth_dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
-			return rte_eth_dev_destroy(eth_dev,
-						   bnxt_representor_uninit);
-		else
-			return rte_eth_dev_destroy(eth_dev,
-						   bnxt_dev_uninit);
+		RTE_ETH_FOREACH_DEV_OF(port_id, &pci_dev->device) {
+			PMD_DRV_LOG(DEBUG, "BNXT Port:%d pci remove\n", port_id);
+			eth_dev = &rte_eth_devices[port_id];
+			if (eth_dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
+				rc = rte_eth_dev_destroy(eth_dev,
+							 bnxt_representor_uninit);
+			else
+				rc = rte_eth_dev_destroy(eth_dev,
+							 bnxt_dev_uninit);
+			if (rc != 0)
+				return rc;
+		}
+		return rc;
 	} else {
 		return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
 	}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.887818640 +0000
+++ 0029-net-bnxt-fix-crash-when-representor-is-re-attached.patch	2025-02-17 16:13:16.814441593 +0000
@@ -1 +1 @@
-From fca6cf68bbcf9b84e4388239031fb168a6624375 Mon Sep 17 00:00:00 2001
+From fc55d68d544f753961b7bcfdab85f2d0ce0e3b9d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit fca6cf68bbcf9b84e4388239031fb168a6624375 ]
+
@@ -23 +24,0 @@
-Cc: stable@dpdk.org
@@ -34 +35 @@
-index b18247feb2..144d4377bd 100644
+index e44fa4405c..93dcfb7e01 100644
@@ -37 +38 @@
-@@ -6993,6 +6993,8 @@ static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -6340,6 +6340,8 @@ static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -46 +47 @@
-@@ -7002,14 +7004,20 @@ static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
+@@ -6349,14 +6351,20 @@ static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
@@ -50 +51 @@
--	PMD_DRV_LOG_LINE(DEBUG, "BNXT Port:%d pci remove", eth_dev->data->port_id);
+-	PMD_DRV_LOG(DEBUG, "BNXT Port:%d pci remove\n", eth_dev->data->port_id);
@@ -52 +53 @@
--		if (rte_eth_dev_is_repr(eth_dev))
+-		if (eth_dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
@@ -59 +60 @@
-+			PMD_DRV_LOG_LINE(DEBUG, "BNXT Port:%d pci remove", port_id);
++			PMD_DRV_LOG(DEBUG, "BNXT Port:%d pci remove\n", port_id);

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

* patch 'net/mlx5: fix Netlink socket leak' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (27 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/bnxt: fix crash when representor is re-attached' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/mlx5: adjust actions per rule limitation' " luca.boccassi
                   ` (48 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Minggang Li (Gavin); +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From d0d15d60dab85f80f6bae6528109f9981df9cf49 Mon Sep 17 00:00:00 2001
From: "Minggang Li (Gavin)" <gavinl@nvidia.com>
Date: Mon, 23 Dec 2024 12:10:58 +0200
Subject: [PATCH] net/mlx5: fix Netlink socket leak

[ upstream commit 556a5f4ccd452d9281c3476b120d1306e0093e01 ]

Fixes: 72d7efe464b1 ("common/mlx5: share interrupt management")

Signed-off-by: Minggang Li (Gavin) <gavinl@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 .mailmap                         | 1 +
 drivers/net/mlx5/linux/mlx5_os.c | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/.mailmap b/.mailmap
index fdcfe1c30a..dc5cb75b71 100644
--- a/.mailmap
+++ b/.mailmap
@@ -944,6 +944,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
 Mike Ximing Chen <mike.ximing.chen@intel.com>
 Milena Olech <milena.olech@intel.com>
 Min Cao <min.cao@intel.com>
+Minggang Li (Gavin) <gavinl@nvidia.com>
 Minghuan Lian <minghuan.lian@nxp.com>
 Mingjin Ye <mingjinx.ye@intel.com>
 Mingshan Zhang <mingshan.zhang@intel.com>
diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index 183b5e6a84..b59d559c4f 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -2657,10 +2657,15 @@ mlx5_os_dev_shared_handler_install(struct mlx5_dev_ctx_shared *sh)
 void
 mlx5_os_dev_shared_handler_uninstall(struct mlx5_dev_ctx_shared *sh)
 {
+	int fd;
+
 	mlx5_os_interrupt_handler_destroy(sh->intr_handle,
 					  mlx5_dev_interrupt_handler, sh);
+	fd = rte_intr_fd_get(sh->intr_handle_nl);
 	mlx5_os_interrupt_handler_destroy(sh->intr_handle_nl,
 					  mlx5_dev_interrupt_handler_nl, sh);
+	if (fd >= 0)
+		close(fd);
 #ifdef HAVE_IBV_DEVX_ASYNC
 	mlx5_os_interrupt_handler_destroy(sh->intr_handle_devx,
 					  mlx5_dev_interrupt_handler_devx, sh);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.921035248 +0000
+++ 0030-net-mlx5-fix-Netlink-socket-leak.patch	2025-02-17 16:13:16.818441593 +0000
@@ -1 +1 @@
-From 556a5f4ccd452d9281c3476b120d1306e0093e01 Mon Sep 17 00:00:00 2001
+From d0d15d60dab85f80f6bae6528109f9981df9cf49 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 556a5f4ccd452d9281c3476b120d1306e0093e01 ]
+
@@ -7 +8,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
-index 4bc9721321..dc3dd9e5a2 100644
+index fdcfe1c30a..dc5cb75b71 100644
@@ -20 +21 @@
-@@ -1036,6 +1036,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
+@@ -944,6 +944,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
@@ -29 +30 @@
-index 996c97a6a9..169c229172 100644
+index 183b5e6a84..b59d559c4f 100644
@@ -32 +33 @@
-@@ -3070,10 +3070,15 @@ mlx5_os_dev_shared_handler_install(struct mlx5_dev_ctx_shared *sh)
+@@ -2657,10 +2657,15 @@ mlx5_os_dev_shared_handler_install(struct mlx5_dev_ctx_shared *sh)

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

* patch 'net/mlx5: adjust actions per rule limitation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (28 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/mlx5: fix Netlink socket leak' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/mlx5: fix flush of non-template flow rules' " luca.boccassi
                   ` (47 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 30ea2c29d16d0858e3032746492974494400763a Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Tue, 28 Jan 2025 09:54:03 +0200
Subject: [PATCH] net/mlx5: adjust actions per rule limitation

[ upstream commit ab54e17fe2f5207d7b988d568344570e156551ad ]

HWS implementation added a limitation of 16 actions per rule,
which was incompatible with SWS limitation of 32 actions per rule.

Changing the hard coded limitation in PMD to 32.

Fixes: f13fab23922b ("net/mlx5: add flow jump action")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.h    | 2 +-
 drivers/net/mlx5/mlx5_flow_hw.c | 3 ---
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index fb2eb05c06..eb7040ee4d 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -1282,7 +1282,7 @@ struct mlx5_hw_modify_header_action {
 };
 
 /* The maximum actions support in the flow. */
-#define MLX5_HW_MAX_ACTS 16
+#define MLX5_HW_MAX_ACTS 32
 
 /* DR action set struct. */
 struct mlx5_hw_actions {
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 047af4a0c9..42d5d6ada6 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -12,9 +12,6 @@
 #if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
 #include "mlx5_hws_cnt.h"
 
-/* The maximum actions support in the flow. */
-#define MLX5_HW_MAX_ACTS 16
-
 /*
  * The default ipool threshold value indicates which per_core_cache
  * value to set.
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.955092501 +0000
+++ 0031-net-mlx5-adjust-actions-per-rule-limitation.patch	2025-02-17 16:13:16.822441593 +0000
@@ -1 +1 @@
-From ab54e17fe2f5207d7b988d568344570e156551ad Mon Sep 17 00:00:00 2001
+From 30ea2c29d16d0858e3032746492974494400763a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ab54e17fe2f5207d7b988d568344570e156551ad ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 93c2406abc..445c9cdb4b 100644
+index fb2eb05c06..eb7040ee4d 100644
@@ -25 +26 @@
-@@ -1583,7 +1583,7 @@ struct mlx5_hw_modify_header_action {
+@@ -1282,7 +1282,7 @@ struct mlx5_hw_modify_header_action {
@@ -35 +36 @@
-index 2b62711413..501bf33f94 100644
+index 047af4a0c9..42d5d6ada6 100644
@@ -38,3 +39,3 @@
-@@ -21,9 +21,6 @@
- /** Fast path async flow API functions. */
- static struct rte_flow_fp_ops mlx5_flow_hw_fp_ops;
+@@ -12,9 +12,6 @@
+ #if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
+ #include "mlx5_hws_cnt.h"

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

* patch 'net/mlx5: fix flush of non-template flow rules' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (29 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/mlx5: adjust actions per rule limitation' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/mlx5: fix GRE flow match with SWS' " luca.boccassi
                   ` (46 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Bing Zhao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 6ded800ee12f53831b846b31dcad64081c214bfe Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Tue, 28 Jan 2025 09:54:05 +0200
Subject: [PATCH] net/mlx5: fix flush of non-template flow rules

[ upstream commit 716929be9456b78875d0eb20bc54c13acf99efc0 ]

Fix flow flush for non template flows on top of HWS,
in another fix it was added return after releasing template flows.
Need to drop the return in order to release non template list of flows.

Fixes: 1ea333d2de22 ("net/mlx5: fix Rx queue reference count in flushing flows")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Bing Zhao <bingz@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index f66edf1c64..6fe51f70a8 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -7477,7 +7477,6 @@ mlx5_flow_list_flush(struct rte_eth_dev *dev, enum mlx5_flow_type type,
 		priv->hws_rule_flushing = true;
 		flow_hw_q_flow_flush(dev, NULL);
 		priv->hws_rule_flushing = false;
-		return;
 	}
 #endif
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:17.994747786 +0000
+++ 0032-net-mlx5-fix-flush-of-non-template-flow-rules.patch	2025-02-17 16:13:16.826441592 +0000
@@ -1 +1 @@
-From 716929be9456b78875d0eb20bc54c13acf99efc0 Mon Sep 17 00:00:00 2001
+From 6ded800ee12f53831b846b31dcad64081c214bfe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 716929be9456b78875d0eb20bc54c13acf99efc0 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index bfc44f25bf..a2ee237841 100644
+index f66edf1c64..6fe51f70a8 100644
@@ -23 +24 @@
-@@ -8118,7 +8118,6 @@ mlx5_flow_list_flush(struct rte_eth_dev *dev, enum mlx5_flow_type type,
+@@ -7477,7 +7477,6 @@ mlx5_flow_list_flush(struct rte_eth_dev *dev, enum mlx5_flow_type type,
@@ -30 +31 @@
- 	MLX5_IPOOL_FOREACH(priv->flows[type], fidx, flow) {
+ 

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

* patch 'net/mlx5: fix GRE flow match with SWS' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (30 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/mlx5: fix flush of non-template flow rules' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix deadlock when writing i225 register' " luca.boccassi
                   ` (45 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Bing Zhao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 753eeb5b3dd93a0b6bb08c98f739c4143fc72250 Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Tue, 28 Jan 2025 09:59:30 +0200
Subject: [PATCH] net/mlx5: fix GRE flow match with SWS

[ upstream commit 05db99c117e36c0cd28cda8f558309efd20055da ]

The previous GRE fix was meant to handle HWS behavior
and changed the behavior for SWS causing degradation.

After the previous fix, in case of an empty GRE match,
GRE mask was initialized with protocol full mask,
Instead of the empty mask with protocol mask equals zero.

The current fix handles the SWS case as before the GRE fix,
and HWS according to the latest fix.
Also, combined common logic.

Fixes: 25ab2cbba31d ("net/mlx5: fix GRE flow item translation for root table")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Bing Zhao <bingz@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 4e0ed4415f..7e9c22acb2 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -9108,23 +9108,26 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
 	} gre_crks_rsvd0_ver_m, gre_crks_rsvd0_ver_v;
 	uint16_t protocol_m, protocol_v;
 
-	if (key_type & MLX5_SET_MATCHER_M) {
+	/* Common logic to SWS/HWS */
+	if (key_type & MLX5_SET_MATCHER_M)
 		MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_protocol, 0xff);
-		if (!gre_m)
-			gre_m = &rte_flow_item_gre_mask;
-		gre_v = gre_m;
-	} else {
+	else
 		MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_protocol,
-			 IPPROTO_GRE);
-		if (!gre_v) {
-			gre_v = &empty_gre;
-			gre_m = &empty_gre;
-		} else if (!gre_m) {
+			IPPROTO_GRE);
+	/* HWS mask logic only */
+	if (key_type & MLX5_SET_MATCHER_HS_M) {
+		if (!gre_m)
 			gre_m = &rte_flow_item_gre_mask;
-		}
-		if (key_type == MLX5_SET_MATCHER_HS_V)
-			gre_m = gre_v;
+		gre_v = gre_m;
+	} else if (!gre_v) {
+		gre_v = &empty_gre;
+		gre_m = &empty_gre;
+	} else if (!gre_m) {
+		gre_m = &rte_flow_item_gre_mask;
 	}
+	/* SWS logic only */
+	if (key_type & MLX5_SET_MATCHER_SW_M)
+		gre_v = gre_m;
 	gre_crks_rsvd0_ver_m.value = rte_be_to_cpu_16(gre_m->c_rsvd0_ver);
 	gre_crks_rsvd0_ver_v.value = rte_be_to_cpu_16(gre_v->c_rsvd0_ver);
 	MLX5_SET(fte_match_set_misc, misc_v, gre_c_present,
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.041329609 +0000
+++ 0033-net-mlx5-fix-GRE-flow-match-with-SWS.patch	2025-02-17 16:13:16.834441592 +0000
@@ -1 +1 @@
-From 05db99c117e36c0cd28cda8f558309efd20055da Mon Sep 17 00:00:00 2001
+From 753eeb5b3dd93a0b6bb08c98f739c4143fc72250 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 05db99c117e36c0cd28cda8f558309efd20055da ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index 41ebe0b61a..633c41e358 100644
+index 4e0ed4415f..7e9c22acb2 100644
@@ -30 +31 @@
-@@ -9839,23 +9839,26 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
+@@ -9108,23 +9108,26 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,

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

* patch 'net/igc/base: fix deadlock when writing i225 register' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (31 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/mlx5: fix GRE flow match with SWS' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix infinite loop' " luca.boccassi
                   ` (44 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dima Ruinskiy; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From b185b0deb41d05365fa760a63fa4012eb25ab09c Mon Sep 17 00:00:00 2001
From: Dima Ruinskiy <dima.ruinskiy@intel.com>
Date: Thu, 6 Feb 2025 16:08:24 +0000
Subject: [PATCH] net/igc/base: fix deadlock when writing i225 register

[ upstream commit f05363dceac78694638f86a8af1acd173ca9e3e0 ]

Currently, when writing GPY PHY registers, semaphore is acquired before
writing. However, if writing fails, semaphore is not released, causing a
deadlock down the line. Fix the issue by removing the premature return.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 .mailmap                       | 1 +
 drivers/net/igc/base/igc_phy.c | 4 ----
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/.mailmap b/.mailmap
index dc5cb75b71..5338abcc05 100644
--- a/.mailmap
+++ b/.mailmap
@@ -323,6 +323,7 @@ Dheemanth Mallikarjun <dheemanthm@vmware.com>
 Diana Wang <na.wang@corigine.com>
 Didier Pallard <didier.pallard@6wind.com>
 Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
+Dima Ruinskiy <dima.ruinskiy@intel.com>
 Ding Zhi <zhi.ding@6wind.com>
 Diogo Behrens <diogo.behrens@huawei.com>
 Dirk-Holger Lenz <dirk.lenz@ng4t.com>
diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
index 2906bae21a..ddc2b6ecc1 100644
--- a/drivers/net/igc/base/igc_phy.c
+++ b/drivers/net/igc/base/igc_phy.c
@@ -4148,8 +4148,6 @@ s32 igc_write_phy_reg_gpy(struct igc_hw *hw, u32 offset, u16 data)
 		if (ret_val)
 			return ret_val;
 		ret_val = igc_write_phy_reg_mdic(hw, offset, data);
-		if (ret_val)
-			return ret_val;
 		hw->phy.ops.release(hw);
 	} else {
 		ret_val = igc_write_xmdio_reg(hw, (u16)offset, dev_addr,
@@ -4182,8 +4180,6 @@ s32 igc_read_phy_reg_gpy(struct igc_hw *hw, u32 offset, u16 *data)
 		if (ret_val)
 			return ret_val;
 		ret_val = igc_read_phy_reg_mdic(hw, offset, data);
-		if (ret_val)
-			return ret_val;
 		hw->phy.ops.release(hw);
 	} else {
 		ret_val = igc_read_xmdio_reg(hw, (u16)offset, dev_addr,
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.084616291 +0000
+++ 0034-net-igc-base-fix-deadlock-when-writing-i225-register.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From f05363dceac78694638f86a8af1acd173ca9e3e0 Mon Sep 17 00:00:00 2001
+From b185b0deb41d05365fa760a63fa4012eb25ab09c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f05363dceac78694638f86a8af1acd173ca9e3e0 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +18,2 @@
- .mailmap                             | 1 +
- drivers/net/intel/igc/base/igc_phy.c | 4 ----
+ .mailmap                       | 1 +
+ drivers/net/igc/base/igc_phy.c | 4 ----
@@ -22 +23 @@
-index dc3dd9e5a2..9ea6bd1df3 100644
+index dc5cb75b71..5338abcc05 100644
@@ -25 +26 @@
-@@ -358,6 +358,7 @@ Dhruv Tripathi <dhruv.tripathi@arm.com>
+@@ -323,6 +323,7 @@ Dheemanth Mallikarjun <dheemanthm@vmware.com>
@@ -33 +34 @@
-diff --git a/drivers/net/intel/igc/base/igc_phy.c b/drivers/net/intel/igc/base/igc_phy.c
+diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
@@ -35,2 +36,2 @@
---- a/drivers/net/intel/igc/base/igc_phy.c
-+++ b/drivers/net/intel/igc/base/igc_phy.c
+--- a/drivers/net/igc/base/igc_phy.c
++++ b/drivers/net/igc/base/igc_phy.c

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

* patch 'net/igc/base: fix infinite loop' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (32 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix deadlock when writing i225 register' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix bitwise operation type' " luca.boccassi
                   ` (43 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dima Ruinskiy; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 17e21b8056ae9ab66dc5f9e42297aaffb730886a Mon Sep 17 00:00:00 2001
From: Dima Ruinskiy <dima.ruinskiy@intel.com>
Date: Thu, 6 Feb 2025 16:08:25 +0000
Subject: [PATCH] net/igc/base: fix infinite loop

[ upstream commit 532e495e4a20cf09e1f42d01bcbe782f7e2bb03f ]

When the driver fails to acquire HW semaphore, there is nothing that can
be done to address it, so just leave to avoid an infinite loop.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 180d3cf687..c2fae6e797 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -330,8 +330,15 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)
 
 	DEBUGFUNC("igc_release_swfw_sync_i225");
 
-	while (igc_get_hw_semaphore_i225(hw) != IGC_SUCCESS)
-		; /* Empty */
+	/* Releasing the resource requires first getting the HW semaphore.
+	 * If we fail to get the semaphore, there is nothing we can do,
+	 * except log an error and quit. We are not allowed to hang here
+	 * indefinitely, as it may cause denial of service or system crash.
+	 */
+	if (igc_get_hw_semaphore_i225(hw) != IGC_SUCCESS) {
+		DEBUGOUT("Failed to release SW_FW_SYNC.\n");
+		return;
+	}
 
 	swfw_sync = IGC_READ_REG(hw, IGC_SW_FW_SYNC);
 	swfw_sync &= ~mask;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.120543038 +0000
+++ 0035-net-igc-base-fix-infinite-loop.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From 532e495e4a20cf09e1f42d01bcbe782f7e2bb03f Mon Sep 17 00:00:00 2001
+From 17e21b8056ae9ab66dc5f9e42297aaffb730886a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 532e495e4a20cf09e1f42d01bcbe782f7e2bb03f ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_i225.c | 11 +++++++++--
+ drivers/net/igc/base/igc_i225.c | 11 +++++++++--
@@ -19,5 +20,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index 17a1573064..8f01f8d918 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -333,8 +333,15 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index 180d3cf687..c2fae6e797 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -330,8 +330,15 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)

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

* patch 'net/igc/base: fix bitwise operation type' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (33 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix infinite loop' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: increase PHY power up delay' " luca.boccassi
                   ` (42 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Przemyslaw Ciesielski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 74b1b8ee6e81a11702cd14363ecd21eddbaddc8d Mon Sep 17 00:00:00 2001
From: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Date: Thu, 6 Feb 2025 16:08:26 +0000
Subject: [PATCH] net/igc/base: fix bitwise operation type

[ upstream commit bf51125b75b18a3a43439edb2c6e1f0b14793d51 ]

Static analysis has found type mismatch between mask and register value.
Fix the bitwise operation type to avoid potential issues.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index c2fae6e797..97dc7f454d 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -341,7 +341,7 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)
 	}
 
 	swfw_sync = IGC_READ_REG(hw, IGC_SW_FW_SYNC);
-	swfw_sync &= ~mask;
+	swfw_sync &= ~(u32)mask;
 	IGC_WRITE_REG(hw, IGC_SW_FW_SYNC, swfw_sync);
 
 	igc_put_hw_semaphore_generic(hw);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.150549594 +0000
+++ 0036-net-igc-base-fix-bitwise-operation-type.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From bf51125b75b18a3a43439edb2c6e1f0b14793d51 Mon Sep 17 00:00:00 2001
+From 74b1b8ee6e81a11702cd14363ecd21eddbaddc8d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bf51125b75b18a3a43439edb2c6e1f0b14793d51 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 +-
+ drivers/net/igc/base/igc_i225.c | 2 +-
@@ -19,5 +20,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index 8f01f8d918..1277f59885 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -344,7 +344,7 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index c2fae6e797..97dc7f454d 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -341,7 +341,7 @@ void igc_release_swfw_sync_i225(struct igc_hw *hw, u16 mask)

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

* patch 'net/igc/base: increase PHY power up delay' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (34 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix bitwise operation type' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: reset loop variable' " luca.boccassi
                   ` (41 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Sasha Neftin; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 04fd449b89969b4d9413e84630411cd0baf5f11b Mon Sep 17 00:00:00 2001
From: Sasha Neftin <sasha.neftin@intel.com>
Date: Thu, 6 Feb 2025 16:08:27 +0000
Subject: [PATCH] net/igc/base: increase PHY power up delay

[ upstream commit a8a4acb46fa6bbe0a669b4eca0f73f112a7646ac ]

PHY specification for i225 requires 300 microsecond delay after power up
sequence, so increase the delay after power up to 300 microseconds.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_phy.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
index ddc2b6ecc1..706f037f0e 100644
--- a/drivers/net/igc/base/igc_phy.c
+++ b/drivers/net/igc/base/igc_phy.c
@@ -3523,6 +3523,7 @@ void igc_power_up_phy_copper(struct igc_hw *hw)
 	hw->phy.ops.read_reg(hw, PHY_CONTROL, &mii_reg);
 	mii_reg &= ~MII_CR_POWER_DOWN;
 	hw->phy.ops.write_reg(hw, PHY_CONTROL, mii_reg);
+	usec_delay(300);
 }
 
 /**
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.182969510 +0000
+++ 0037-net-igc-base-increase-PHY-power-up-delay.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From a8a4acb46fa6bbe0a669b4eca0f73f112a7646ac Mon Sep 17 00:00:00 2001
+From 04fd449b89969b4d9413e84630411cd0baf5f11b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a8a4acb46fa6bbe0a669b4eca0f73f112a7646ac ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_phy.c | 1 +
+ drivers/net/igc/base/igc_phy.c | 1 +
@@ -19 +20 @@
-diff --git a/drivers/net/intel/igc/base/igc_phy.c b/drivers/net/intel/igc/base/igc_phy.c
+diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/igc/base/igc_phy.c
-+++ b/drivers/net/intel/igc/base/igc_phy.c
+--- a/drivers/net/igc/base/igc_phy.c
++++ b/drivers/net/igc/base/igc_phy.c

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

* patch 'net/igc/base: reset loop variable' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (35 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: increase PHY power up delay' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix LTR for i225' " luca.boccassi
                   ` (40 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Sasha Neftin; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 322c9ee4c7670df3cde2bdd0fa67b432768c5ac4 Mon Sep 17 00:00:00 2001
From: Sasha Neftin <sasha.neftin@intel.com>
Date: Thu, 6 Feb 2025 16:08:28 +0000
Subject: [PATCH] net/igc/base: reset loop variable

[ upstream commit 60dca8e0f6b2d8526dc9dc8b54e59b5d68964e8e ]

When writing to Shadow RAM, we set rev_val on success, but since the
value is already set to success initially, it is possible for none of
the writes to be successful, yet ret_val will still be set to success.
Fix it by resetting the ret_val to failure before every loop iteration.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 97dc7f454d..25cd2a8039 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -562,6 +562,7 @@ static s32 __igc_write_nvm_srwr(struct igc_hw *hw, u16 offset, u16 words,
 	}
 
 	for (i = 0; i < words; i++) {
+		ret_val = -IGC_ERR_NVM;
 		eewr = ((offset + i) << IGC_NVM_RW_ADDR_SHIFT) |
 			(data[i] << IGC_NVM_RW_REG_DATA) |
 			IGC_NVM_RW_REG_START;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.216628171 +0000
+++ 0038-net-igc-base-reset-loop-variable.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From 60dca8e0f6b2d8526dc9dc8b54e59b5d68964e8e Mon Sep 17 00:00:00 2001
+From 322c9ee4c7670df3cde2bdd0fa67b432768c5ac4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 60dca8e0f6b2d8526dc9dc8b54e59b5d68964e8e ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- drivers/net/intel/igc/base/igc_i225.c | 1 +
+ drivers/net/igc/base/igc_i225.c | 1 +
@@ -21,5 +22,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index 1277f59885..003c060215 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -565,6 +565,7 @@ static s32 __igc_write_nvm_srwr(struct igc_hw *hw, u16 offset, u16 words,
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index 97dc7f454d..25cd2a8039 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -562,6 +562,7 @@ static s32 __igc_write_nvm_srwr(struct igc_hw *hw, u16 offset, u16 words,

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

* patch 'net/igc/base: fix LTR for i225' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (36 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: reset loop variable' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix typo in LTR calculation' " luca.boccassi
                   ` (39 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Sasha Neftin; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From f65e7af5701cbb5c25d05269a4f5048d8024220e Mon Sep 17 00:00:00 2001
From: Sasha Neftin <sasha.neftin@intel.com>
Date: Thu, 6 Feb 2025 16:08:29 +0000
Subject: [PATCH] net/igc/base: fix LTR for i225

[ upstream commit 6a304bc65269cfd86193663e9b94c73299b54d00 ]

i225 specification recommends minus 1 microsecond from a value
calculated for a LTR. Fix the calculation to match spec.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 25cd2a8039..a6f0ac0612 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1068,7 +1068,9 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
 		scale_max = (ltr_max / 1024) < 1024 ? IGC_LTRMAXV_SCALE_1024 :
 			    IGC_LTRMAXV_SCALE_32768;
 		ltr_min /= scale_min == IGC_LTRMINV_SCALE_1024 ? 1024 : 32768;
+		ltr_min -= 1;
 		ltr_max /= scale_max == IGC_LTRMAXV_SCALE_1024 ? 1024 : 32768;
+		ltr_max -= 1;
 
 		/* Only write the LTR thresholds if they differ from before. */
 		ltrv = IGC_READ_REG(hw, IGC_LTRMINV);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.246653784 +0000
+++ 0039-net-igc-base-fix-LTR-for-i225.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From 6a304bc65269cfd86193663e9b94c73299b54d00 Mon Sep 17 00:00:00 2001
+From f65e7af5701cbb5c25d05269a4f5048d8024220e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6a304bc65269cfd86193663e9b94c73299b54d00 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 ++
+ drivers/net/igc/base/igc_i225.c | 2 ++
@@ -19,5 +20,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index 003c060215..e701d00f80 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -1071,7 +1071,9 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index 25cd2a8039..a6f0ac0612 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -1068,7 +1068,9 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)

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

* patch 'net/igc/base: fix typo in LTR calculation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (37 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix LTR for i225' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix unused value' " luca.boccassi
                   ` (38 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dima Ruinskiy; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ec6a60f0806121520ffd06c87eb3e00f488d76dc Mon Sep 17 00:00:00 2001
From: Dima Ruinskiy <dima.ruinskiy@intel.com>
Date: Thu, 6 Feb 2025 16:08:30 +0000
Subject: [PATCH] net/igc/base: fix typo in LTR calculation

[ upstream commit ce11274c5c7188322cc141cdce8cd0680e76f79f ]

The LTR maximum value was incorrectly written using the scale from the
LTR minimum value. This would cause incorrect values to be sent, in
cases where the initial calculation leads to different min/max scales.
Fix the typo to correctly calculate the LTR maximum value.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index a6f0ac0612..e627bdd6b5 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1083,7 +1083,7 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
 		ltrv = IGC_READ_REG(hw, IGC_LTRMAXV);
 		if (ltr_max != (ltrv & IGC_LTRMAXV_LTRV_MASK)) {
 			ltrv = IGC_LTRMAXV_LSNP_REQ | ltr_max |
-			      (scale_min << IGC_LTRMAXV_SCALE_SHIFT);
+			      (scale_max << IGC_LTRMAXV_SCALE_SHIFT);
 			IGC_WRITE_REG(hw, IGC_LTRMAXV, ltrv);
 		}
 	}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.280077131 +0000
+++ 0040-net-igc-base-fix-typo-in-LTR-calculation.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From ce11274c5c7188322cc141cdce8cd0680e76f79f Mon Sep 17 00:00:00 2001
+From ec6a60f0806121520ffd06c87eb3e00f488d76dc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ce11274c5c7188322cc141cdce8cd0680e76f79f ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 +-
+ drivers/net/igc/base/igc_i225.c | 2 +-
@@ -21,5 +22,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index e701d00f80..c7c2ec8ffe 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -1086,7 +1086,7 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index a6f0ac0612..e627bdd6b5 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -1083,7 +1083,7 @@ static s32 igc_set_ltr_i225(struct igc_hw *hw, bool link)

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

* patch 'net/igc/base: fix unused value' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (38 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix typo in LTR calculation' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix semaphore timeout " luca.boccassi
                   ` (37 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dima Ruinskiy; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 1dad8b6c976b8ab91509785f40fbfb94035d3115 Mon Sep 17 00:00:00 2001
From: Dima Ruinskiy <dima.ruinskiy@intel.com>
Date: Thu, 6 Feb 2025 16:08:31 +0000
Subject: [PATCH] net/igc/base: fix unused value

[ upstream commit c506cc8305b4ca17bae903a54daaeaf5b7005038 ]

Static analysis has reported that when there is no get link status
callback function, the value set in the if condition is not used and
gets overwritten in the "out" section of the code. Fix by not setting
the variable.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_i225.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index e627bdd6b5..6c45fa5427 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1111,10 +1111,8 @@ s32 igc_check_for_link_i225(struct igc_hw *hw)
 	 * changed.  The get_link_status flag is set upon receiving
 	 * a Link Status Change or Rx Sequence Error interrupt.
 	 */
-	if (!mac->get_link_status) {
-		ret_val = IGC_SUCCESS;
+	if (!mac->get_link_status)
 		goto out;
-	}
 
 	/* First we want to see if the MII Status Register reports
 	 * link.  If so, then we want to get the current speed/duplex
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.312318711 +0000
+++ 0041-net-igc-base-fix-unused-value.patch	2025-02-17 16:13:16.838441592 +0000
@@ -1 +1 @@
-From c506cc8305b4ca17bae903a54daaeaf5b7005038 Mon Sep 17 00:00:00 2001
+From 1dad8b6c976b8ab91509785f40fbfb94035d3115 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c506cc8305b4ca17bae903a54daaeaf5b7005038 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
- drivers/net/intel/igc/base/igc_i225.c | 4 +---
+ drivers/net/igc/base/igc_i225.c | 4 +---
@@ -21,5 +22,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index c7c2ec8ffe..23c68a3948 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -1114,10 +1114,8 @@ s32 igc_check_for_link_i225(struct igc_hw *hw)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index e627bdd6b5..6c45fa5427 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -1111,10 +1111,8 @@ s32 igc_check_for_link_i225(struct igc_hw *hw)

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

* patch 'net/igc/base: fix semaphore timeout value' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (39 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix unused value' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix iterator type' " luca.boccassi
                   ` (36 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Pawel Malinowski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 572d5ab2cd6b6fd7bf1bc9a9c7783431f5ef769c Mon Sep 17 00:00:00 2001
From: Pawel Malinowski <pawel.malinowski@intel.com>
Date: Thu, 6 Feb 2025 16:08:32 +0000
Subject: [PATCH] net/igc/base: fix semaphore timeout value

[ upstream commit 7caabb9834bc9596190c03279eae8980b1c24800 ]

According to datasheet, software ownership of SWSM.SWESMBI bit should
not exceed 100ms. Current implementation caused incorrect timeout
counter values, where each iteration equals 50us delay. Because of that,
driver was allowed to wait for semaphore even for 1.5s. This might
trigger DPC timeout.

This implementation hardcodes value to 2000, which multiplied by 50us,
gives 100ms of possible wait time.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Pawel Malinowski <pawel.malinowski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_defines.h | 1 +
 drivers/net/igc/base/igc_i225.c    | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/igc/base/igc_defines.h b/drivers/net/igc/base/igc_defines.h
index 61964bcdd2..ca882ebff1 100644
--- a/drivers/net/igc/base/igc_defines.h
+++ b/drivers/net/igc/base/igc_defines.h
@@ -516,6 +516,7 @@
 /* SW Semaphore Register */
 #define IGC_SWSM_SMBI		0x00000001 /* Driver Semaphore bit */
 #define IGC_SWSM_SWESMBI	0x00000002 /* FW Semaphore bit */
+#define IGC_SWSM_TIMEOUT	2000       /* Driver Semaphore max timeout counter */
 #define IGC_SWSM_DRV_LOAD	0x00000008 /* Driver Loaded Bit */
 
 #define IGC_SWSM2_LOCK	0x00000002 /* Secondary driver semaphore bit */
diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
index 6c45fa5427..5c2c756bad 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -385,7 +385,7 @@ s32 igc_setup_copper_link_i225(struct igc_hw *hw)
 static s32 igc_get_hw_semaphore_i225(struct igc_hw *hw)
 {
 	u32 swsm;
-	s32 timeout = hw->nvm.word_size + 1;
+	s32 timeout = IGC_SWSM_TIMEOUT;
 	s32 i = 0;
 
 	DEBUGFUNC("igc_get_hw_semaphore_i225");
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.352252382 +0000
+++ 0042-net-igc-base-fix-semaphore-timeout-value.patch	2025-02-17 16:13:16.842441592 +0000
@@ -1 +1 @@
-From 7caabb9834bc9596190c03279eae8980b1c24800 Mon Sep 17 00:00:00 2001
+From 572d5ab2cd6b6fd7bf1bc9a9c7783431f5ef769c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7caabb9834bc9596190c03279eae8980b1c24800 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +23,2 @@
- drivers/net/intel/igc/base/igc_defines.h | 1 +
- drivers/net/intel/igc/base/igc_i225.c    | 2 +-
+ drivers/net/igc/base/igc_defines.h | 1 +
+ drivers/net/igc/base/igc_i225.c    | 2 +-
@@ -26,5 +27,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_defines.h b/drivers/net/intel/igc/base/igc_defines.h
-index 280570b157..3cb2f430c5 100644
---- a/drivers/net/intel/igc/base/igc_defines.h
-+++ b/drivers/net/intel/igc/base/igc_defines.h
-@@ -525,6 +525,7 @@
+diff --git a/drivers/net/igc/base/igc_defines.h b/drivers/net/igc/base/igc_defines.h
+index 61964bcdd2..ca882ebff1 100644
+--- a/drivers/net/igc/base/igc_defines.h
++++ b/drivers/net/igc/base/igc_defines.h
+@@ -516,6 +516,7 @@
@@ -38,5 +39,5 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
-index 23c68a3948..7352ba240a 100644
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
-@@ -388,7 +388,7 @@ s32 igc_setup_copper_link_i225(struct igc_hw *hw)
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
+index 6c45fa5427..5c2c756bad 100644
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
+@@ -385,7 +385,7 @@ s32 igc_setup_copper_link_i225(struct igc_hw *hw)

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

* patch 'net/igc/base: fix iterator type' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (40 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix semaphore timeout " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix MAC address hash bit shift' " luca.boccassi
                   ` (35 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Amir Avivi; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 8b446e9cca96b4915df5e135dfda232e88e1d838 Mon Sep 17 00:00:00 2001
From: Amir Avivi <amir.avivi@intel.com>
Date: Thu, 6 Feb 2025 16:08:33 +0000
Subject: [PATCH] net/igc/base: fix iterator type

[ upstream commit c7da9dab82190564d68f0d928ba3e381dcc74d9f ]

Fix static analysis warning about comparison between types of
incompatible width, which might lead to an infinite loop due to
overflow.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Amir Avivi <amir.avivi@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 .mailmap                       | 1 +
 drivers/net/igc/base/igc_phy.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 5338abcc05..20a6cc4c1f 100644
--- a/.mailmap
+++ b/.mailmap
@@ -75,6 +75,7 @@ Amaranath Somalapuram <asomalap@amd.com>
 Amine Kherbouche <amine.kherbouche@6wind.com>
 Amin Tootoonchian <amint@icsi.berkeley.edu>
 Ami Sabo <amis@radware.com>
+Amir Avivi <amir.avivi@intel.com>
 Amit Bernstein <amitbern@amazon.com>
 Amit Gupta <agupta3@marvell.com>
 Amit Prakash Shukla <amitprakashs@marvell.com>
diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
index 706f037f0e..dd56b994af 100644
--- a/drivers/net/igc/base/igc_phy.c
+++ b/drivers/net/igc/base/igc_phy.c
@@ -2366,7 +2366,8 @@ s32 igc_phy_has_link_generic(struct igc_hw *hw, u32 iterations,
 			       u32 usec_interval, bool *success)
 {
 	s32 ret_val = IGC_SUCCESS;
-	u16 i, phy_status;
+	u16 phy_status;
+	u32 i;
 
 	DEBUGFUNC("igc_phy_has_link_generic");
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.386086734 +0000
+++ 0043-net-igc-base-fix-iterator-type.patch	2025-02-17 16:13:16.842441592 +0000
@@ -1 +1 @@
-From c7da9dab82190564d68f0d928ba3e381dcc74d9f Mon Sep 17 00:00:00 2001
+From 8b446e9cca96b4915df5e135dfda232e88e1d838 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c7da9dab82190564d68f0d928ba3e381dcc74d9f ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +18,2 @@
- .mailmap                             | 1 +
- drivers/net/intel/igc/base/igc_phy.c | 3 ++-
+ .mailmap                       | 1 +
+ drivers/net/igc/base/igc_phy.c | 3 ++-
@@ -22 +23 @@
-index 9ea6bd1df3..ab03985acd 100644
+index 5338abcc05..20a6cc4c1f 100644
@@ -25 +26 @@
-@@ -84,6 +84,7 @@ Amaranath Somalapuram <asomalap@amd.com>
+@@ -75,6 +75,7 @@ Amaranath Somalapuram <asomalap@amd.com>
@@ -33 +34 @@
-diff --git a/drivers/net/intel/igc/base/igc_phy.c b/drivers/net/intel/igc/base/igc_phy.c
+diff --git a/drivers/net/igc/base/igc_phy.c b/drivers/net/igc/base/igc_phy.c
@@ -35,2 +36,2 @@
---- a/drivers/net/intel/igc/base/igc_phy.c
-+++ b/drivers/net/intel/igc/base/igc_phy.c
+--- a/drivers/net/igc/base/igc_phy.c
++++ b/drivers/net/igc/base/igc_phy.c

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

* patch 'net/igc/base: fix MAC address hash bit shift' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (41 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix iterator type' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix data type in MAC hash' " luca.boccassi
                   ` (34 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Aleksandr Loktionov; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 39bd37c0740887a94a5c8751d94666bd07e12a20 Mon Sep 17 00:00:00 2001
From: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Date: Thu, 6 Feb 2025 16:08:34 +0000
Subject: [PATCH] net/igc/base: fix MAC address hash bit shift

[ upstream commit bccccacfb6f6f2e84a24c6733c7e3d4af05f73b5 ]

In e1000_hash_mc_addr_generic() the expression:

"mc_addr[4] >> 8 - bit_shift", right shifting "mc_addr[4]"

shift by more than 7 bits always yields zero, so hash becomes not so
different. Add initialization with bit_shift = 1, and add a loop
condition to ensure bit_shift will be always in [1..8] range.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_mac.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/igc/base/igc_mac.c b/drivers/net/igc/base/igc_mac.c
index 3cd6506e5e..c69f8ac73b 100644
--- a/drivers/net/igc/base/igc_mac.c
+++ b/drivers/net/igc/base/igc_mac.c
@@ -486,7 +486,7 @@ static int igc_rar_set_generic(struct igc_hw *hw, u8 *addr, u32 index)
 u32 igc_hash_mc_addr_generic(struct igc_hw *hw, u8 *mc_addr)
 {
 	u32 hash_value, hash_mask;
-	u8 bit_shift = 0;
+	u8 bit_shift = 1;
 
 	DEBUGFUNC("igc_hash_mc_addr_generic");
 
@@ -496,7 +496,7 @@ u32 igc_hash_mc_addr_generic(struct igc_hw *hw, u8 *mc_addr)
 	/* For a mc_filter_type of 0, bit_shift is the number of left-shifts
 	 * where 0xFF would still fall within the hash mask.
 	 */
-	while (hash_mask >> bit_shift != 0xFF)
+	while (hash_mask >> bit_shift != 0xFF && bit_shift < 4)
 		bit_shift++;
 
 	/* The portion of the address that is used for the hash table
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.419325384 +0000
+++ 0044-net-igc-base-fix-MAC-address-hash-bit-shift.patch	2025-02-17 16:13:16.842441592 +0000
@@ -1 +1 @@
-From bccccacfb6f6f2e84a24c6733c7e3d4af05f73b5 Mon Sep 17 00:00:00 2001
+From 39bd37c0740887a94a5c8751d94666bd07e12a20 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bccccacfb6f6f2e84a24c6733c7e3d4af05f73b5 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
- drivers/net/intel/igc/base/igc_mac.c | 4 ++--
+ drivers/net/igc/base/igc_mac.c | 4 ++--
@@ -24 +25 @@
-diff --git a/drivers/net/intel/igc/base/igc_mac.c b/drivers/net/intel/igc/base/igc_mac.c
+diff --git a/drivers/net/igc/base/igc_mac.c b/drivers/net/igc/base/igc_mac.c
@@ -26,2 +27,2 @@
---- a/drivers/net/intel/igc/base/igc_mac.c
-+++ b/drivers/net/intel/igc/base/igc_mac.c
+--- a/drivers/net/igc/base/igc_mac.c
++++ b/drivers/net/igc/base/igc_mac.c

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

* patch 'net/igc/base: fix data type in MAC hash' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (42 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix MAC address hash bit shift' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/igc/base: fix NVM data type in bit shift' " luca.boccassi
                   ` (33 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Barbara Skobiej; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 377f2051765cc29b2afe80d6f73bab72a11c925a Mon Sep 17 00:00:00 2001
From: Barbara Skobiej <barbara.skobiej@intel.com>
Date: Thu, 6 Feb 2025 16:08:35 +0000
Subject: [PATCH] net/igc/base: fix data type in MAC hash

[ upstream commit cad5c51ec3a0e965d6d4bb98166890499597f23a ]

One of the bit shifts in MAC hash calculation triggers a static analysis
warning about a potential overflow. Fix the data type to avoid this.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Barbara Skobiej <barbara.skobiej@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_mac.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/igc/base/igc_mac.c b/drivers/net/igc/base/igc_mac.c
index c69f8ac73b..cfb74a6443 100644
--- a/drivers/net/igc/base/igc_mac.c
+++ b/drivers/net/igc/base/igc_mac.c
@@ -539,8 +539,10 @@ u32 igc_hash_mc_addr_generic(struct igc_hw *hw, u8 *mc_addr)
 		break;
 	}
 
-	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-				  (((u16)mc_addr[5]) << bit_shift)));
+	hash_value = (u32)mc_addr[4];
+	hash_value = hash_value >> (8 - bit_shift);
+	hash_value |= (((u32)mc_addr[5]) << bit_shift);
+	hash_value &= hash_mask;
 
 	return hash_value;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.451798931 +0000
+++ 0045-net-igc-base-fix-data-type-in-MAC-hash.patch	2025-02-17 16:13:16.842441592 +0000
@@ -1 +1 @@
-From cad5c51ec3a0e965d6d4bb98166890499597f23a Mon Sep 17 00:00:00 2001
+From 377f2051765cc29b2afe80d6f73bab72a11c925a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit cad5c51ec3a0e965d6d4bb98166890499597f23a ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_mac.c | 6 ++++--
+ drivers/net/igc/base/igc_mac.c | 6 ++++--
@@ -19 +20 @@
-diff --git a/drivers/net/intel/igc/base/igc_mac.c b/drivers/net/intel/igc/base/igc_mac.c
+diff --git a/drivers/net/igc/base/igc_mac.c b/drivers/net/igc/base/igc_mac.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/igc/base/igc_mac.c
-+++ b/drivers/net/intel/igc/base/igc_mac.c
+--- a/drivers/net/igc/base/igc_mac.c
++++ b/drivers/net/igc/base/igc_mac.c

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

* patch 'net/igc/base: fix NVM data type in bit shift' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (43 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix data type in MAC hash' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix semaphore timeout value' " luca.boccassi
                   ` (32 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Przemyslaw Ciesielski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 62be1de4f74e1ca260d3035c80afddcb4f60c567 Mon Sep 17 00:00:00 2001
From: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Date: Thu, 6 Feb 2025 16:08:36 +0000
Subject: [PATCH] net/igc/base: fix NVM data type in bit shift

[ upstream commit d6ad4cdad361558bfb2c04112bd6650debbc9c7f ]

There is a static analysis warning due to wrong data types being used
for NVM read data shifts. Fix it via explicit type cast.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")

Signed-off-by: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/igc/base/igc_nvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/igc/base/igc_nvm.c b/drivers/net/igc/base/igc_nvm.c
index a7c901ab56..d37a3ffb0e 100644
--- a/drivers/net/igc/base/igc_nvm.c
+++ b/drivers/net/igc/base/igc_nvm.c
@@ -926,14 +926,14 @@ s32 igc_read_pba_num_generic(struct igc_hw *hw, u32 *pba_num)
 		DEBUGOUT("NVM Not Supported\n");
 		return -IGC_NOT_IMPLEMENTED;
 	}
-	*pba_num = (u32)(nvm_data << 16);
+	*pba_num = ((u32)nvm_data << 16);
 
 	ret_val = hw->nvm.ops.read(hw, NVM_PBA_OFFSET_1, 1, &nvm_data);
 	if (ret_val) {
 		DEBUGOUT("NVM Read Error\n");
 		return ret_val;
 	}
-	*pba_num |= nvm_data;
+	*pba_num |= (u32)nvm_data;
 
 	return IGC_SUCCESS;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.483757437 +0000
+++ 0046-net-igc-base-fix-NVM-data-type-in-bit-shift.patch	2025-02-17 16:13:16.842441592 +0000
@@ -1 +1 @@
-From d6ad4cdad361558bfb2c04112bd6650debbc9c7f Mon Sep 17 00:00:00 2001
+From 62be1de4f74e1ca260d3035c80afddcb4f60c567 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d6ad4cdad361558bfb2c04112bd6650debbc9c7f ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/igc/base/igc_nvm.c | 4 ++--
+ drivers/net/igc/base/igc_nvm.c | 4 ++--
@@ -19 +20 @@
-diff --git a/drivers/net/intel/igc/base/igc_nvm.c b/drivers/net/intel/igc/base/igc_nvm.c
+diff --git a/drivers/net/igc/base/igc_nvm.c b/drivers/net/igc/base/igc_nvm.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/igc/base/igc_nvm.c
-+++ b/drivers/net/intel/igc/base/igc_nvm.c
+--- a/drivers/net/igc/base/igc_nvm.c
++++ b/drivers/net/igc/base/igc_nvm.c

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

* patch 'net/e1000/base: fix semaphore timeout value' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (44 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/igc/base: fix NVM data type in bit shift' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: correct mPHY access logic' " luca.boccassi
                   ` (31 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Pawel Malinowski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 0fa84eb740cb48d4bacaac01d909fd4786ff8f86 Mon Sep 17 00:00:00 2001
From: Pawel Malinowski <pawel.malinowski@intel.com>
Date: Thu, 6 Feb 2025 16:08:37 +0000
Subject: [PATCH] net/e1000/base: fix semaphore timeout value

[ upstream commit c8bcaf0f2a02995b447c121e860fd550b9c55114 ]

According to datasheet, software ownership of SWSM.SWESMBI bit should
not exceed 100ms. Current implementation caused incorrect timeout
counter values, where each iteration equals 50us delay. Because of that
driver was allowed to wait for semaphore even for 1.5s. This might
trigger DPC timeout.

This implementation hardcodes value to 2000, which multiplied by 50us,
gives 100ms of possible wait time.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Pawel Malinowski <pawel.malinowski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_defines.h | 1 +
 drivers/net/e1000/base/e1000_mac.c     | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/e1000/base/e1000_defines.h b/drivers/net/e1000/base/e1000_defines.h
index 3fbb6c8ea4..97cc2797b2 100644
--- a/drivers/net/e1000/base/e1000_defines.h
+++ b/drivers/net/e1000/base/e1000_defines.h
@@ -504,6 +504,7 @@
 /* SW Semaphore Register */
 #define E1000_SWSM_SMBI		0x00000001 /* Driver Semaphore bit */
 #define E1000_SWSM_SWESMBI	0x00000002 /* FW Semaphore bit */
+#define E1000_SWSM_TIMEOUT	2000       /* Driver Semaphore max timeout counter */
 #define E1000_SWSM_DRV_LOAD	0x00000008 /* Driver Loaded Bit */
 
 #define E1000_SWSM2_LOCK	0x00000002 /* Secondary driver semaphore bit */
diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
index d3b3a6bac9..cf0a9f21e1 100644
--- a/drivers/net/e1000/base/e1000_mac.c
+++ b/drivers/net/e1000/base/e1000_mac.c
@@ -1688,7 +1688,7 @@ s32 e1000_get_speed_and_duplex_fiber_serdes_generic(struct e1000_hw E1000_UNUSED
 s32 e1000_get_hw_semaphore_generic(struct e1000_hw *hw)
 {
 	u32 swsm;
-	s32 timeout = hw->nvm.word_size + 1;
+	s32 timeout = E1000_SWSM_TIMEOUT;
 	s32 i = 0;
 
 	DEBUGFUNC("e1000_get_hw_semaphore_generic");
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.524496095 +0000
+++ 0047-net-e1000-base-fix-semaphore-timeout-value.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From c8bcaf0f2a02995b447c121e860fd550b9c55114 Mon Sep 17 00:00:00 2001
+From 0fa84eb740cb48d4bacaac01d909fd4786ff8f86 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c8bcaf0f2a02995b447c121e860fd550b9c55114 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +23,2 @@
- drivers/net/intel/e1000/base/e1000_defines.h | 1 +
- drivers/net/intel/e1000/base/e1000_mac.c     | 2 +-
+ drivers/net/e1000/base/e1000_defines.h | 1 +
+ drivers/net/e1000/base/e1000_mac.c     | 2 +-
@@ -26 +27 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_defines.h b/drivers/net/intel/e1000/base/e1000_defines.h
+diff --git a/drivers/net/e1000/base/e1000_defines.h b/drivers/net/e1000/base/e1000_defines.h
@@ -28,2 +29,2 @@
---- a/drivers/net/intel/e1000/base/e1000_defines.h
-+++ b/drivers/net/intel/e1000/base/e1000_defines.h
+--- a/drivers/net/e1000/base/e1000_defines.h
++++ b/drivers/net/e1000/base/e1000_defines.h
@@ -38 +39 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_mac.c b/drivers/net/intel/e1000/base/e1000_mac.c
+diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
@@ -40,2 +41,2 @@
---- a/drivers/net/intel/e1000/base/e1000_mac.c
-+++ b/drivers/net/intel/e1000/base/e1000_mac.c
+--- a/drivers/net/e1000/base/e1000_mac.c
++++ b/drivers/net/e1000/base/e1000_mac.c

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

* patch 'net/e1000/base: correct mPHY access logic' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (45 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix semaphore timeout value' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix iterator type' " luca.boccassi
                   ` (30 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 7a0f1f4122a5e8c18e5771319e1e9e26473549cd Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Thu, 6 Feb 2025 16:08:38 +0000
Subject: [PATCH] net/e1000/base: correct mPHY access logic

[ upstream commit 62adddef81d4ddb9789e9f0e5a0899b399bd5d8d ]

The original code had incorrect indentation, and the fix was applied to
follow the indentation, i.e. adding brackets making the indentation
valid.  However, the actual issue was incorrect indentation and not
missing braces, so the fix was incorrect.

This fix restores the original logic and corrects indentation.

Fixes: d5e39d1ca460 ("net/e1000/base: fix build with gcc 6")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_phy.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_phy.c b/drivers/net/e1000/base/e1000_phy.c
index 62d0be5080..208fb3f81b 100644
--- a/drivers/net/e1000/base/e1000_phy.c
+++ b/drivers/net/e1000/base/e1000_phy.c
@@ -4134,13 +4134,12 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data)
 	*data = E1000_READ_REG(hw, E1000_MPHY_DATA);
 
 	/* Disable access to mPHY if it was originally disabled */
-	if (locked) {
+	if (locked)
 		ready = e1000_is_mphy_ready(hw);
-		if (!ready)
-			return -E1000_ERR_PHY;
-		E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
-				E1000_MPHY_DIS_ACCESS);
-	}
+	if (!ready)
+		return -E1000_ERR_PHY;
+	E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
+			E1000_MPHY_DIS_ACCESS);
 
 	return E1000_SUCCESS;
 }
@@ -4200,13 +4199,12 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data,
 	E1000_WRITE_REG(hw, E1000_MPHY_DATA, data);
 
 	/* Disable access to mPHY if it was originally disabled */
-	if (locked) {
+	if (locked)
 		ready = e1000_is_mphy_ready(hw);
-		if (!ready)
-			return -E1000_ERR_PHY;
-		E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
-				E1000_MPHY_DIS_ACCESS);
-	}
+	if (!ready)
+		return -E1000_ERR_PHY;
+	E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
+			E1000_MPHY_DIS_ACCESS);
 
 	return E1000_SUCCESS;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.557415192 +0000
+++ 0048-net-e1000-base-correct-mPHY-access-logic.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From 62adddef81d4ddb9789e9f0e5a0899b399bd5d8d Mon Sep 17 00:00:00 2001
+From 7a0f1f4122a5e8c18e5771319e1e9e26473549cd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 62adddef81d4ddb9789e9f0e5a0899b399bd5d8d ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
- drivers/net/intel/e1000/base/e1000_phy.c | 22 ++++++++++------------
+ drivers/net/e1000/base/e1000_phy.c | 22 ++++++++++------------
@@ -22 +23 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_phy.c b/drivers/net/intel/e1000/base/e1000_phy.c
+diff --git a/drivers/net/e1000/base/e1000_phy.c b/drivers/net/e1000/base/e1000_phy.c
@@ -24,2 +25,2 @@
---- a/drivers/net/intel/e1000/base/e1000_phy.c
-+++ b/drivers/net/intel/e1000/base/e1000_phy.c
+--- a/drivers/net/e1000/base/e1000_phy.c
++++ b/drivers/net/e1000/base/e1000_phy.c

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

* patch 'net/e1000/base: fix iterator type' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (46 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: correct mPHY access logic' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix MAC address hash bit shift' " luca.boccassi
                   ` (29 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Amir Avivi; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 240338d5c97b529af3a8ab4c3cea8d33b9ac7eea Mon Sep 17 00:00:00 2001
From: Amir Avivi <amir.avivi@intel.com>
Date: Thu, 6 Feb 2025 16:08:39 +0000
Subject: [PATCH] net/e1000/base: fix iterator type

[ upstream commit 3d3605399170d5871ba80448de236f7acbbe8f98 ]

Fix static analysis warning about comparison between types of
incompatible width, which might lead to an infinite loop due to
overflow.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Amir Avivi <amir.avivi@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_phy.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/e1000/base/e1000_phy.c b/drivers/net/e1000/base/e1000_phy.c
index 208fb3f81b..b4aba9e4e3 100644
--- a/drivers/net/e1000/base/e1000_phy.c
+++ b/drivers/net/e1000/base/e1000_phy.c
@@ -2333,7 +2333,8 @@ s32 e1000_phy_has_link_generic(struct e1000_hw *hw, u32 iterations,
 			       u32 usec_interval, bool *success)
 {
 	s32 ret_val = E1000_SUCCESS;
-	u16 i, phy_status;
+	u16 phy_status;
+	u32 i;
 
 	DEBUGFUNC("e1000_phy_has_link_generic");
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.591952830 +0000
+++ 0049-net-e1000-base-fix-iterator-type.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From 3d3605399170d5871ba80448de236f7acbbe8f98 Mon Sep 17 00:00:00 2001
+From 240338d5c97b529af3a8ab4c3cea8d33b9ac7eea Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3d3605399170d5871ba80448de236f7acbbe8f98 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- drivers/net/intel/e1000/base/e1000_phy.c | 3 ++-
+ drivers/net/e1000/base/e1000_phy.c | 3 ++-
@@ -20 +21 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_phy.c b/drivers/net/intel/e1000/base/e1000_phy.c
+diff --git a/drivers/net/e1000/base/e1000_phy.c b/drivers/net/e1000/base/e1000_phy.c
@@ -22,2 +23,2 @@
---- a/drivers/net/intel/e1000/base/e1000_phy.c
-+++ b/drivers/net/intel/e1000/base/e1000_phy.c
+--- a/drivers/net/e1000/base/e1000_phy.c
++++ b/drivers/net/e1000/base/e1000_phy.c

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

* patch 'net/e1000/base: fix MAC address hash bit shift' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (47 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix iterator type' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix data type in MAC hash' " luca.boccassi
                   ` (28 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Aleksandr Loktionov; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 00c8b88d3ccd0a4c0b73a78148b26758ddc5402c Mon Sep 17 00:00:00 2001
From: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Date: Thu, 6 Feb 2025 16:08:40 +0000
Subject: [PATCH] net/e1000/base: fix MAC address hash bit shift

[ upstream commit 1749e662f68ba6571ed81cd264cffd1107abc307 ]

In e1000_hash_mc_addr_generic() the expression:

"mc_addr[4] >> 8 - bit_shift", right shifting "mc_addr[4]"

shift by more than 7 bits always yields zero, so hash becomes not so
different. Add initialization with bit_shift = 1, and add a loop
condition to ensure bit_shift will be always in [1..8] range.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_mac.c | 4 ++--
 drivers/net/e1000/base/e1000_vf.c  | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
index cf0a9f21e1..2b8482e114 100644
--- a/drivers/net/e1000/base/e1000_mac.c
+++ b/drivers/net/e1000/base/e1000_mac.c
@@ -488,7 +488,7 @@ int e1000_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
 u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr)
 {
 	u32 hash_value, hash_mask;
-	u8 bit_shift = 0;
+	u8 bit_shift = 1;
 
 	DEBUGFUNC("e1000_hash_mc_addr_generic");
 
@@ -498,7 +498,7 @@ u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr)
 	/* For a mc_filter_type of 0, bit_shift is the number of left-shifts
 	 * where 0xFF would still fall within the hash mask.
 	 */
-	while (hash_mask >> bit_shift != 0xFF)
+	while (hash_mask >> bit_shift != 0xFF && bit_shift < 4)
 		bit_shift++;
 
 	/* The portion of the address that is used for the hash table
diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
index 44ebe07ee4..3d0383fcbb 100644
--- a/drivers/net/e1000/base/e1000_vf.c
+++ b/drivers/net/e1000/base/e1000_vf.c
@@ -331,7 +331,7 @@ STATIC int e1000_rar_set_vf(struct e1000_hw *hw, u8 *addr,
 STATIC u32 e1000_hash_mc_addr_vf(struct e1000_hw *hw, u8 *mc_addr)
 {
 	u32 hash_value, hash_mask;
-	u8 bit_shift = 0;
+	u8 bit_shift = 1;
 
 	DEBUGFUNC("e1000_hash_mc_addr_generic");
 
@@ -342,7 +342,7 @@ STATIC u32 e1000_hash_mc_addr_vf(struct e1000_hw *hw, u8 *mc_addr)
 	 * The bit_shift is the number of left-shifts
 	 * where 0xFF would still fall within the hash mask.
 	 */
-	while (hash_mask >> bit_shift != 0xFF)
+	while (hash_mask >> bit_shift != 0xFF && bit_shift < 4)
 		bit_shift++;
 
 	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.626456735 +0000
+++ 0050-net-e1000-base-fix-MAC-address-hash-bit-shift.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From 1749e662f68ba6571ed81cd264cffd1107abc307 Mon Sep 17 00:00:00 2001
+From 00c8b88d3ccd0a4c0b73a78148b26758ddc5402c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1749e662f68ba6571ed81cd264cffd1107abc307 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -21,2 +22,2 @@
- drivers/net/intel/e1000/base/e1000_mac.c | 4 ++--
- drivers/net/intel/e1000/base/e1000_vf.c  | 4 ++--
+ drivers/net/e1000/base/e1000_mac.c | 4 ++--
+ drivers/net/e1000/base/e1000_vf.c  | 4 ++--
@@ -25 +26 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_mac.c b/drivers/net/intel/e1000/base/e1000_mac.c
+diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
@@ -27,2 +28,2 @@
---- a/drivers/net/intel/e1000/base/e1000_mac.c
-+++ b/drivers/net/intel/e1000/base/e1000_mac.c
+--- a/drivers/net/e1000/base/e1000_mac.c
++++ b/drivers/net/e1000/base/e1000_mac.c
@@ -47 +48 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_vf.c b/drivers/net/intel/e1000/base/e1000_vf.c
+diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
@@ -49,2 +50,2 @@
---- a/drivers/net/intel/e1000/base/e1000_vf.c
-+++ b/drivers/net/intel/e1000/base/e1000_vf.c
+--- a/drivers/net/e1000/base/e1000_vf.c
++++ b/drivers/net/e1000/base/e1000_vf.c

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

* patch 'net/e1000/base: fix data type in MAC hash' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (48 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix MAC address hash bit shift' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix uninitialized variable' " luca.boccassi
                   ` (27 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Barbara Skobiej; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 40990fddbb7b3a80842cfa132bde384f0375e0df Mon Sep 17 00:00:00 2001
From: Barbara Skobiej <barbara.skobiej@intel.com>
Date: Thu, 6 Feb 2025 16:08:41 +0000
Subject: [PATCH] net/e1000/base: fix data type in MAC hash

[ upstream commit 458734aaac3225d98aeee5f4c45b3d39a7d82949 ]

One of the bit shifts in MAC hash calculation triggers a static analysis
warning about a potential overflow. Fix the data type to avoid this.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Barbara Skobiej <barbara.skobiej@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_mac.c | 6 ++++--
 drivers/net/e1000/base/e1000_vf.c  | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
index 2b8482e114..5bb77d9e09 100644
--- a/drivers/net/e1000/base/e1000_mac.c
+++ b/drivers/net/e1000/base/e1000_mac.c
@@ -541,8 +541,10 @@ u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr)
 		break;
 	}
 
-	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-				  (((u16) mc_addr[5]) << bit_shift)));
+	hash_value = (u32)mc_addr[4];
+	hash_value = hash_value >> (8 - bit_shift);
+	hash_value |= (((u32)mc_addr[5]) << bit_shift);
+	hash_value &= hash_mask;
 
 	return hash_value;
 }
diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
index 3d0383fcbb..fc30357c17 100644
--- a/drivers/net/e1000/base/e1000_vf.c
+++ b/drivers/net/e1000/base/e1000_vf.c
@@ -345,8 +345,10 @@ STATIC u32 e1000_hash_mc_addr_vf(struct e1000_hw *hw, u8 *mc_addr)
 	while (hash_mask >> bit_shift != 0xFF && bit_shift < 4)
 		bit_shift++;
 
-	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-				  (((u16) mc_addr[5]) << bit_shift)));
+	hash_value = (u32)mc_addr[4];
+	hash_value = hash_value >> (8 - bit_shift);
+	hash_value |= (((u32)mc_addr[5]) << bit_shift);
+	hash_value &= hash_mask;
 
 	return hash_value;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.659792207 +0000
+++ 0051-net-e1000-base-fix-data-type-in-MAC-hash.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From 458734aaac3225d98aeee5f4c45b3d39a7d82949 Mon Sep 17 00:00:00 2001
+From 40990fddbb7b3a80842cfa132bde384f0375e0df Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 458734aaac3225d98aeee5f4c45b3d39a7d82949 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- drivers/net/intel/e1000/base/e1000_mac.c | 6 ++++--
- drivers/net/intel/e1000/base/e1000_vf.c  | 6 ++++--
+ drivers/net/e1000/base/e1000_mac.c | 6 ++++--
+ drivers/net/e1000/base/e1000_vf.c  | 6 ++++--
@@ -20 +21 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_mac.c b/drivers/net/intel/e1000/base/e1000_mac.c
+diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
@@ -22,2 +23,2 @@
---- a/drivers/net/intel/e1000/base/e1000_mac.c
-+++ b/drivers/net/intel/e1000/base/e1000_mac.c
+--- a/drivers/net/e1000/base/e1000_mac.c
++++ b/drivers/net/e1000/base/e1000_mac.c
@@ -37 +38 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_vf.c b/drivers/net/intel/e1000/base/e1000_vf.c
+diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
@@ -39,2 +40,2 @@
---- a/drivers/net/intel/e1000/base/e1000_vf.c
-+++ b/drivers/net/intel/e1000/base/e1000_vf.c
+--- a/drivers/net/e1000/base/e1000_vf.c
++++ b/drivers/net/e1000/base/e1000_vf.c

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

* patch 'net/e1000/base: fix uninitialized variable' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (49 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix data type in MAC hash' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix bitwise operation type' " luca.boccassi
                   ` (26 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Jakub Buchocki; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From f744d2974866a5ffb9b89075d8ec3adc503163f3 Mon Sep 17 00:00:00 2001
From: Jakub Buchocki <jakubx.buchocki@intel.com>
Date: Thu, 6 Feb 2025 16:08:42 +0000
Subject: [PATCH] net/e1000/base: fix uninitialized variable

[ upstream commit 4be9a7008efe063fbd326fea9965f946c8969039 ]

Static analysis has detected potential usage of uninitialized values
inside the array. Fix the warning by initializing array.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Jakub Buchocki <jakubx.buchocki@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 .mailmap                          | 1 +
 drivers/net/e1000/base/e1000_vf.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 20a6cc4c1f..dc7a465822 100644
--- a/.mailmap
+++ b/.mailmap
@@ -564,6 +564,7 @@ Jacek Naczyk <jacek.naczyk@intel.com>
 Jacek Piasecki <jacekx.piasecki@intel.com>
 Jacek Siuda <jck@semihalf.com>
 Jacob Keller <jacob.e.keller@intel.com>
+Jakub Buchocki <jakubx.buchocki@intel.com>
 Jakub Chylkowski <jakubx.chylkowski@intel.com>
 Jakub Grajciar <jgrajcia@cisco.com>
 Jakub Neruda <neruda@netcope.com>
diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
index fc30357c17..472b921b6f 100644
--- a/drivers/net/e1000/base/e1000_vf.c
+++ b/drivers/net/e1000/base/e1000_vf.c
@@ -376,7 +376,7 @@ STATIC void e1000_write_msg_read_ack(struct e1000_hw *hw,
 void e1000_update_mc_addr_list_vf(struct e1000_hw *hw,
 				  u8 *mc_addr_list, u32 mc_addr_count)
 {
-	u32 msgbuf[E1000_VFMAILBOX_SIZE];
+	u32 msgbuf[E1000_VFMAILBOX_SIZE] = {0};
 	u16 *hash_list = (u16 *)&msgbuf[1];
 	u32 hash_value;
 	u32 i;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.693138669 +0000
+++ 0052-net-e1000-base-fix-uninitialized-variable.patch	2025-02-17 16:13:16.850441592 +0000
@@ -1 +1 @@
-From 4be9a7008efe063fbd326fea9965f946c8969039 Mon Sep 17 00:00:00 2001
+From f744d2974866a5ffb9b89075d8ec3adc503163f3 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4be9a7008efe063fbd326fea9965f946c8969039 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +17,2 @@
- .mailmap                                | 1 +
- drivers/net/intel/e1000/base/e1000_vf.c | 2 +-
+ .mailmap                          | 1 +
+ drivers/net/e1000/base/e1000_vf.c | 2 +-
@@ -21 +22 @@
-index ab03985acd..af83b4e129 100644
+index 20a6cc4c1f..dc7a465822 100644
@@ -24 +25,2 @@
-@@ -620,6 +620,7 @@ Jacek Piasecki <jacekx.piasecki@intel.com>
+@@ -564,6 +564,7 @@ Jacek Naczyk <jacek.naczyk@intel.com>
+ Jacek Piasecki <jacekx.piasecki@intel.com>
@@ -26 +27,0 @@
- Jack Bond-Preston <jack.bond-preston@foss.arm.com> <jack.bond-preston@arm.com>
@@ -32 +33 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_vf.c b/drivers/net/intel/e1000/base/e1000_vf.c
+diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
@@ -34,2 +35,2 @@
---- a/drivers/net/intel/e1000/base/e1000_vf.c
-+++ b/drivers/net/intel/e1000/base/e1000_vf.c
+--- a/drivers/net/e1000/base/e1000_vf.c
++++ b/drivers/net/e1000/base/e1000_vf.c

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

* patch 'net/e1000/base: fix bitwise operation type' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (50 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix uninitialized variable' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix NVM data type in bit shift' " luca.boccassi
                   ` (25 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Przemyslaw Ciesielski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 913d649fcdbd11e86f82a1bdefca026e3a8356c2 Mon Sep 17 00:00:00 2001
From: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Date: Thu, 6 Feb 2025 16:08:43 +0000
Subject: [PATCH] net/e1000/base: fix bitwise operation type

[ upstream commit c848457b38851f175893488c0be713995cb19bf2 ]

There is a static analysis warning due to wrong data types being used
for SW/FW semaphore masking. Fix it via explicit type cast.

Fixes: 5a32a257f957 ("e1000: more NICs in base driver")

Signed-off-by: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_80003es2lan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/e1000/base/e1000_80003es2lan.c b/drivers/net/e1000/base/e1000_80003es2lan.c
index 243bc6fe3e..3516ff2246 100644
--- a/drivers/net/e1000/base/e1000_80003es2lan.c
+++ b/drivers/net/e1000/base/e1000_80003es2lan.c
@@ -426,7 +426,7 @@ STATIC void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask)
 		; /* Empty */
 
 	swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC);
-	swfw_sync &= ~mask;
+	swfw_sync &= ~(u32)mask;
 	E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync);
 
 	e1000_put_hw_semaphore_generic(hw);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.728563450 +0000
+++ 0053-net-e1000-base-fix-bitwise-operation-type.patch	2025-02-17 16:13:16.850441592 +0000
@@ -1 +1 @@
-From c848457b38851f175893488c0be713995cb19bf2 Mon Sep 17 00:00:00 2001
+From 913d649fcdbd11e86f82a1bdefca026e3a8356c2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c848457b38851f175893488c0be713995cb19bf2 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/e1000/base/e1000_80003es2lan.c | 2 +-
+ drivers/net/e1000/base/e1000_80003es2lan.c | 2 +-
@@ -19 +20 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_80003es2lan.c b/drivers/net/intel/e1000/base/e1000_80003es2lan.c
+diff --git a/drivers/net/e1000/base/e1000_80003es2lan.c b/drivers/net/e1000/base/e1000_80003es2lan.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/e1000/base/e1000_80003es2lan.c
-+++ b/drivers/net/intel/e1000/base/e1000_80003es2lan.c
+--- a/drivers/net/e1000/base/e1000_80003es2lan.c
++++ b/drivers/net/e1000/base/e1000_80003es2lan.c

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

* patch 'net/e1000/base: fix NVM data type in bit shift' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (51 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix bitwise operation type' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix reset for 82580' " luca.boccassi
                   ` (24 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Przemyslaw Ciesielski; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From b7ebb9596fe0268b4bb72c441a0c9b649b98767e Mon Sep 17 00:00:00 2001
From: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Date: Thu, 6 Feb 2025 16:08:44 +0000
Subject: [PATCH] net/e1000/base: fix NVM data type in bit shift

[ upstream commit b932270c66d0179824118afbfd7cfb347ddf07d2 ]

There is a static analysis warning due to wrong data types being used
for NVM read data shifts. Fix it via explicit type cast.

Fixes: 38db3f7f50bd ("e1000: update base driver")

Signed-off-by: Przemyslaw Ciesielski <przemyslaw.ciesielski@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_nvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_nvm.c b/drivers/net/e1000/base/e1000_nvm.c
index 430fecaf6d..d171bea649 100644
--- a/drivers/net/e1000/base/e1000_nvm.c
+++ b/drivers/net/e1000/base/e1000_nvm.c
@@ -935,14 +935,14 @@ s32 e1000_read_pba_num_generic(struct e1000_hw *hw, u32 *pba_num)
 		DEBUGOUT("NVM Not Supported\n");
 		return -E1000_NOT_IMPLEMENTED;
 	}
-	*pba_num = (u32)(nvm_data << 16);
+	*pba_num = ((u32)nvm_data << 16);
 
 	ret_val = hw->nvm.ops.read(hw, NVM_PBA_OFFSET_1, 1, &nvm_data);
 	if (ret_val) {
 		DEBUGOUT("NVM Read Error\n");
 		return ret_val;
 	}
-	*pba_num |= nvm_data;
+	*pba_num |= (u32)nvm_data;
 
 	return E1000_SUCCESS;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.760212633 +0000
+++ 0054-net-e1000-base-fix-NVM-data-type-in-bit-shift.patch	2025-02-17 16:13:16.850441592 +0000
@@ -1 +1 @@
-From b932270c66d0179824118afbfd7cfb347ddf07d2 Mon Sep 17 00:00:00 2001
+From b7ebb9596fe0268b4bb72c441a0c9b649b98767e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b932270c66d0179824118afbfd7cfb347ddf07d2 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/e1000/base/e1000_nvm.c | 4 ++--
+ drivers/net/e1000/base/e1000_nvm.c | 4 ++--
@@ -19 +20 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_nvm.c b/drivers/net/intel/e1000/base/e1000_nvm.c
+diff --git a/drivers/net/e1000/base/e1000_nvm.c b/drivers/net/e1000/base/e1000_nvm.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/e1000/base/e1000_nvm.c
-+++ b/drivers/net/intel/e1000/base/e1000_nvm.c
+--- a/drivers/net/e1000/base/e1000_nvm.c
++++ b/drivers/net/e1000/base/e1000_nvm.c

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

* patch 'net/e1000/base: fix reset for 82580' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (52 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix NVM data type in bit shift' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: fix unchecked return' " luca.boccassi
                   ` (23 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Barbara Skobiej; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 8b374b7900060cba14fd2a4fe79d7fcf380a3ebf Mon Sep 17 00:00:00 2001
From: Barbara Skobiej <barbara.skobiej@intel.com>
Date: Thu, 6 Feb 2025 16:08:45 +0000
Subject: [PATCH] net/e1000/base: fix reset for 82580

[ upstream commit 88a1eb79ef08d309af58ad4921db7200fa7c5073 ]

Fix setting device reset status bit in e1000_reset_hw_82580() function
for 82580 by first reading the register value, and then setting the
device reset bit.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Barbara Skobiej <barbara.skobiej@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_82575.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_82575.c b/drivers/net/e1000/base/e1000_82575.c
index 7c78649393..77c76685d8 100644
--- a/drivers/net/e1000/base/e1000_82575.c
+++ b/drivers/net/e1000/base/e1000_82575.c
@@ -2279,7 +2279,7 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)
 	s32 ret_val = E1000_SUCCESS;
 	/* BH SW mailbox bit in SW_FW_SYNC */
 	u16 swmbsw_mask = E1000_SW_SYNCH_MB;
-	u32 ctrl;
+	u32 ctrl, status;
 	bool global_device_reset = hw->dev_spec._82575.global_device_reset;
 
 	DEBUGFUNC("e1000_reset_hw_82580");
@@ -2344,7 +2344,8 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)
 	}
 
 	/* clear global device reset status bit */
-	E1000_WRITE_REG(hw, E1000_STATUS, E1000_STAT_DEV_RST_SET);
+	status = E1000_READ_REG(hw, E1000_STATUS);
+	E1000_WRITE_REG(hw, E1000_STATUS, status | E1000_STAT_DEV_RST_SET);
 
 	/* Clear any pending interrupt events. */
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.791290048 +0000
+++ 0055-net-e1000-base-fix-reset-for-82580.patch	2025-02-17 16:13:16.850441592 +0000
@@ -1 +1 @@
-From 88a1eb79ef08d309af58ad4921db7200fa7c5073 Mon Sep 17 00:00:00 2001
+From 8b374b7900060cba14fd2a4fe79d7fcf380a3ebf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 88a1eb79ef08d309af58ad4921db7200fa7c5073 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- drivers/net/intel/e1000/base/e1000_82575.c | 5 +++--
+ drivers/net/e1000/base/e1000_82575.c | 5 +++--
@@ -20,5 +21,5 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_82575.c b/drivers/net/intel/e1000/base/e1000_82575.c
-index 53900cf8f1..948c80f2fa 100644
---- a/drivers/net/intel/e1000/base/e1000_82575.c
-+++ b/drivers/net/intel/e1000/base/e1000_82575.c
-@@ -2280,7 +2280,7 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)
+diff --git a/drivers/net/e1000/base/e1000_82575.c b/drivers/net/e1000/base/e1000_82575.c
+index 7c78649393..77c76685d8 100644
+--- a/drivers/net/e1000/base/e1000_82575.c
++++ b/drivers/net/e1000/base/e1000_82575.c
+@@ -2279,7 +2279,7 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)
@@ -33 +34 @@
-@@ -2345,7 +2345,8 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)
+@@ -2344,7 +2344,8 @@ STATIC s32 e1000_reset_hw_82580(struct e1000_hw *hw)

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

* patch 'net/e1000/base: fix unchecked return' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (53 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix reset for 82580' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/e1000/base: skip management check for 82575' " luca.boccassi
                   ` (22 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dima Ruinskiy; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 756391b7b282849f2b6fef7887399209f5391df9 Mon Sep 17 00:00:00 2001
From: Dima Ruinskiy <dima.ruinskiy@intel.com>
Date: Thu, 6 Feb 2025 16:08:46 +0000
Subject: [PATCH] net/e1000/base: fix unchecked return

[ upstream commit b0b6b50c20b03170c83985194fd9acef9467ded6 ]

Static analysis has detected a write that is not checked for errors,
leading to ignored error return value. Add a check.

Fixes: edcdb3c5f71b ("e1000/base: fix link flap on 82579")

Signed-off-by: Dima Ruinskiy <dima.ruinskiy@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_ich8lan.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/e1000/base/e1000_ich8lan.c b/drivers/net/e1000/base/e1000_ich8lan.c
index 14f86b7bdc..f5f91a148c 100644
--- a/drivers/net/e1000/base/e1000_ich8lan.c
+++ b/drivers/net/e1000/base/e1000_ich8lan.c
@@ -962,6 +962,8 @@ s32 e1000_set_eee_pchlan(struct e1000_hw *hw)
 		data &= ~I82579_LPI_100_PLL_SHUT;
 		ret_val = e1000_write_emi_reg_locked(hw, I82579_LPI_PLL_SHUT,
 						     data);
+		if (ret_val)
+			goto release;
 	}
 
 	/* R/Clr IEEE MMD 3.1 bits 11:10 - Tx/Rx LPI Received */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.825721386 +0000
+++ 0056-net-e1000-base-fix-unchecked-return.patch	2025-02-17 16:13:16.854441592 +0000
@@ -1 +1 @@
-From b0b6b50c20b03170c83985194fd9acef9467ded6 Mon Sep 17 00:00:00 2001
+From 756391b7b282849f2b6fef7887399209f5391df9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b0b6b50c20b03170c83985194fd9acef9467ded6 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/e1000/base/e1000_ich8lan.c | 2 ++
+ drivers/net/e1000/base/e1000_ich8lan.c | 2 ++
@@ -19 +20 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_ich8lan.c b/drivers/net/intel/e1000/base/e1000_ich8lan.c
+diff --git a/drivers/net/e1000/base/e1000_ich8lan.c b/drivers/net/e1000/base/e1000_ich8lan.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/e1000/base/e1000_ich8lan.c
-+++ b/drivers/net/intel/e1000/base/e1000_ich8lan.c
+--- a/drivers/net/e1000/base/e1000_ich8lan.c
++++ b/drivers/net/e1000/base/e1000_ich8lan.c

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

* patch 'net/e1000/base: skip management check for 82575' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (54 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: fix unchecked return' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'common/idpf: fix void function returning a value' " luca.boccassi
                   ` (21 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Carolyn Wyborny; +Cc: Anatoly Burakov, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 25eabd599b8b3d6712c04847907f17df7fac1e80 Mon Sep 17 00:00:00 2001
From: Carolyn Wyborny <carolyn.wyborny@intel.com>
Date: Thu, 6 Feb 2025 16:08:47 +0000
Subject: [PATCH] net/e1000/base: skip management check for 82575

[ upstream commit d107a23f60c6a8b9543c386ecc48abc4f92f50d3 ]

On 82575, driver is not supposed to check if management control is
enabled, and flush the Rx FIFO unconditionally.

Fixes: 44dddd14059f ("net/e1000/base: remove duplicated codes")

Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/e1000/base/e1000_base.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/e1000/base/e1000_base.c b/drivers/net/e1000/base/e1000_base.c
index 3ec32e7240..e10bc6907a 100644
--- a/drivers/net/e1000/base/e1000_base.c
+++ b/drivers/net/e1000/base/e1000_base.c
@@ -132,7 +132,8 @@ void e1000_rx_fifo_flush_base(struct e1000_hw *hw)
 	rfctl |= E1000_RFCTL_IPV6_EX_DIS;
 	E1000_WRITE_REG(hw, E1000_RFCTL, rfctl);
 
-	if (!(E1000_READ_REG(hw, E1000_MANC) & E1000_MANC_RCV_TCO_EN))
+	if (hw->mac.type != e1000_82575 ||
+	    !(E1000_READ_REG(hw, E1000_MANC) & E1000_MANC_RCV_TCO_EN))
 		return;
 
 	/* Disable all Rx queues */
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.861788017 +0000
+++ 0057-net-e1000-base-skip-management-check-for-82575.patch	2025-02-17 16:13:16.854441592 +0000
@@ -1 +1 @@
-From d107a23f60c6a8b9543c386ecc48abc4f92f50d3 Mon Sep 17 00:00:00 2001
+From 25eabd599b8b3d6712c04847907f17df7fac1e80 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d107a23f60c6a8b9543c386ecc48abc4f92f50d3 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/e1000/base/e1000_base.c | 3 ++-
+ drivers/net/e1000/base/e1000_base.c | 3 ++-
@@ -19 +20 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_base.c b/drivers/net/intel/e1000/base/e1000_base.c
+diff --git a/drivers/net/e1000/base/e1000_base.c b/drivers/net/e1000/base/e1000_base.c
@@ -21,2 +22,2 @@
---- a/drivers/net/intel/e1000/base/e1000_base.c
-+++ b/drivers/net/intel/e1000/base/e1000_base.c
+--- a/drivers/net/e1000/base/e1000_base.c
++++ b/drivers/net/e1000/base/e1000_base.c

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

* patch 'common/idpf: fix void function returning a value' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (55 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/e1000/base: skip management check for 82575' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/intel: fix void functions " luca.boccassi
                   ` (20 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From c6c1c3874daa571f12291334b30a65792c96982a Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Wed, 22 Jan 2025 07:20:43 -0800
Subject: [PATCH] common/idpf: fix void function returning a value

[ upstream commit c39e89b467c510923295a73e5b76a6a44c72dd1b ]

This patch avoids warnings like the one below emitted by MSVC:

../drivers/common/idpf/idpf_common_rxtx_avx512.c(139):
    warning C4098: 'idpf_singleq_rearm':
    'void' function returning a value

Fixes: 5bf87b45b2c8 ("net/idpf: add AVX512 data path for single queue model")
Fixes: e528d7c74819 ("common/idpf: add AVX512 data path for split queue model")

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/idpf/idpf_rxtx_vec_avx512.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/idpf/idpf_rxtx_vec_avx512.c b/drivers/net/idpf/idpf_rxtx_vec_avx512.c
index 29f9624a9d..82a9f34a06 100644
--- a/drivers/net/idpf/idpf_rxtx_vec_avx512.c
+++ b/drivers/net/idpf/idpf_rxtx_vec_avx512.c
@@ -137,8 +137,10 @@ idpf_singleq_rearm(struct idpf_rx_queue *rxq)
 
 	rxdp += rxq->rxrearm_start;
 
-	if (unlikely(cache == NULL))
-		return idpf_singleq_rearm_common(rxq);
+	if (unlikely(cache == NULL)) {
+		idpf_singleq_rearm_common(rxq);
+		return;
+	}
 
 	/* We need to pull 'n' more MBUFs into the software ring from mempool
 	 * We inline the mempool function here, so we can vectorize the copy
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.892426424 +0000
+++ 0058-common-idpf-fix-void-function-returning-a-value.patch	2025-02-17 16:13:16.854441592 +0000
@@ -1 +1 @@
-From c39e89b467c510923295a73e5b76a6a44c72dd1b Mon Sep 17 00:00:00 2001
+From c6c1c3874daa571f12291334b30a65792c96982a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c39e89b467c510923295a73e5b76a6a44c72dd1b ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +20,2 @@
- drivers/common/idpf/idpf_common_rxtx_avx512.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
+ drivers/net/idpf/idpf_rxtx_vec_avx512.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
@@ -22,5 +23,5 @@
-diff --git a/drivers/common/idpf/idpf_common_rxtx_avx512.c b/drivers/common/idpf/idpf_common_rxtx_avx512.c
-index 6fbfee1b2d..b630d1fcd9 100644
---- a/drivers/common/idpf/idpf_common_rxtx_avx512.c
-+++ b/drivers/common/idpf/idpf_common_rxtx_avx512.c
-@@ -133,8 +133,10 @@ idpf_singleq_rearm(struct idpf_rx_queue *rxq)
+diff --git a/drivers/net/idpf/idpf_rxtx_vec_avx512.c b/drivers/net/idpf/idpf_rxtx_vec_avx512.c
+index 29f9624a9d..82a9f34a06 100644
+--- a/drivers/net/idpf/idpf_rxtx_vec_avx512.c
++++ b/drivers/net/idpf/idpf_rxtx_vec_avx512.c
+@@ -137,8 +137,10 @@ idpf_singleq_rearm(struct idpf_rx_queue *rxq)
@@ -34,13 +34,0 @@
-+		return;
-+	}
- 
- 	/* We need to pull 'n' more MBUFs into the software ring from mempool
- 	 * We inline the mempool function here, so we can vectorize the copy
-@@ -603,8 +605,10 @@ idpf_splitq_rearm(struct idpf_rx_queue *rx_bufq)
- 
- 	rxdp += rx_bufq->rxrearm_start;
- 
--	if (unlikely(!cache))
--		return idpf_splitq_rearm_common(rx_bufq);
-+	if (unlikely(!cache)) {
-+		idpf_splitq_rearm_common(rx_bufq);

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

* patch 'net/intel: fix void functions returning a value' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (56 preceding siblings ...)
  2025-02-17 17:04 ` patch 'common/idpf: fix void function returning a value' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/intel: fix build with icx' " luca.boccassi
                   ` (19 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 1c4c4564bf843a57533a8104009562bc314ac2d0 Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Wed, 22 Jan 2025 07:20:44 -0800
Subject: [PATCH] net/intel: fix void functions returning a value

[ upstream commit bc64580a631ee4ad67d7a2a9ae96a63e8d4a02b1 ]

This patch avoids warnings like the one below emitted by MSVC:

../drivers/common/idpf/idpf_common_rxtx_avx512.c(139):
    warning C4098: 'idpf_singleq_rearm':
    'void' function returning a value

Fixes: 0604b1f2208f ("net/i40e: fix crash in AVX512")
Fixes: 4eb3dcce7c5d ("net/iavf: fix crash in AVX512")
Fixes: 20daa1c978b7 ("net/ice: fix crash in AVX512")

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/i40e/i40e_rxtx_vec_avx2.c   | 2 +-
 drivers/net/i40e/i40e_rxtx_vec_avx512.c | 6 ++++--
 drivers/net/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
 drivers/net/ice/ice_rxtx_vec_avx2.c     | 2 +-
 4 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 60baff7970..c8d8028748 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
@@ -22,7 +22,7 @@
 static __rte_always_inline void
 i40e_rxq_rearm(struct i40e_rx_queue *rxq)
 {
-	return i40e_rxq_rearm_common(rxq, false);
+	i40e_rxq_rearm_common(rxq, false);
 }
 
 #ifndef RTE_LIBRTE_I40E_16BYTE_RX_DESC
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
index 3490299a6f..bd84a6bb3c 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
@@ -33,8 +33,10 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)
 
 	rxdp = rxq->rx_ring + rxq->rxrearm_start;
 
-	if (unlikely(!cache))
-		return i40e_rxq_rearm_common(rxq, true);
+	if (unlikely(!cache)) {
+		i40e_rxq_rearm_common(rxq, true);
+		return;
+	}
 
 	/* We need to pull 'n' more MBUFs into the software ring from mempool
 	 * We inline the mempool function here, so we can vectorize the copy
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index 7bf22d5c0d..d4a17c95f8 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
@@ -13,7 +13,7 @@
 static __rte_always_inline void
 iavf_rxq_rearm(struct iavf_rx_queue *rxq)
 {
-	return iavf_rxq_rearm_common(rxq, false);
+	iavf_rxq_rearm_common(rxq, false);
 }
 
 #define PKTLEN_SHIFT     10
diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c
index 5d591f9834..b86fdda3b8 100644
--- a/drivers/net/ice/ice_rxtx_vec_avx2.c
+++ b/drivers/net/ice/ice_rxtx_vec_avx2.c
@@ -14,7 +14,7 @@
 static __rte_always_inline void
 ice_rxq_rearm(struct ice_rx_queue *rxq)
 {
-	return ice_rxq_rearm_common(rxq, false);
+	ice_rxq_rearm_common(rxq, false);
 }
 
 static __rte_always_inline __m256i
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.933157047 +0000
+++ 0059-net-intel-fix-void-functions-returning-a-value.patch	2025-02-17 16:13:16.858441592 +0000
@@ -1 +1 @@
-From bc64580a631ee4ad67d7a2a9ae96a63e8d4a02b1 Mon Sep 17 00:00:00 2001
+From 1c4c4564bf843a57533a8104009562bc314ac2d0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bc64580a631ee4ad67d7a2a9ae96a63e8d4a02b1 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -20,11 +21,11 @@
- drivers/net/intel/i40e/i40e_rxtx_vec_avx2.c   | 2 +-
- drivers/net/intel/i40e/i40e_rxtx_vec_avx512.c | 2 +-
- drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
- drivers/net/intel/ice/ice_rxtx_vec_avx2.c     | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/intel/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/intel/i40e/i40e_rxtx_vec_avx2.c
-index 504015de6e..9c406e7a6f 100644
---- a/drivers/net/intel/i40e/i40e_rxtx_vec_avx2.c
-+++ b/drivers/net/intel/i40e/i40e_rxtx_vec_avx2.c
-@@ -18,7 +18,7 @@
+ drivers/net/i40e/i40e_rxtx_vec_avx2.c   | 2 +-
+ drivers/net/i40e/i40e_rxtx_vec_avx512.c | 6 ++++--
+ drivers/net/iavf/iavf_rxtx_vec_avx2.c   | 2 +-
+ drivers/net/ice/ice_rxtx_vec_avx2.c     | 2 +-
+ 4 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+index 60baff7970..c8d8028748 100644
+--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
++++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+@@ -22,7 +22,7 @@
@@ -39,11 +40,5 @@
-diff --git a/drivers/net/intel/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/intel/i40e/i40e_rxtx_vec_avx512.c
-index c10ae050d3..d8244556c0 100644
---- a/drivers/net/intel/i40e/i40e_rxtx_vec_avx512.c
-+++ b/drivers/net/intel/i40e/i40e_rxtx_vec_avx512.c
-@@ -20,7 +20,7 @@
- static __rte_always_inline void
- i40e_rxq_rearm(struct i40e_rx_queue *rxq)
- {
--	return i40e_rxq_rearm_common(rxq, true);
-+	i40e_rxq_rearm_common(rxq, true);
- }
+diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+index 3490299a6f..bd84a6bb3c 100644
+--- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c
++++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+@@ -33,8 +33,10 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)
@@ -51,6 +46,16 @@
- #ifndef RTE_LIBRTE_I40E_16BYTE_RX_DESC
-diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
-index 3571835c5b..88e35dc3e9 100644
---- a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
-+++ b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
-@@ -9,7 +9,7 @@
+ 	rxdp = rxq->rx_ring + rxq->rxrearm_start;
+ 
+-	if (unlikely(!cache))
+-		return i40e_rxq_rearm_common(rxq, true);
++	if (unlikely(!cache)) {
++		i40e_rxq_rearm_common(rxq, true);
++		return;
++	}
+ 
+ 	/* We need to pull 'n' more MBUFs into the software ring from mempool
+ 	 * We inline the mempool function here, so we can vectorize the copy
+diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+index 7bf22d5c0d..d4a17c95f8 100644
+--- a/drivers/net/iavf/iavf_rxtx_vec_avx2.c
++++ b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+@@ -13,7 +13,7 @@
@@ -65,5 +70,5 @@
-diff --git a/drivers/net/intel/ice/ice_rxtx_vec_avx2.c b/drivers/net/intel/ice/ice_rxtx_vec_avx2.c
-index 8dc9b51c5c..0c54b325c6 100644
---- a/drivers/net/intel/ice/ice_rxtx_vec_avx2.c
-+++ b/drivers/net/intel/ice/ice_rxtx_vec_avx2.c
-@@ -10,7 +10,7 @@
+diff --git a/drivers/net/ice/ice_rxtx_vec_avx2.c b/drivers/net/ice/ice_rxtx_vec_avx2.c
+index 5d591f9834..b86fdda3b8 100644
+--- a/drivers/net/ice/ice_rxtx_vec_avx2.c
++++ b/drivers/net/ice/ice_rxtx_vec_avx2.c
+@@ -14,7 +14,7 @@

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

* patch 'net/intel: fix build with icx' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (57 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/intel: fix void functions " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/hns3: fix copper port initialization' " luca.boccassi
                   ` (18 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ian Stokes, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 07f9cfb97a534985bba679e80dc8d1297bf3357b Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 10 Feb 2025 17:19:57 +0000
Subject: [PATCH] net/intel: fix build with icx

[ upstream commit 2641704664267dd3ebe4ad77784ae28440dfaf60 ]

The Intel oneAPI DPC++/C++ Compiler (icx), issues warnings on build when
the "-march=native", or other configured global "-march" flag, is
overridden to "skylake-avx512", when compiling AVX-512 code.

Allow building with icx with warnings-as-errors flag (werror) enabled by
disabling the warning for the cases where we pass that extra "-march"
flag.

Fixes: e6a6a138919f ("net/i40e: add AVX512 vector path")
Fixes: 31737f2b66fb ("net/iavf: enable AVX512 for legacy Rx")
Fixes: 7f85d5ebcfe1 ("net/ice: add AVX512 vector path")
Fixes: 0fac6a1c44d5 ("common/idpf: add AVX512 for single queue model")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Ian Stokes <ian.stokes@intel.com>
---
 drivers/net/i40e/meson.build | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index e00c1a9ef9..144ed592f6 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -76,6 +76,9 @@ if arch_subdir == 'x86'
         avx512_args = [cflags, '-mavx512f', '-mavx512bw']
         if cc.has_argument('-march=skylake-avx512')
             avx512_args += '-march=skylake-avx512'
+            if cc.has_argument('-Wno-overriding-option')
+                avx512_args += '-Wno-overriding-option'
+            endif
         endif
         i40e_avx512_lib = static_library('i40e_avx512_lib',
                 'i40e_rxtx_vec_avx512.c',
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.966871293 +0000
+++ 0060-net-intel-fix-build-with-icx.patch	2025-02-17 16:13:16.858441592 +0000
@@ -1 +1 @@
-From 2641704664267dd3ebe4ad77784ae28440dfaf60 Mon Sep 17 00:00:00 2001
+From 07f9cfb97a534985bba679e80dc8d1297bf3357b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2641704664267dd3ebe4ad77784ae28440dfaf60 ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -23,12 +24,9 @@
- drivers/net/intel/i40e/meson.build | 3 +++
- drivers/net/intel/iavf/meson.build | 3 +++
- drivers/net/intel/ice/meson.build  | 3 +++
- drivers/net/intel/idpf/meson.build | 3 +++
- 4 files changed, 12 insertions(+)
-
-diff --git a/drivers/net/intel/i40e/meson.build b/drivers/net/intel/i40e/meson.build
-index 5c93493124..ffa40c5d64 100644
---- a/drivers/net/intel/i40e/meson.build
-+++ b/drivers/net/intel/i40e/meson.build
-@@ -57,6 +57,9 @@ if arch_subdir == 'x86'
-         avx512_args = cflags + cc_avx512_flags
+ drivers/net/i40e/meson.build | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
+index e00c1a9ef9..144ed592f6 100644
+--- a/drivers/net/i40e/meson.build
++++ b/drivers/net/i40e/meson.build
+@@ -76,6 +76,9 @@ if arch_subdir == 'x86'
+         avx512_args = [cflags, '-mavx512f', '-mavx512bw']
@@ -43,42 +40,0 @@
-diff --git a/drivers/net/intel/iavf/meson.build b/drivers/net/intel/iavf/meson.build
-index c823d618e3..19cd1cfbc8 100644
---- a/drivers/net/intel/iavf/meson.build
-+++ b/drivers/net/intel/iavf/meson.build
-@@ -45,6 +45,9 @@ if arch_subdir == 'x86'
-         avx512_args = cflags + cc_avx512_flags
-         if cc.has_argument('-march=skylake-avx512')
-             avx512_args += '-march=skylake-avx512'
-+            if cc.has_argument('-Wno-overriding-option')
-+                avx512_args += '-Wno-overriding-option'
-+            endif
-         endif
-         iavf_avx512_lib = static_library('iavf_avx512_lib',
-                 'iavf_rxtx_vec_avx512.c',
-diff --git a/drivers/net/intel/ice/meson.build b/drivers/net/intel/ice/meson.build
-index ff7f84597a..a34b7c966a 100644
---- a/drivers/net/intel/ice/meson.build
-+++ b/drivers/net/intel/ice/meson.build
-@@ -51,6 +51,9 @@ if arch_subdir == 'x86'
-         avx512_args = cflags + cc_avx512_flags
-         if cc.has_argument('-march=skylake-avx512')
-             avx512_args += '-march=skylake-avx512'
-+            if cc.has_argument('-Wno-overriding-option')
-+                avx512_args += '-Wno-overriding-option'
-+            endif
-         endif
-         ice_avx512_lib = static_library('ice_avx512_lib',
-                 'ice_rxtx_vec_avx512.c',
-diff --git a/drivers/net/intel/idpf/meson.build b/drivers/net/intel/idpf/meson.build
-index f82c16746d..802b13035b 100644
---- a/drivers/net/intel/idpf/meson.build
-+++ b/drivers/net/intel/idpf/meson.build
-@@ -31,6 +31,9 @@ if arch_subdir == 'x86' and dpdk_conf.get('RTE_IOVA_IN_MBUF') == 1
-         avx512_args = cflags + cc_avx512_flags
-         if cc.has_argument('-march=skylake-avx512')
-             avx512_args += '-march=skylake-avx512'
-+            if cc.has_argument('-Wno-overriding-option')
-+                avx512_args += '-Wno-overriding-option'
-+            endif
-         endif
-         idpf_common_avx512_lib = static_library('idpf_common_avx512_lib',
-                 'idpf_common_rxtx_avx512.c',

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

* patch 'net/hns3: fix copper port initialization' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (58 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/intel: fix build with icx' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/hns3: fix reset timeout' " luca.boccassi
                   ` (17 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ff6eaaf9069675a41c1ce63c5b1190c25aa32bde Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 10 Feb 2025 11:01:12 +0800
Subject: [PATCH] net/hns3: fix copper port initialization

[ upstream commit 763546c33ea9600e76790c470d2921808068eb3d ]

The initialization of copper port contains the following two steps.
1. Configure firmware takeover the PHY. The firmware will start an
   asynchronous task to initialize the PHY chip.
2. Configure work speed and duplex.
In earlier versions of the firmware, when the asynchronous task is not
finished, the firmware will return -ENOTBLK in the second step. And this
will lead to driver failed to initialize. Here add retry for this case.

Fixes: 2e4859f3b362 ("net/hns3: support PF device with copper PHYs")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 9b0b3776f4..e39d0fdb21 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4864,7 +4864,7 @@ hns3_get_link_duplex(uint32_t link_speeds)
 }
 
 static int
-hns3_set_copper_port_link_speed(struct hns3_hw *hw,
+hns3_copper_port_link_speed_cfg(struct hns3_hw *hw,
 				struct hns3_set_link_speed_cfg *cfg)
 {
 	struct hns3_cmd_desc desc[HNS3_PHY_PARAM_CFG_BD_NUM];
@@ -4898,6 +4898,33 @@ hns3_set_copper_port_link_speed(struct hns3_hw *hw,
 	return hns3_cmd_send(hw, desc, HNS3_PHY_PARAM_CFG_BD_NUM);
 }
 
+static int
+hns3_set_copper_port_link_speed(struct hns3_hw *hw,
+				struct hns3_set_link_speed_cfg *cfg)
+{
+#define HNS3_PHY_PARAM_CFG_RETRY_TIMES		10
+#define HNS3_PHY_PARAM_CFG_RETRY_DELAY_MS	100
+	uint32_t retry_cnt = 0;
+	int ret;
+
+	/*
+	 * The initialization of copper port contains the following two steps.
+	 * 1. Configure firmware takeover the PHY. The firmware will start an
+	 *    asynchronous task to initialize the PHY chip.
+	 * 2. Configure work speed and duplex.
+	 * In earlier versions of the firmware, when the asynchronous task is not
+	 * finished, the firmware will return -ENOTBLK in the second step. And this
+	 * will lead to driver failed to initialize. Here add retry for this case.
+	 */
+	ret = hns3_copper_port_link_speed_cfg(hw, cfg);
+	while (ret == -ENOTBLK && retry_cnt++ < HNS3_PHY_PARAM_CFG_RETRY_TIMES) {
+		rte_delay_ms(HNS3_PHY_PARAM_CFG_RETRY_DELAY_MS);
+		ret = hns3_copper_port_link_speed_cfg(hw, cfg);
+	}
+
+	return ret;
+}
+
 static int
 hns3_set_autoneg(struct hns3_hw *hw, bool enable)
 {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.999573481 +0000
+++ 0061-net-hns3-fix-copper-port-initialization.patch	2025-02-17 16:13:16.858441592 +0000
@@ -1 +1 @@
-From 763546c33ea9600e76790c470d2921808068eb3d Mon Sep 17 00:00:00 2001
+From ff6eaaf9069675a41c1ce63c5b1190c25aa32bde Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 763546c33ea9600e76790c470d2921808068eb3d ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 72d1c30a7b..9f7119b734 100644
+index 9b0b3776f4..e39d0fdb21 100644
@@ -26 +27 @@
-@@ -4852,7 +4852,7 @@ hns3_get_link_duplex(uint32_t link_speeds)
+@@ -4864,7 +4864,7 @@ hns3_get_link_duplex(uint32_t link_speeds)
@@ -35 +36 @@
-@@ -4886,6 +4886,33 @@ hns3_set_copper_port_link_speed(struct hns3_hw *hw,
+@@ -4898,6 +4898,33 @@ hns3_set_copper_port_link_speed(struct hns3_hw *hw,

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

* patch 'net/hns3: fix reset timeout' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (59 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/hns3: fix copper port initialization' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " luca.boccassi
                   ` (16 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 123786e4ac5f10646fec5018a74cd32725173b84 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 10 Feb 2025 11:01:13 +0800
Subject: [PATCH] net/hns3: fix reset timeout

[ upstream commit 9f7c28c5e98062576dfbf555cd5ede7e33d6624b ]

There is low probability that the driver reset timeout, the root cause is
that the firmware processing take a litter long than normal when process
reset command. This patch fix it by changing the timeout of the reset
command to 100 ms.

Fixes: 737f30e1c3ab ("net/hns3: support command interface with firmware")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c | 18 ++++++++++++------
 drivers/net/hns3/hns3_cmd.h |  4 ++--
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 7bdf7740c1..50e135b8e3 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -304,8 +304,17 @@ hns3_cmd_get_hardware_reply(struct hns3_hw *hw,
 	return hns3_cmd_convert_err_code(desc_ret);
 }
 
-static int hns3_cmd_poll_reply(struct hns3_hw *hw)
+static uint32_t hns3_get_cmd_tx_timeout(uint16_t opcode)
 {
+	if (opcode == HNS3_OPC_CFG_RST_TRIGGER)
+		return HNS3_COMQ_CFG_RST_TIMEOUT;
+
+	return HNS3_CMDQ_TX_TIMEOUT_DEFAULT;
+}
+
+static int hns3_cmd_poll_reply(struct hns3_hw *hw, uint16_t opcode)
+{
+	uint32_t cmdq_tx_timeout = hns3_get_cmd_tx_timeout(opcode);
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	uint32_t timeout = 0;
 
@@ -326,7 +335,7 @@ static int hns3_cmd_poll_reply(struct hns3_hw *hw)
 
 		rte_delay_us(1);
 		timeout++;
-	} while (timeout < hw->cmq.tx_timeout);
+	} while (timeout < cmdq_tx_timeout);
 	hns3_err(hw, "Wait for reply timeout");
 	return -ETIME;
 }
@@ -400,7 +409,7 @@ hns3_cmd_send(struct hns3_hw *hw, struct hns3_cmd_desc *desc, int num)
 	 * if multi descriptors to be sent, use the first one to check.
 	 */
 	if (HNS3_CMD_SEND_SYNC(rte_le_to_cpu_16(desc->flag))) {
-		retval = hns3_cmd_poll_reply(hw);
+		retval = hns3_cmd_poll_reply(hw, desc->opcode);
 		if (!retval)
 			retval = hns3_cmd_get_hardware_reply(hw, desc, num,
 							     ntc);
@@ -605,9 +614,6 @@ hns3_cmd_init_queue(struct hns3_hw *hw)
 	hw->cmq.csq.desc_num = HNS3_NIC_CMQ_DESC_NUM;
 	hw->cmq.crq.desc_num = HNS3_NIC_CMQ_DESC_NUM;
 
-	/* Setup Tx write back timeout */
-	hw->cmq.tx_timeout = HNS3_CMDQ_TX_TIMEOUT;
-
 	/* Setup queue rings */
 	ret = hns3_alloc_cmd_queue(hw, HNS3_TYPE_CSQ);
 	if (ret) {
diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h
index 0a4d59bd9b..ae797a7692 100644
--- a/drivers/net/hns3/hns3_cmd.h
+++ b/drivers/net/hns3/hns3_cmd.h
@@ -10,7 +10,8 @@
 #include <rte_byteorder.h>
 #include <rte_spinlock.h>
 
-#define HNS3_CMDQ_TX_TIMEOUT		30000
+#define HNS3_CMDQ_TX_TIMEOUT_DEFAULT	30000
+#define HNS3_COMQ_CFG_RST_TIMEOUT	100000
 #define HNS3_CMDQ_CLEAR_WAIT_TIME	200
 #define HNS3_CMDQ_RX_INVLD_B		0
 #define HNS3_CMDQ_RX_OUTVLD_B		1
@@ -62,7 +63,6 @@ enum hns3_cmd_return_status {
 struct hns3_cmq {
 	struct hns3_cmq_ring csq;
 	struct hns3_cmq_ring crq;
-	uint16_t tx_timeout;
 	enum hns3_cmd_return_status last_status;
 };
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.033936981 +0000
+++ 0062-net-hns3-fix-reset-timeout.patch	2025-02-17 16:13:16.858441592 +0000
@@ -1 +1 @@
-From 9f7c28c5e98062576dfbf555cd5ede7e33d6624b Mon Sep 17 00:00:00 2001
+From 123786e4ac5f10646fec5018a74cd32725173b84 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9f7c28c5e98062576dfbf555cd5ede7e33d6624b ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 146444e2fa..398b75384e 100644
+index 7bdf7740c1..50e135b8e3 100644
@@ -61 +62 @@
-@@ -611,9 +620,6 @@ hns3_cmd_init_queue(struct hns3_hw *hw)
+@@ -605,9 +614,6 @@ hns3_cmd_init_queue(struct hns3_hw *hw)
@@ -72 +73 @@
-index 79a8c1edad..4d707c13b2 100644
+index 0a4d59bd9b..ae797a7692 100644

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

* patch 'raw/cnxk_gpio: fix file descriptor leak' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (60 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/hns3: fix reset timeout' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/i40e: remove duplicate code' " luca.boccassi
                   ` (15 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 84163aa605d60776c13e7c1ce056eabedfa122bd Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:04 -0800
Subject: [PATCH] raw/cnxk_gpio: fix file descriptor leak

[ upstream commit 67f0beaf0f5bf2cf239219c737ed8d93aaaaa673 ]

The function would leak file if fscanf failed.
There is a working version in other file, clone that.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: 0e6557b448fa ("raw/cnxk_gpio: add self test")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c | 24 ++++++++++++++--------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c b/drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c
index 10742b5dc4..907535c08e 100644
--- a/drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c
+++ b/drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c
@@ -34,24 +34,30 @@ cnxk_gpio_attr_exists(const char *attr)
 static int
 cnxk_gpio_read_attr(char *attr, char *val)
 {
+	int ret, ret2;
 	FILE *fp;
-	int ret;
 
 	fp = fopen(attr, "r");
 	if (!fp)
 		return -errno;
 
 	ret = fscanf(fp, "%s", val);
-	if (ret < 0)
-		return -errno;
-	if (ret != 1)
-		return -EIO;
+	if (ret < 0) {
+		ret = -errno;
+		goto out;
+	}
+	if (ret != 1) {
+		ret = -EIO;
+		goto out;
+	}
 
-	ret = fclose(fp);
-	if (ret)
-		return -errno;
+	ret = 0;
+out:
+	ret2 = fclose(fp);
+	if (!ret)
+		ret = ret2;
 
-	return 0;
+	return ret;
 }
 
 #define CNXK_GPIO_ERR_STR(err, str, ...) do {                                  \
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.066097518 +0000
+++ 0063-raw-cnxk_gpio-fix-file-descriptor-leak.patch	2025-02-17 16:13:16.858441592 +0000
@@ -1 +1 @@
-From 67f0beaf0f5bf2cf239219c737ed8d93aaaaa673 Mon Sep 17 00:00:00 2001
+From 84163aa605d60776c13e7c1ce056eabedfa122bd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 67f0beaf0f5bf2cf239219c737ed8d93aaaaa673 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 2f3973a7b5..a0d9942f20 100644
+index 10742b5dc4..907535c08e 100644

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

* patch 'net/i40e: remove duplicate code' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (61 preceding siblings ...)
  2025-02-17 17:04 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'eal: fix devargs layers parsing out of bounds' " luca.boccassi
                   ` (14 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From af5c1efdef046a38adadeeb0ce3b72d32e491253 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:06 -0800
Subject: [PATCH] net/i40e: remove duplicate code

[ upstream commit 8c085f702ac3074d20e51ee691b0bc967919c43e ]

There are two branches in the cascading if/else that have same
condition and code; remove one. Update the code to follow DPDK
style where all statements in if should have brackets if any
leg requires them.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: 2ab5c84605f0 ("net/i40e: fix ESP flow creation")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/i40e/i40e_fdir.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c
index afcaa593eb..1f48a63323 100644
--- a/drivers/net/i40e/i40e_fdir.c
+++ b/drivers/net/i40e/i40e_fdir.c
@@ -599,18 +599,16 @@ i40e_flow_fdir_fill_eth_ip_head(struct i40e_pf *pf,
 		} else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV4_UDP) {
 			len = fill_ip4_head(fdir_input, raw_pkt, IPPROTO_UDP,
 					len, ether_type);
-		} else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV4_UDP) {
-			len = fill_ip4_head(fdir_input, raw_pkt, IPPROTO_UDP,
-					len, ether_type);
-		} else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV6)
+		} else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV6) {
 			len = fill_ip6_head(fdir_input, raw_pkt, IPPROTO_ESP,
 					len, ether_type);
-		else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV6_UDP)
+		} else if (cus_pctype->index == I40E_CUSTOMIZED_ESP_IPV6_UDP) {
 			len = fill_ip6_head(fdir_input, raw_pkt, IPPROTO_UDP,
 					len, ether_type);
-		else if (cus_pctype->index == I40E_CUSTOMIZED_IPV6_L2TPV3)
+		} else if (cus_pctype->index == I40E_CUSTOMIZED_IPV6_L2TPV3) {
 			len = fill_ip6_head(fdir_input, raw_pkt, IPPROTO_L2TP,
 					len, ether_type);
+		}
 	} else {
 		PMD_DRV_LOG(ERR, "unknown pctype %u.", fdir_input->pctype);
 		return -1;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.097732625 +0000
+++ 0064-net-i40e-remove-duplicate-code.patch	2025-02-17 16:13:16.862441592 +0000
@@ -1 +1 @@
-From 8c085f702ac3074d20e51ee691b0bc967919c43e Mon Sep 17 00:00:00 2001
+From af5c1efdef046a38adadeeb0ce3b72d32e491253 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8c085f702ac3074d20e51ee691b0bc967919c43e ]
+
@@ -17 +19 @@
- drivers/net/intel/i40e/i40e_fdir.c | 10 ++++------
+ drivers/net/i40e/i40e_fdir.c | 10 ++++------
@@ -20,4 +22,4 @@
-diff --git a/drivers/net/intel/i40e/i40e_fdir.c b/drivers/net/intel/i40e/i40e_fdir.c
-index 349627a2ed..94e3ab44e3 100644
---- a/drivers/net/intel/i40e/i40e_fdir.c
-+++ b/drivers/net/intel/i40e/i40e_fdir.c
+diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c
+index afcaa593eb..1f48a63323 100644
+--- a/drivers/net/i40e/i40e_fdir.c
++++ b/drivers/net/i40e/i40e_fdir.c

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

* patch 'eal: fix devargs layers parsing out of bounds' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (62 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/i40e: remove duplicate code' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/qede: fix debug messages array' " luca.boccassi
                   ` (13 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From db68a74527720938c6288141da9869931b6255f9 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:07 -0800
Subject: [PATCH] eal: fix devargs layers parsing out of bounds

[ upstream commit 42f91490ebc97a816ea11ce9c995f455c169a77a ]

The code for parsing layers in devargs could reference past
the end of layers[] array on stack.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: 9a1a9e4a2ddd ("devargs: support path value with global device syntax")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/common/eal_common_devargs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/eal/common/eal_common_devargs.c b/lib/eal/common/eal_common_devargs.c
index fb5d0a293b..2f1515d7c9 100644
--- a/lib/eal/common/eal_common_devargs.c
+++ b/lib/eal/common/eal_common_devargs.c
@@ -88,7 +88,7 @@ rte_devargs_layers_parse(struct rte_devargs *devargs,
 	s = devargs->data;
 
 	while (s != NULL) {
-		if (nblayer > RTE_DIM(layers)) {
+		if (nblayer >= RTE_DIM(layers)) {
 			ret = -E2BIG;
 			goto get_out;
 		}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.129918990 +0000
+++ 0065-eal-fix-devargs-layers-parsing-out-of-bounds.patch	2025-02-17 16:13:16.862441592 +0000
@@ -1 +1 @@
-From 42f91490ebc97a816ea11ce9c995f455c169a77a Mon Sep 17 00:00:00 2001
+From db68a74527720938c6288141da9869931b6255f9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 42f91490ebc97a816ea11ce9c995f455c169a77a ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index a64805b268..dd857fc839 100644
+index fb5d0a293b..2f1515d7c9 100644

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

* patch 'net/qede: fix debug messages array' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (63 preceding siblings ...)
  2025-02-17 17:04 ` patch 'eal: fix devargs layers parsing out of bounds' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'examples/ptpclient: fix message parsing' " luca.boccassi
                   ` (12 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 595e23bf8b00621e8a5195b5b78f26be0d3d8128 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:08 -0800
Subject: [PATCH] net/qede: fix debug messages array

[ upstream commit 60c68da0392e31ea4c163e0be8f1236a00cd350c ]

The array of debug status strings did not match possible enum
values. Add the missing element and a static assert to make sure
the table has all possible values.

For more complete description see.
Link: https://pvs-studio.com/en/blog/posts/cpp/1176/

Fixes: ec55c118792b ("net/qede: add infrastructure for debug data collection")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/qede/qede_debug.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/qede/qede_debug.c b/drivers/net/qede/qede_debug.c
index 18f2d988fb..1d3147b724 100644
--- a/drivers/net/qede/qede_debug.c
+++ b/drivers/net/qede/qede_debug.c
@@ -4,6 +4,7 @@
  * www.marvell.com
  */
 
+#include <assert.h>
 #include <rte_common.h>
 #include "base/bcm_osal.h"
 #include "base/ecore.h"
@@ -82,6 +83,7 @@ static const char * const s_mem_group_names[] = {
 	"TM_MEM",
 	"TASK_CFC_MEM",
 };
+static_assert(RTE_DIM(s_mem_group_names) == MEM_GROUPS_NUM, "memory group string mismatch");
 
 /* Idle check conditions */
 
@@ -5614,6 +5616,8 @@ static const char * const s_status_str[] = {
 	/* DBG_STATUS_INVALID_FILTER_TRIGGER_DWORDS */
 	"The filter/trigger constraint dword offsets are not enabled for recording",
 
+	/* DBG_STATUS_NO_MATCHING_FRAMING_MODE */
+	"No matching frame mode",
 
 	/* DBG_STATUS_VFC_READ_ERROR */
 	"Error reading from VFC",
@@ -5759,6 +5763,7 @@ static const char * const s_status_str[] = {
 	/* DBG_STATUS_MISSING_TRIGGER_STATE_STORM */
 	"When triggering on Storm data, the Storm to trigger on must be specified"
 };
+static_assert(RTE_DIM(s_status_str) == MAX_DBG_STATUS, "status string table mismatch");
 
 /* Idle check severity names array */
 static const char * const s_idle_chk_severity_str[] = {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.161023377 +0000
+++ 0066-net-qede-fix-debug-messages-array.patch	2025-02-17 16:13:16.862441592 +0000
@@ -1 +1 @@
-From 60c68da0392e31ea4c163e0be8f1236a00cd350c Mon Sep 17 00:00:00 2001
+From 595e23bf8b00621e8a5195b5b78f26be0d3d8128 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 60c68da0392e31ea4c163e0be8f1236a00cd350c ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org

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

* patch 'examples/ptpclient: fix message parsing' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (64 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/qede: fix debug messages array' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/hinic: fix flow type bitmask overflow' " luca.boccassi
                   ` (11 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From c5437fdd9c14ffc378d6d5b855d3301c79f64500 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:10 -0800
Subject: [PATCH] examples/ptpclient: fix message parsing

[ upstream commit 19630bd0d735badb06143086d4f1c50d726b7bad ]

Calling memcmp on same structure will always be true.
Replace with same conditional used elsewhere.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: ab129e9065a5 ("examples/ptpclient: add minimal PTP client")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 examples/ptpclient/ptpclient.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c
index cdf2da64df..ecc6e09765 100644
--- a/examples/ptpclient/ptpclient.c
+++ b/examples/ptpclient/ptpclient.c
@@ -365,7 +365,7 @@ parse_sync(struct ptpv2_data_slave_ordinary *ptp_data, uint16_t rx_tstamp_idx)
 		ptp_data->ptpset = 1;
 	}
 
-	if (memcmp(&ptp_hdr->source_port_id.clock_id,
+	if (memcmp(&ptp_data->master_clock_id,
 			&ptp_hdr->source_port_id.clock_id,
 			sizeof(struct clock_id)) == 0) {
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.197297689 +0000
+++ 0067-examples-ptpclient-fix-message-parsing.patch	2025-02-17 16:13:16.866441592 +0000
@@ -1 +1 @@
-From 19630bd0d735badb06143086d4f1c50d726b7bad Mon Sep 17 00:00:00 2001
+From c5437fdd9c14ffc378d6d5b855d3301c79f64500 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 19630bd0d735badb06143086d4f1c50d726b7bad ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 27d06dd91d..c344e7db1e 100644
+index cdf2da64df..ecc6e09765 100644
@@ -23 +24 @@
-@@ -367,7 +367,7 @@ parse_sync(struct ptpv2_time_receiver_ordinary *ptp_data, uint16_t rx_tstamp_idx
+@@ -365,7 +365,7 @@ parse_sync(struct ptpv2_data_slave_ordinary *ptp_data, uint16_t rx_tstamp_idx)
@@ -28 +29 @@
-+	if (memcmp(&ptp_data->transmitter_clock_id,
++	if (memcmp(&ptp_data->master_clock_id,

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

* patch 'net/hinic: fix flow type bitmask overflow' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (65 preceding siblings ...)
  2025-02-17 17:04 ` patch 'examples/ptpclient: fix message parsing' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " luca.boccassi
                   ` (10 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 687588d938c783fb9c5130e777af6267861bb184 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:12 -0800
Subject: [PATCH] net/hinic: fix flow type bitmask overflow

[ upstream commit a357d5b703253b5920aba808a24877386a22720e ]

The type mask is 64 bit value, doing a shift of literal 1 (32 bit)
will result in int type (32 bit) and cause truncation.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: f4ca3fd54c4d ("net/hinic: create and destroy flow director filter")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/hinic/hinic_pmd_flow.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/hinic/hinic_pmd_flow.c b/drivers/net/hinic/hinic_pmd_flow.c
index 358b372e07..1c4618159b 100644
--- a/drivers/net/hinic/hinic_pmd_flow.c
+++ b/drivers/net/hinic/hinic_pmd_flow.c
@@ -1979,8 +1979,8 @@ static int hinic_lookup_new_filter(struct hinic_5tuple_filter *filter,
 		return -EINVAL;
 	}
 
-	if (!(filter_info->type_mask & (1 << type_id))) {
-		filter_info->type_mask |= 1 << type_id;
+	if (!(filter_info->type_mask & (UINT64_C(1) << type_id))) {
+		filter_info->type_mask |= UINT64_C(1) << type_id;
 		filter->index = type_id;
 		filter_info->pkt_filters[type_id].enable = true;
 		filter_info->pkt_filters[type_id].pkt_proto =
@@ -2138,7 +2138,7 @@ static void hinic_remove_5tuple_filter(struct rte_eth_dev *dev,
 	filter_info->pkt_type = 0;
 	filter_info->qid = 0;
 	filter_info->pkt_filters[filter->index].qid = 0;
-	filter_info->type_mask &= ~(1 <<  (filter->index));
+	filter_info->type_mask &= ~(UINT64_C(1) << filter->index);
 	TAILQ_REMOVE(&filter_info->fivetuple_list, filter, entries);
 
 	rte_free(filter);
@@ -2268,8 +2268,8 @@ hinic_ethertype_filter_insert(struct hinic_filter_info *filter_info,
 	if (id < 0)
 		return -EINVAL;
 
-	if (!(filter_info->type_mask & (1 << id))) {
-		filter_info->type_mask |= 1 << id;
+	if (!(filter_info->type_mask & (UINT64_C(1) << id))) {
+		filter_info->type_mask |= UINT64_C(1) << id;
 		filter_info->pkt_filters[id].pkt_proto =
 			ethertype_filter->pkt_proto;
 		filter_info->pkt_filters[id].enable = ethertype_filter->enable;
@@ -2289,7 +2289,7 @@ hinic_ethertype_filter_remove(struct hinic_filter_info *filter_info,
 		return;
 
 	filter_info->pkt_type = 0;
-	filter_info->type_mask &= ~(1 << idx);
+	filter_info->type_mask &= ~(UINT64_C(1) << idx);
 	filter_info->pkt_filters[idx].pkt_proto = (uint16_t)0;
 	filter_info->pkt_filters[idx].enable = FALSE;
 	filter_info->pkt_filters[idx].qid = 0;
@@ -2355,7 +2355,7 @@ hinic_add_del_ethertype_filter(struct rte_eth_dev *dev,
 		if (i < 0)
 			return -EINVAL;
 
-		if ((filter_info->type_mask & (1 << i))) {
+		if ((filter_info->type_mask & (UINT64_C(1) << i))) {
 			filter_info->pkt_filters[i].enable = FALSE;
 			(void)hinic_set_fdir_filter(nic_dev->hwdev,
 					filter_info->pkt_type,
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.237221190 +0000
+++ 0068-net-hinic-fix-flow-type-bitmask-overflow.patch	2025-02-17 16:13:16.866441592 +0000
@@ -1 +1 @@
-From a357d5b703253b5920aba808a24877386a22720e Mon Sep 17 00:00:00 2001
+From 687588d938c783fb9c5130e777af6267861bb184 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a357d5b703253b5920aba808a24877386a22720e ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 8fdd5a35be..6b1ca6ff88 100644
+index 358b372e07..1c4618159b 100644

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

* patch 'crypto/dpaa2_sec: fix bitmask truncation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (66 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/hinic: fix flow type bitmask overflow' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'crypto/dpaa_sec: " luca.boccassi
                   ` (9 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 10a08b640b25a46f54aa5901cb6bd52feeb516bc Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:13 -0800
Subject: [PATCH] crypto/dpaa2_sec: fix bitmask truncation

[ upstream commit 013ddc85bff5fdb85eb6006315ebdaa0c12eeece ]

The dqrr_held mask is 64 bit but updates were getting truncated
because 1 is of type int (32 bit) and the result shift of int is of
type int (32 bit); therefore any value >= 32 would get truncated.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: a77db24643b7 ("crypto/dpaa2_sec: support atomic queues")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index a8c99bc4af..b9a82a92ad 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -1502,8 +1502,8 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
 			if (*dpaa2_seqn((*ops)->sym->m_src)) {
 				if (*dpaa2_seqn((*ops)->sym->m_src) & QBMAN_ENQUEUE_FLAG_DCA) {
 					DPAA2_PER_LCORE_DQRR_SIZE--;
-					DPAA2_PER_LCORE_DQRR_HELD &= ~(1 <<
-					*dpaa2_seqn((*ops)->sym->m_src) &
+					DPAA2_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) <<
+						*dpaa2_seqn((*ops)->sym->m_src) &
 					QBMAN_EQCR_DCA_IDXMASK);
 				}
 				flags[loop] = *dpaa2_seqn((*ops)->sym->m_src);
@@ -1796,7 +1796,7 @@ dpaa2_sec_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
 		dq_idx = *dpaa2_seqn(m) - 1;
 		qbman_eq_desc_set_dca(eqdesc, 1, dq_idx, 0);
 		DPAA2_PER_LCORE_DQRR_SIZE--;
-		DPAA2_PER_LCORE_DQRR_HELD &= ~(1 << dq_idx);
+		DPAA2_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << dq_idx);
 	}
 	*dpaa2_seqn(m) = DPAA2_INVALID_MBUF_SEQN;
 }
@@ -4020,7 +4020,7 @@ dpaa2_sec_process_atomic_event(struct qbman_swp *swp __rte_unused,
 	dqrr_index = qbman_get_dqrr_idx(dq);
 	*dpaa2_seqn(crypto_op->sym->m_src) = QBMAN_ENQUEUE_FLAG_DCA | dqrr_index;
 	DPAA2_PER_LCORE_DQRR_SIZE++;
-	DPAA2_PER_LCORE_DQRR_HELD |= 1 << dqrr_index;
+	DPAA2_PER_LCORE_DQRR_HELD |= UINT64_C(1) << dqrr_index;
 	DPAA2_PER_LCORE_DQRR_MBUF(dqrr_index) = crypto_op->sym->m_src;
 	ev->event_ptr = crypto_op;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.270444961 +0000
+++ 0069-crypto-dpaa2_sec-fix-bitmask-truncation.patch	2025-02-17 16:13:16.866441592 +0000
@@ -1 +1 @@
-From 013ddc85bff5fdb85eb6006315ebdaa0c12eeece Mon Sep 17 00:00:00 2001
+From 10a08b640b25a46f54aa5901cb6bd52feeb516bc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 013ddc85bff5fdb85eb6006315ebdaa0c12eeece ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index ec6577f64c..7ad8fd47dd 100644
+index a8c99bc4af..b9a82a92ad 100644
@@ -24 +25 @@
-@@ -1491,8 +1491,8 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1502,8 +1502,8 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -35 +36 @@
-@@ -1772,7 +1772,7 @@ dpaa2_sec_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
+@@ -1796,7 +1796,7 @@ dpaa2_sec_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
@@ -44 +45 @@
-@@ -4055,7 +4055,7 @@ dpaa2_sec_process_atomic_event(struct qbman_swp *swp __rte_unused,
+@@ -4020,7 +4020,7 @@ dpaa2_sec_process_atomic_event(struct qbman_swp *swp __rte_unused,

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

* patch 'crypto/dpaa_sec: fix bitmask truncation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (67 preceding siblings ...)
  2025-02-17 17:04 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'event/dpaa: " luca.boccassi
                   ` (8 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 32a4ef73f2cab1a50dbb503d41cf85359e905316 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:14 -0800
Subject: [PATCH] crypto/dpaa_sec: fix bitmask truncation

[ upstream commit 7c18f573c1f5368f70e6e956c4ba0c6f97b19cb1 ]

The dqrr_held mask is 64 bit but updates were getting truncated
because 1 is of type int (32 bit) and the result shift of int is of
type int (32 bit); therefore any value >= 32 would get truncated.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: fe3688ba7950 ("crypto/dpaa_sec: support event crypto adapter")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 8687e3e75e..05e543f955 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -1910,13 +1910,12 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
 			op = *(ops++);
 			if (*dpaa_seqn(op->sym->m_src) != 0) {
 				index = *dpaa_seqn(op->sym->m_src) - 1;
-				if (DPAA_PER_LCORE_DQRR_HELD & (1 << index)) {
+				if (DPAA_PER_LCORE_DQRR_HELD & (UINT64_C(1) << index)) {
 					/* QM_EQCR_DCA_IDXMASK = 0x0f */
 					flags[loop] = ((index & 0x0f) << 8);
 					flags[loop] |= QMAN_ENQUEUE_FLAG_DCA;
 					DPAA_PER_LCORE_DQRR_SIZE--;
-					DPAA_PER_LCORE_DQRR_HELD &=
-								~(1 << index);
+					DPAA_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << index);
 				}
 			}
 
@@ -3451,7 +3450,7 @@ dpaa_sec_process_atomic_event(void *event,
 	/* Save active dqrr entries */
 	index = ((uintptr_t)dqrr >> 6) & (16/*QM_DQRR_SIZE*/ - 1);
 	DPAA_PER_LCORE_DQRR_SIZE++;
-	DPAA_PER_LCORE_DQRR_HELD |= 1 << index;
+	DPAA_PER_LCORE_DQRR_HELD |= UINT64_C(1) << index;
 	DPAA_PER_LCORE_DQRR_MBUF(index) = ctx->op->sym->m_src;
 	ev->impl_opaque = index + 1;
 	*dpaa_seqn(ctx->op->sym->m_src) = (uint32_t)index + 1;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.304229620 +0000
+++ 0070-crypto-dpaa_sec-fix-bitmask-truncation.patch	2025-02-17 16:13:16.866441592 +0000
@@ -1 +1 @@
-From 7c18f573c1f5368f70e6e956c4ba0c6f97b19cb1 Mon Sep 17 00:00:00 2001
+From 32a4ef73f2cab1a50dbb503d41cf85359e905316 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7c18f573c1f5368f70e6e956c4ba0c6f97b19cb1 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 3fa88ca968..e117cd77a6 100644
+index 8687e3e75e..05e543f955 100644
@@ -25 +26 @@
-@@ -1907,13 +1907,12 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1910,13 +1910,12 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -41 +42 @@
-@@ -3500,7 +3499,7 @@ dpaa_sec_process_atomic_event(void *event,
+@@ -3451,7 +3450,7 @@ dpaa_sec_process_atomic_event(void *event,

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

* patch 'event/dpaa: fix bitmask truncation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (68 preceding siblings ...)
  2025-02-17 17:04 ` patch 'crypto/dpaa_sec: " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/dpaa: " luca.boccassi
                   ` (7 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From fb6a97ae23a7c71e87463b719e61f85dd88e87b5 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:15 -0800
Subject: [PATCH] event/dpaa: fix bitmask truncation

[ upstream commit a82888ed6edc599f82263a1bd067a7edb7cceeee ]

More bitmask truncation from mask computation.

Fixes: 0ee17f79ebd0 ("event/dpaa: add enqueue/dequeue")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/event/dpaa/dpaa_eventdev.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index 2532abbe78..12fc11f425 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -101,7 +101,7 @@ dpaa_event_enqueue_burst(void *port, const struct rte_event ev[],
 			qman_dca_index(ev[i].impl_opaque, 0);
 			mbuf = DPAA_PER_LCORE_DQRR_MBUF(i);
 			*dpaa_seqn(mbuf) = DPAA_INVALID_MBUF_SEQN;
-			DPAA_PER_LCORE_DQRR_HELD &= ~(1 << i);
+			DPAA_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << i);
 			DPAA_PER_LCORE_DQRR_SIZE--;
 			break;
 		default:
@@ -204,11 +204,11 @@ dpaa_event_dequeue_burst(void *port, struct rte_event ev[],
 	/* Check if there are atomic contexts to be released */
 	i = 0;
 	while (DPAA_PER_LCORE_DQRR_SIZE) {
-		if (DPAA_PER_LCORE_DQRR_HELD & (1 << i)) {
+		if (DPAA_PER_LCORE_DQRR_HELD & (UINT64_C(1) << i)) {
 			qman_dca_index(i, 0);
 			mbuf = DPAA_PER_LCORE_DQRR_MBUF(i);
 			*dpaa_seqn(mbuf) = DPAA_INVALID_MBUF_SEQN;
-			DPAA_PER_LCORE_DQRR_HELD &= ~(1 << i);
+			DPAA_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << i);
 			DPAA_PER_LCORE_DQRR_SIZE--;
 		}
 		i++;
@@ -274,11 +274,11 @@ dpaa_event_dequeue_burst_intr(void *port, struct rte_event ev[],
 	/* Check if there are atomic contexts to be released */
 	i = 0;
 	while (DPAA_PER_LCORE_DQRR_SIZE) {
-		if (DPAA_PER_LCORE_DQRR_HELD & (1 << i)) {
+		if (DPAA_PER_LCORE_DQRR_HELD & (UINT64_C(1) << i)) {
 			qman_dca_index(i, 0);
 			mbuf = DPAA_PER_LCORE_DQRR_MBUF(i);
 			*dpaa_seqn(mbuf) = DPAA_INVALID_MBUF_SEQN;
-			DPAA_PER_LCORE_DQRR_HELD &= ~(1 << i);
+			DPAA_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << i);
 			DPAA_PER_LCORE_DQRR_SIZE--;
 		}
 		i++;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.337444044 +0000
+++ 0071-event-dpaa-fix-bitmask-truncation.patch	2025-02-17 16:13:16.870441592 +0000
@@ -1 +1 @@
-From a82888ed6edc599f82263a1bd067a7edb7cceeee Mon Sep 17 00:00:00 2001
+From fb6a97ae23a7c71e87463b719e61f85dd88e87b5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a82888ed6edc599f82263a1bd067a7edb7cceeee ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 853cc1ecf9..400e0ecd1c 100644
+index 2532abbe78..12fc11f425 100644
@@ -21 +22 @@
-@@ -102,7 +102,7 @@ dpaa_event_enqueue_burst(void *port, const struct rte_event ev[],
+@@ -101,7 +101,7 @@ dpaa_event_enqueue_burst(void *port, const struct rte_event ev[],
@@ -30 +31 @@
-@@ -199,11 +199,11 @@ dpaa_event_dequeue_burst(void *port, struct rte_event ev[],
+@@ -204,11 +204,11 @@ dpaa_event_dequeue_burst(void *port, struct rte_event ev[],
@@ -44 +45 @@
-@@ -263,11 +263,11 @@ dpaa_event_dequeue_burst_intr(void *port, struct rte_event ev[],
+@@ -274,11 +274,11 @@ dpaa_event_dequeue_burst_intr(void *port, struct rte_event ev[],

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

* patch 'net/dpaa: fix bitmask truncation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (69 preceding siblings ...)
  2025-02-17 17:04 ` patch 'event/dpaa: " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/dpaa2: " luca.boccassi
                   ` (6 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From d79a2588410f792767dad5c82cba8ed4e04c31ed Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:16 -0800
Subject: [PATCH] net/dpaa: fix bitmask truncation

[ upstream commit 8f64c187ad8e4e0b953439b2ce92d8573721eda3 ]

The dqrr_held mask is 64 bit but updates were getting truncated
because 1 is of type int (32 bit) and the result shift of int is of
type int (32 bit); therefore any value >= 32 would get truncated.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: 5e7455931442 ("net/dpaa: support Rx queue configurations with eventdev")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_rxtx.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c
index 018d55bbdc..31412c0715 100644
--- a/drivers/net/dpaa/dpaa_rxtx.c
+++ b/drivers/net/dpaa/dpaa_rxtx.c
@@ -683,7 +683,7 @@ dpaa_rx_cb_atomic(void *event,
 	/* Save active dqrr entries */
 	index = DQRR_PTR2IDX(dqrr);
 	DPAA_PER_LCORE_DQRR_SIZE++;
-	DPAA_PER_LCORE_DQRR_HELD |= 1 << index;
+	DPAA_PER_LCORE_DQRR_HELD |= UINT64_C(1) << index;
 	DPAA_PER_LCORE_DQRR_MBUF(index) = mbuf;
 	ev->impl_opaque = index + 1;
 	*dpaa_seqn(mbuf) = (uint32_t)index + 1;
@@ -1108,13 +1108,12 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
 			seqn = *dpaa_seqn(mbuf);
 			if (seqn != DPAA_INVALID_MBUF_SEQN) {
 				index = seqn - 1;
-				if (DPAA_PER_LCORE_DQRR_HELD & (1 << index)) {
+				if (DPAA_PER_LCORE_DQRR_HELD & (UINT64_C(1) << index)) {
 					flags[loop] =
 					   ((index & QM_EQCR_DCA_IDXMASK) << 8);
 					flags[loop] |= QMAN_ENQUEUE_FLAG_DCA;
 					DPAA_PER_LCORE_DQRR_SIZE--;
-					DPAA_PER_LCORE_DQRR_HELD &=
-								~(1 << index);
+					DPAA_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << index);
 				}
 			}
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.368388428 +0000
+++ 0072-net-dpaa-fix-bitmask-truncation.patch	2025-02-17 16:13:16.870441592 +0000
@@ -1 +1 @@
-From 8f64c187ad8e4e0b953439b2ce92d8573721eda3 Mon Sep 17 00:00:00 2001
+From d79a2588410f792767dad5c82cba8ed4e04c31ed Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8f64c187ad8e4e0b953439b2ce92d8573721eda3 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index 247e7b92ba..05bd73becf 100644
+index 018d55bbdc..31412c0715 100644
@@ -25 +26 @@
-@@ -842,7 +842,7 @@ dpaa_rx_cb_atomic(void *event,
+@@ -683,7 +683,7 @@ dpaa_rx_cb_atomic(void *event,
@@ -34 +35 @@
-@@ -1338,13 +1338,12 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
+@@ -1108,13 +1108,12 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)

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

* patch 'net/dpaa2: fix bitmask truncation' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (70 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/dpaa: " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'net/qede: fix nested loops' " luca.boccassi
                   ` (5 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ef323a819f075cdd4b679dd683d4399278371f98 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:17 -0800
Subject: [PATCH] net/dpaa2: fix bitmask truncation

[ upstream commit e4591c38b50e23fc6ac6b73803e78d49142ecf57 ]

The dqrr_held mask is 64 bit but updates were getting truncated
because 1 is of type int (32 bit) and the result shift of int is of
type int (32 bit); therefore any value >= 32 would get truncated.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/

Fixes: 2d3788631862 ("net/dpaa2: support atomic queues")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa2/dpaa2_rxtx.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 85910bbd8f..a9de1c9f99 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -924,7 +924,7 @@ dpaa2_dev_process_atomic_event(struct qbman_swp *swp __rte_unused,
 	dqrr_index = qbman_get_dqrr_idx(dq);
 	*dpaa2_seqn(ev->mbuf) = dqrr_index + 1;
 	DPAA2_PER_LCORE_DQRR_SIZE++;
-	DPAA2_PER_LCORE_DQRR_HELD |= 1 << dqrr_index;
+	DPAA2_PER_LCORE_DQRR_HELD |= UINT64_C(1) << dqrr_index;
 	DPAA2_PER_LCORE_DQRR_MBUF(dqrr_index) = ev->mbuf;
 }
 
@@ -1305,7 +1305,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
 				flags[loop] = QBMAN_ENQUEUE_FLAG_DCA |
 						dqrr_index;
 				DPAA2_PER_LCORE_DQRR_SIZE--;
-				DPAA2_PER_LCORE_DQRR_HELD &= ~(1 << dqrr_index);
+				DPAA2_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << dqrr_index);
 				*dpaa2_seqn(*bufs) = DPAA2_INVALID_MBUF_SEQN;
 			}
 
@@ -1544,7 +1544,7 @@ dpaa2_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
 		dq_idx = *dpaa2_seqn(m) - 1;
 		qbman_eq_desc_set_dca(eqdesc, 1, dq_idx, 0);
 		DPAA2_PER_LCORE_DQRR_SIZE--;
-		DPAA2_PER_LCORE_DQRR_HELD &= ~(1 << dq_idx);
+		DPAA2_PER_LCORE_DQRR_HELD &= ~(UINT64_C(1) << dq_idx);
 	}
 	*dpaa2_seqn(m) = DPAA2_INVALID_MBUF_SEQN;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.400175541 +0000
+++ 0073-net-dpaa2-fix-bitmask-truncation.patch	2025-02-17 16:13:16.870441592 +0000
@@ -1 +1 @@
-From e4591c38b50e23fc6ac6b73803e78d49142ecf57 Mon Sep 17 00:00:00 2001
+From ef323a819f075cdd4b679dd683d4399278371f98 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e4591c38b50e23fc6ac6b73803e78d49142ecf57 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +23 @@
-index bfb5542bbc..cad15d8f75 100644
+index 85910bbd8f..a9de1c9f99 100644
@@ -25 +26 @@
-@@ -933,7 +933,7 @@ dpaa2_dev_process_atomic_event(struct qbman_swp *swp __rte_unused,
+@@ -924,7 +924,7 @@ dpaa2_dev_process_atomic_event(struct qbman_swp *swp __rte_unused,
@@ -34 +35 @@
-@@ -1317,7 +1317,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
+@@ -1305,7 +1305,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
@@ -43 +44 @@
-@@ -1575,7 +1575,7 @@ dpaa2_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
+@@ -1544,7 +1544,7 @@ dpaa2_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,

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

* patch 'net/qede: fix nested loops' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (71 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/dpaa2: " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'examples/l3fwd: fix socket ID check' " luca.boccassi
                   ` (4 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 107c0c15493f52e529a139f0f7d0806fb7f439a6 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:18 -0800
Subject: [PATCH] net/qede: fix nested loops

[ upstream commit c8b3833965dc84914e94776cadfc8fb48c34459b ]

Using variable in outer loop, and inner loop is obvious bug.
This bug is in base code, so likely on other platforms as well.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: 81dba2b2ff61 ("net/qede/base: add LLDP support")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/qede/base/ecore_dcbx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/qede/base/ecore_dcbx.c b/drivers/net/qede/base/ecore_dcbx.c
index 31234f18cf..72bbedd65a 100644
--- a/drivers/net/qede/base/ecore_dcbx.c
+++ b/drivers/net/qede/base/ecore_dcbx.c
@@ -1363,7 +1363,7 @@ ecore_lldp_mib_update_event(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt)
 	struct ecore_dcbx_mib_meta_data data;
 	enum _ecore_status_t rc = ECORE_SUCCESS;
 	struct lldp_received_tlvs_s tlvs;
-	int i;
+	int i, j;
 
 	for (i = 0; i < LLDP_MAX_LLDP_AGENTS; i++) {
 		OSAL_MEM_ZERO(&data, sizeof(data));
@@ -1381,9 +1381,9 @@ ecore_lldp_mib_update_event(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt)
 		if (!tlvs.length)
 			continue;
 
-		for (i = 0; i < MAX_TLV_BUFFER; i++)
-			tlvs.tlvs_buffer[i] =
-				OSAL_CPU_TO_BE32(tlvs.tlvs_buffer[i]);
+		for (j = 0; j < MAX_TLV_BUFFER; j++)
+			tlvs.tlvs_buffer[j] =
+				OSAL_CPU_TO_BE32(tlvs.tlvs_buffer[j]);
 
 		OSAL_LLDP_RX_TLVS(p_hwfn, tlvs.tlvs_buffer, tlvs.length);
 	}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.433583861 +0000
+++ 0074-net-qede-fix-nested-loops.patch	2025-02-17 16:13:16.870441592 +0000
@@ -1 +1 @@
-From c8b3833965dc84914e94776cadfc8fb48c34459b Mon Sep 17 00:00:00 2001
+From 107c0c15493f52e529a139f0f7d0806fb7f439a6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c8b3833965dc84914e94776cadfc8fb48c34459b ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org

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

* patch 'examples/l3fwd: fix socket ID check' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (72 preceding siblings ...)
  2025-02-17 17:04 ` patch 'net/qede: fix nested loops' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'common/cnxk: fix null " luca.boccassi
                   ` (3 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 883c3357a84ec219cedc9a6ca0e00847b13f20aa Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:19 -0800
Subject: [PATCH] examples/l3fwd: fix socket ID check

[ upstream commit a7216f081767c7259dd3fba5eda0ca7b0bcb4595 ]

The expression:

  if ((socketid = rte_lcore_to_socket_id(lcore) != 0) &&

gets evaluated as socketid = (rte_lcore_to_socket_id(lcore) != 0)
which is not what was intended. This is goes all the way back
to first release.

Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: af75078fece3 ("first public release")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 examples/l3fwd-power/main.c | 4 ++--
 examples/l3fwd/main.c       | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 1bcc61e777..501e4c47d6 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -1537,8 +1537,8 @@ check_lcore_params(void)
 							"mask\n", lcore);
 			return -1;
 		}
-		if ((socketid = rte_lcore_to_socket_id(lcore) != 0) &&
-							(numa_on == 0)) {
+		socketid = rte_lcore_to_socket_id(lcore);
+		if (socketid != 0 && numa_on == 0) {
 			printf("warning: lcore %u is on socket %d with numa "
 						"off\n", lcore, socketid);
 		}
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index 9201019711..d0067657e9 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -303,8 +303,9 @@ check_lcore_params(void)
 			printf("error: lcore %u is not enabled in lcore mask\n", lcore);
 			return -1;
 		}
-		if ((socketid = rte_lcore_to_socket_id(lcore) != 0) &&
-			(numa_on == 0)) {
+
+		socketid = rte_lcore_to_socket_id(lcore);
+		if (socketid != 0 && numa_on == 0) {
 			printf("warning: lcore %u is on socket %d with numa off\n",
 				lcore, socketid);
 		}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.464653932 +0000
+++ 0075-examples-l3fwd-fix-socket-ID-check.patch	2025-02-17 16:13:16.870441592 +0000
@@ -1 +1 @@
-From a7216f081767c7259dd3fba5eda0ca7b0bcb4595 Mon Sep 17 00:00:00 2001
+From 883c3357a84ec219cedc9a6ca0e00847b13f20aa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a7216f081767c7259dd3fba5eda0ca7b0bcb4595 ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index d279e664b3..e27b8531b5 100644
+index 1bcc61e777..501e4c47d6 100644
@@ -28 +29 @@
-@@ -1412,8 +1412,8 @@ check_lcore_params(void)
+@@ -1537,8 +1537,8 @@ check_lcore_params(void)
@@ -40 +41 @@
-index 994b7dd8e5..ae3b4f6439 100644
+index 9201019711..d0067657e9 100644
@@ -43 +44 @@
-@@ -311,8 +311,9 @@ check_lcore_params(void)
+@@ -303,8 +303,9 @@ check_lcore_params(void)

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

* patch 'common/cnxk: fix null check' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (73 preceding siblings ...)
  2025-02-17 17:04 ` patch 'examples/l3fwd: fix socket ID check' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'eal/linux: remove useless assignments' " luca.boccassi
                   ` (2 subsequent siblings)
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 0ac965dafc74a22d160f3183fe7aea7fe4ea2d11 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:20 -0800
Subject: [PATCH] common/cnxk: fix null check

[ upstream commit 1bab0289c6a58c3847ffbde2718b73a9b988deca ]

The pointer mode is used then checked which is a bug reported
by PVS studio.

Fixes: bd2fd34ab86f ("common/cnxk: sync eth mode change command with firmware")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/common/cnxk/roc_bphy_cgx.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/common/cnxk/roc_bphy_cgx.c b/drivers/common/cnxk/roc_bphy_cgx.c
index e966494e21..3d674dbe84 100644
--- a/drivers/common/cnxk/roc_bphy_cgx.c
+++ b/drivers/common/cnxk/roc_bphy_cgx.c
@@ -364,20 +364,20 @@ roc_bphy_cgx_set_link_mode(struct roc_bphy_cgx *roc_cgx, unsigned int lmac,
 {
 	uint64_t scr1, scr0;
 
+	if (!mode)
+		return -EINVAL;
+
+	if (!roc_cgx)
+		return -EINVAL;
+
 	if (roc_model_is_cn9k() &&
 	    (mode->use_portm_idx || mode->portm_idx || mode->mode_group_idx)) {
 		return -ENOTSUP;
 	}
 
-	if (!roc_cgx)
-		return -EINVAL;
-
 	if (!roc_bphy_cgx_lmac_exists(roc_cgx, lmac))
 		return -ENODEV;
 
-	if (!mode)
-		return -EINVAL;
-
 	scr1 = FIELD_PREP(SCR1_ETH_CMD_ID, ETH_CMD_MODE_CHANGE) |
 	       FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_SPEED, mode->speed) |
 	       FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_DUPLEX, mode->full_duplex) |
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.497406114 +0000
+++ 0076-common-cnxk-fix-null-check.patch	2025-02-17 16:13:16.874441592 +0000
@@ -1 +1 @@
-From 1bab0289c6a58c3847ffbde2718b73a9b988deca Mon Sep 17 00:00:00 2001
+From 0ac965dafc74a22d160f3183fe7aea7fe4ea2d11 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1bab0289c6a58c3847ffbde2718b73a9b988deca ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 882cf65474..db70bafd9b 100644
+index e966494e21..3d674dbe84 100644
@@ -21 +22 @@
-@@ -366,20 +366,20 @@ roc_bphy_cgx_set_link_mode(struct roc_bphy_cgx *roc_cgx, unsigned int lmac,
+@@ -364,20 +364,20 @@ roc_bphy_cgx_set_link_mode(struct roc_bphy_cgx *roc_cgx, unsigned int lmac,

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

* patch 'eal/linux: remove useless assignments' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (74 preceding siblings ...)
  2025-02-17 17:04 ` patch 'common/cnxk: fix null " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'mempool: fix errno in empty create' " luca.boccassi
  2025-02-17 17:04 ` patch 'ethdev: convert string initialization' " luca.boccassi
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Ariel Otilibili; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From c4af10c4c2fd16b7a4f4347e31ea72d70028adfa Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <ariel.otilibili@6wind.com>
Date: Mon, 13 Jan 2025 18:19:20 +0100
Subject: [PATCH] eal/linux: remove useless assignments

[ upstream commit 36128ec5d93591700b72f3fc01bfe6216eaee905 ]

Found by static analysis:

In dev_uev_socket_fd_create(), fd is assigned before a return,
and not used.

The same for the variables buf and i in dev_uev_parse().

Fixes: c2bd9367e18f ("lib: remove direct access to interrupt handle")
Fixes: 0d0f478d0483 ("eal/linux: add uevent parse and process")

Signed-off-by: Ariel Otilibili <ariel.otilibili@6wind.com>
---
 lib/eal/linux/eal_dev.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/lib/eal/linux/eal_dev.c b/lib/eal/linux/eal_dev.c
index c0ba98852b..0d9053b409 100644
--- a/lib/eal/linux/eal_dev.c
+++ b/lib/eal/linux/eal_dev.c
@@ -129,7 +129,6 @@ dev_uev_socket_fd_create(void)
 	return 0;
 err:
 	close(fd);
-	fd = -1;
 	return ret;
 }
 
@@ -165,8 +164,6 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
 		 * uevent from udev.
 		 */
 		if (!strncmp(buf, "libudev", 7)) {
-			buf += 7;
-			i += 7;
 			return -1;
 		}
 		if (!strncmp(buf, "ACTION=", 7)) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.527436646 +0000
+++ 0077-eal-linux-remove-useless-assignments.patch	2025-02-17 16:13:16.874441592 +0000
@@ -1 +1 @@
-From 36128ec5d93591700b72f3fc01bfe6216eaee905 Mon Sep 17 00:00:00 2001
+From c4af10c4c2fd16b7a4f4347e31ea72d70028adfa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 36128ec5d93591700b72f3fc01bfe6216eaee905 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index e63f24d108..be97f56424 100644
+index c0ba98852b..0d9053b409 100644

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

* patch 'mempool: fix errno in empty create' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (75 preceding siblings ...)
  2025-02-17 17:04 ` patch 'eal/linux: remove useless assignments' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-02-17 17:04 ` patch 'ethdev: convert string initialization' " luca.boccassi
  77 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Ariel Otilibili; +Cc: Chengwen Feng, Konstantin Ananyev, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 5ed49f4417a6080b711a60ef5209bc5f4b3d9666 Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <ariel.otilibili@6wind.com>
Date: Mon, 20 Jan 2025 13:21:55 +0100
Subject: [PATCH] mempool: fix errno in empty create

[ upstream commit a81d8ceff4e961995c78df6dbc9353dbbfbd8c32 ]

When returning from rte_mempool_set_ops_byname(), rte_errno is not set
for error exits.

The API requires rte_errno to be set in that case.

Bugzilla ID: 1559
Fixes: c2c6b2f41305 ("mempool: fix default ops for an empty mempool")

Signed-off-by: Ariel Otilibili <ariel.otilibili@6wind.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
---
 lib/mempool/rte_mempool.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c
index 258754cf67..9d9c91be2a 100644
--- a/lib/mempool/rte_mempool.c
+++ b/lib/mempool/rte_mempool.c
@@ -928,8 +928,10 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
 	else
 		ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
 
-	if (ret)
+	if (ret) {
+		rte_errno = -ret;
 		goto exit_unlock;
+	}
 
 	/*
 	 * local_cache pointer is set even if cache_size is zero.
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.561126997 +0000
+++ 0078-mempool-fix-errno-in-empty-create.patch	2025-02-17 16:13:16.874441592 +0000
@@ -1 +1 @@
-From a81d8ceff4e961995c78df6dbc9353dbbfbd8c32 Mon Sep 17 00:00:00 2001
+From 5ed49f4417a6080b711a60ef5209bc5f4b3d9666 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a81d8ceff4e961995c78df6dbc9353dbbfbd8c32 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index d8e39e5c20..1e4f24783c 100644
+index 258754cf67..9d9c91be2a 100644

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

* patch 'ethdev: convert string initialization' has been queued to stable release 22.11.8
  2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
                   ` (76 preceding siblings ...)
  2025-02-17 17:04 ` patch 'mempool: fix errno in empty create' " luca.boccassi
@ 2025-02-17 17:04 ` luca.boccassi
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
  77 siblings, 1 reply; 121+ messages in thread
From: luca.boccassi @ 2025-02-17 17:04 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Morten Brørup, Bruce Richardson, Andrew Rybchenko,
	Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 2faec7a700bc720aa7ef419a05a41cd04a336ae3 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Thu, 3 Oct 2024 21:13:34 -0700
Subject: [PATCH] ethdev: convert string initialization
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit e0d947a1e6c2f80aa039a4f7082a8aa16797d8b9 ]

gcc 15 experimental [1], with -Wextra flag, gives warning in variable
initialization as string [2].

The warning has a point when initialized variable is intended to use as
string, since assignment is missing the required null terminator for
this case. But warning is useless for our usecase.

In this patch only updated a few instance to show the issue, there are
many instances to fix, if we prefer to go this way.
Other option is to disable warning but it can be useful for actual
string usecases, so I prefer to keep it.

Converted string initialization to array initialization.

[1]
gcc (GCC) 15.0.0 20241003 (experimental)

[2]
../lib/ethdev/rte_flow.h:906:36:
  error: initializer-string for array of ‘unsigned char’ is too long
        [-Werror=unterminated-string-initialization]
906 |         .hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
    |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:907:36:
  error: initializer-string for array of ‘unsigned char’ is too long
         [-Werror=unterminated-string-initialization]
907 |         .hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
    |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1009:25:
  error: initializer-string for array of ‘unsigned char’ is too long
         [-Werror=unterminated-string-initialization]
1009 |                         "\xff\xff\xff\xff\xff\xff\xff\xff"
     |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1012:25:
  error: initializer-string for array of ‘unsigned char’ is too long
         [-Werror=unterminated-string-initialization]
1012 |                         "\xff\xff\xff\xff\xff\xff\xff\xff"
     |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../lib/ethdev/rte_flow.h:1135:20:
  error: initializer-string for array of ‘unsigned char’ is too long
         [-Werror=unterminated-string-initialization]
1135 |         .hdr.vni = "\xff\xff\xff",
     |                    ^~~~~~~~~~~~~~

Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 app/test-pmd/cmdline_flow.c        | 31 +++++++++--------
 app/test/test_bpf.c                |  2 +-
 app/test/test_pcapng.c             |  2 +-
 doc/guides/prog_guide/rte_flow.rst |  2 +-
 drivers/net/cxgbe/cxgbe_flow.c     | 14 ++++----
 drivers/net/dpaa2/dpaa2_flow.c     | 14 ++++----
 drivers/net/mlx4/mlx4_flow.c       |  6 ++--
 drivers/net/mlx5/mlx5_flow.c       | 18 +++++-----
 drivers/net/mlx5/mlx5_flow_dv.c    | 24 ++++++-------
 drivers/net/mlx5/mlx5_flow_hw.c    | 56 +++++++++++++++---------------
 drivers/net/mlx5/mlx5_trigger.c    | 20 +++++------
 drivers/net/nfp/nfp_flow.c         | 14 ++++----
 drivers/net/tap/tap_flow.c         | 30 +++++++---------
 lib/ethdev/rte_flow.h              | 44 +++++++++++------------
 14 files changed, 131 insertions(+), 146 deletions(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index a0a7d3da14..619656363f 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -690,20 +690,20 @@ struct vxlan_encap_conf vxlan_encap_conf = {
 	.select_ipv4 = 1,
 	.select_vlan = 0,
 	.select_tos_ttl = 0,
-	.vni = "\x00\x00\x00",
+	.vni = { 0x00, 0x00, 0x00 },
 	.udp_src = 0,
 	.udp_dst = RTE_BE16(RTE_VXLAN_DEFAULT_PORT),
 	.ipv4_src = RTE_IPV4(127, 0, 0, 1),
 	.ipv4_dst = RTE_IPV4(255, 255, 255, 255),
-	.ipv6_src = "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x01",
-	.ipv6_dst = "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x11\x11",
+	.ipv6_src = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 },
+	.ipv6_dst = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11 },
 	.vlan_tci = 0,
 	.ip_tos = 0,
 	.ip_ttl = 255,
-	.eth_src = "\x00\x00\x00\x00\x00\x00",
-	.eth_dst = "\xff\xff\xff\xff\xff\xff",
+	.eth_src = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.eth_dst = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 
 /** Maximum number of items in struct rte_flow_action_vxlan_encap. */
@@ -726,16 +726,16 @@ struct action_vxlan_encap_data {
 struct nvgre_encap_conf nvgre_encap_conf = {
 	.select_ipv4 = 1,
 	.select_vlan = 0,
-	.tni = "\x00\x00\x00",
+	.tni = { 0x00, 0x00, 0x00 },
 	.ipv4_src = RTE_IPV4(127, 0, 0, 1),
 	.ipv4_dst = RTE_IPV4(255, 255, 255, 255),
-	.ipv6_src = "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x01",
-	.ipv6_dst = "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x11\x11",
+	.ipv6_src = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 },
+	.ipv6_dst = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11 },
 	.vlan_tci = 0,
-	.eth_src = "\x00\x00\x00\x00\x00\x00",
-	.eth_dst = "\xff\xff\xff\xff\xff\xff",
+	.eth_src = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.eth_dst = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 
 /** Maximum number of items in struct rte_flow_action_nvgre_encap. */
@@ -6519,7 +6519,8 @@ parse_prefix(struct context *ctx, const struct token *token,
 	     void *buf, unsigned int size)
 {
 	const struct arg *arg = pop_args(ctx);
-	static const uint8_t conv[] = "\x00\x80\xc0\xe0\xf0\xf8\xfc\xfe\xff";
+	static const uint8_t conv[] = { 0x00, 0x80, 0xc0, 0xe0, 0xf0,
+					0xf8, 0xfc, 0xfe, 0xff };
 	char *end;
 	uintmax_t u;
 	unsigned int bytes;
diff --git a/app/test/test_bpf.c b/app/test/test_bpf.c
index 51184341c2..3d174d09cb 100644
--- a/app/test/test_bpf.c
+++ b/app/test/test_bpf.c
@@ -3347,7 +3347,7 @@ test_bpf_filter_sanity(pcap_t *pcap)
 
 	hdr = rte_pktmbuf_mtod(m, typeof(hdr));
 	hdr->eth_hdr = (struct rte_ether_hdr) {
-		.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 		.ether_type = rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4),
 	};
 	hdr->ip_hdr = (struct rte_ipv4_hdr) {
diff --git a/app/test/test_pcapng.c b/app/test/test_pcapng.c
index e9c85f2e02..3f98a7e40f 100644
--- a/app/test/test_pcapng.c
+++ b/app/test/test_pcapng.c
@@ -63,7 +63,7 @@ mbuf1_prepare(struct dummy_mbuf *dm, uint32_t plen)
 		struct rte_ipv4_hdr ip;
 	} pkt = {
 		.eth = {
-			.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+			.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.ether_type = rte_cpu_to_be_16(RTE_ETHER_TYPE_IPV4),
 		},
 		.ip = {
diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
index d0b7833a2f..28f60eda37 100644
--- a/doc/guides/prog_guide/rte_flow.rst
+++ b/doc/guides/prog_guide/rte_flow.rst
@@ -3499,7 +3499,7 @@ For example, to create a pattern template to match on the destination MAC:
 
    const struct rte_flow_pattern_template_attr attr = {.ingress = 1};
    struct rte_flow_item_eth eth_m = {
-       .dst.addr_bytes = "\xff\xff\xff\xff\xff\xff";
+       .dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
    };
    struct rte_flow_item pattern[] = {
        [0] = {.type = RTE_FLOW_ITEM_TYPE_ETH,
diff --git a/drivers/net/cxgbe/cxgbe_flow.c b/drivers/net/cxgbe/cxgbe_flow.c
index d66672a9e6..468e88a617 100644
--- a/drivers/net/cxgbe/cxgbe_flow.c
+++ b/drivers/net/cxgbe/cxgbe_flow.c
@@ -889,8 +889,8 @@ static struct chrte_fparse parseitem[] = {
 	[RTE_FLOW_ITEM_TYPE_ETH] = {
 		.fptr  = ch_rte_parsetype_eth,
 		.dmask = &(const struct rte_flow_item_eth){
-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 			.type = 0xffff,
 		}
 	},
@@ -918,12 +918,10 @@ static struct chrte_fparse parseitem[] = {
 		.fptr  = ch_rte_parsetype_ipv6,
 		.dmask = &(const struct rte_flow_item_ipv6) {
 			.hdr = {
-				.src_addr =
-					"\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
-				.dst_addr =
-					"\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
+				.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+				.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 				.vtc_flow = RTE_BE32(0xff000000),
 			},
 		},
diff --git a/drivers/net/dpaa2/dpaa2_flow.c b/drivers/net/dpaa2/dpaa2_flow.c
index df06c3862e..3aeb318049 100644
--- a/drivers/net/dpaa2/dpaa2_flow.c
+++ b/drivers/net/dpaa2/dpaa2_flow.c
@@ -100,8 +100,8 @@ enum rte_flow_action_type dpaa2_supported_fs_action_type[] = {
 
 #ifndef __cplusplus
 static const struct rte_flow_item_eth dpaa2_flow_item_eth_mask = {
-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	.type = RTE_BE16(0xffff),
 };
 
@@ -117,12 +117,10 @@ static const struct rte_flow_item_ipv4 dpaa2_flow_item_ipv4_mask = {
 
 static const struct rte_flow_item_ipv6 dpaa2_flow_item_ipv6_mask = {
 	.hdr = {
-		.src_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
-		.dst_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
+		.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+		.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 		.proto = 0xff
 	},
 };
diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c
index 9d7247cf81..f35b0d25f7 100644
--- a/drivers/net/mlx4/mlx4_flow.c
+++ b/drivers/net/mlx4/mlx4_flow.c
@@ -582,7 +582,7 @@ static const struct mlx4_flow_proc_item mlx4_flow_proc_item_list[] = {
 				       RTE_FLOW_ITEM_TYPE_IPV4),
 		.mask_support = &(const struct rte_flow_item_eth){
 			/* Only destination MAC can be matched. */
-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 		},
 		.mask_default = &rte_flow_item_eth_mask,
 		.mask_sz = sizeof(struct rte_flow_item_eth),
@@ -1304,10 +1304,10 @@ mlx4_flow_internal(struct mlx4_priv *priv, struct rte_flow_error *error)
 	};
 	struct rte_flow_item_eth eth_spec;
 	const struct rte_flow_item_eth eth_mask = {
-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	};
 	const struct rte_flow_item_eth eth_allmulti = {
-		.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	};
 	struct rte_flow_item_vlan vlan_spec;
 	const struct rte_flow_item_vlan vlan_mask = {
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 6fe51f70a8..ea637ea9b0 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -2444,8 +2444,8 @@ mlx5_flow_validate_item_eth(const struct rte_flow_item *item,
 {
 	const struct rte_flow_item_eth *mask = item->mask;
 	const struct rte_flow_item_eth nic_mask = {
-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-		.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+		.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 		.type = RTE_BE16(0xffff),
 		.has_vlan = ext_vlan_sup ? 1 : 0,
 	};
@@ -2707,12 +2707,10 @@ mlx5_flow_validate_item_ipv6(const struct rte_flow_item *item,
 	const struct rte_flow_item_ipv6 *spec = item->spec;
 	const struct rte_flow_item_ipv6 nic_mask = {
 		.hdr = {
-			.src_addr =
-				"\xff\xff\xff\xff\xff\xff\xff\xff"
-				"\xff\xff\xff\xff\xff\xff\xff\xff",
-			.dst_addr =
-				"\xff\xff\xff\xff\xff\xff\xff\xff"
-				"\xff\xff\xff\xff\xff\xff\xff\xff",
+			.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+			.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.vtc_flow = RTE_BE32(0xffffffff),
 			.proto = 0xff,
 		},
@@ -2932,7 +2930,7 @@ mlx5_flow_validate_item_vxlan(struct rte_eth_dev *dev,
 		uint8_t vni[4];
 	} id = { .vlan_id = 0, };
 	const struct rte_flow_item_vxlan nic_mask = {
-		.vni = "\xff\xff\xff",
+		.vni = { 0xff, 0xff, 0xff },
 		.rsvd1 = 0xff,
 	};
 	const struct rte_flow_item_vxlan *valid_mask;
@@ -3314,7 +3312,7 @@ mlx5_flow_validate_item_geneve(const struct rte_flow_item *item,
 			  MLX5_GENEVE_OPT_LEN_1 : MLX5_GENEVE_OPT_LEN_0;
 	const struct rte_flow_item_geneve nic_mask = {
 		.ver_opt_len_o_c_rsvd0 = RTE_BE16(0x3f80),
-		.vni = "\xff\xff\xff",
+		.vni =  { 0xff, 0xff, 0xff },
 		.protocol = RTE_BE16(UINT16_MAX),
 	};
 
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 7e9c22acb2..df437aba38 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -7082,11 +7082,11 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 	const struct rte_flow_item_ipv6 nic_ipv6_mask = {
 		.hdr = {
 			.src_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
+			{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.dst_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
+			{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.vtc_flow = RTE_BE32(0xffffffff),
 			.proto = 0xff,
 			.hop_limits = 0xff,
@@ -8563,8 +8563,8 @@ flow_dv_translate_item_eth(void *key, const struct rte_flow_item *item,
 	const struct rte_flow_item_eth *eth_m;
 	const struct rte_flow_item_eth *eth_v;
 	const struct rte_flow_item_eth nic_mask = {
-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-		.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+		.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 		.type = RTE_BE16(0xffff),
 		.has_vlan = 0,
 	};
@@ -8821,12 +8821,10 @@ flow_dv_translate_item_ipv6(void *key, const struct rte_flow_item *item,
 	const struct rte_flow_item_ipv6 *ipv6_v;
 	const struct rte_flow_item_ipv6 nic_mask = {
 		.hdr = {
-			.src_addr =
-				"\xff\xff\xff\xff\xff\xff\xff\xff"
-				"\xff\xff\xff\xff\xff\xff\xff\xff",
-			.dst_addr =
-				"\xff\xff\xff\xff\xff\xff\xff\xff"
-				"\xff\xff\xff\xff\xff\xff\xff\xff",
+			.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+			.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+				      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.vtc_flow = RTE_BE32(0xffffffff),
 			.proto = 0xff,
 			.hop_limits = 0xff,
@@ -9340,7 +9338,7 @@ flow_dv_translate_item_vxlan(struct rte_eth_dev *dev,
 	int i;
 	struct mlx5_priv *priv = dev->data->dev_private;
 	const struct rte_flow_item_vxlan nic_mask = {
-		.vni = "\xff\xff\xff",
+		.vni = { 0xff, 0xff, 0xff },
 		.rsvd1 = 0xff,
 	};
 
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 42d5d6ada6..a19342a25d 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -106,67 +106,67 @@ static uint32_t mlx5_hw_act_flag[MLX5_HW_ACTION_FLAG_MAX]
 
 /* Ethernet item spec for promiscuous mode. */
 static const struct rte_flow_item_eth ctrl_rx_eth_promisc_spec = {
-	.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 /* Ethernet item mask for promiscuous mode. */
 static const struct rte_flow_item_eth ctrl_rx_eth_promisc_mask = {
-	.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
 /* Ethernet item spec for all multicast mode. */
 static const struct rte_flow_item_eth ctrl_rx_eth_mcast_spec = {
-	.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 /* Ethernet item mask for all multicast mode. */
 static const struct rte_flow_item_eth ctrl_rx_eth_mcast_mask = {
-	.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
 /* Ethernet item spec for IPv4 multicast traffic. */
 static const struct rte_flow_item_eth ctrl_rx_eth_ipv4_mcast_spec = {
-	.dst.addr_bytes = "\x01\x00\x5e\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 /* Ethernet item mask for IPv4 multicast traffic. */
 static const struct rte_flow_item_eth ctrl_rx_eth_ipv4_mcast_mask = {
-	.dst.addr_bytes = "\xff\xff\xff\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
 /* Ethernet item spec for IPv6 multicast traffic. */
 static const struct rte_flow_item_eth ctrl_rx_eth_ipv6_mcast_spec = {
-	.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 /* Ethernet item mask for IPv6 multicast traffic. */
 static const struct rte_flow_item_eth ctrl_rx_eth_ipv6_mcast_mask = {
-	.dst.addr_bytes = "\xff\xff\x00\x00\x00\x00",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
 /* Ethernet item mask for unicast traffic. */
 static const struct rte_flow_item_eth ctrl_rx_eth_dmac_mask = {
-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
 /* Ethernet item spec for broadcast. */
 static const struct rte_flow_item_eth ctrl_rx_eth_bcast_spec = {
-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	.type = 0,
 };
 
@@ -5841,8 +5841,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev,
 		.egress = 1,
 	};
 	struct rte_flow_item_eth promisc = {
-		.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 		.type = 0,
 	};
 	struct rte_flow_item eth_all[] = {
@@ -5879,8 +5879,8 @@ flow_hw_create_lacp_rx_pattern_template(struct rte_eth_dev *dev, struct rte_flow
 		.ingress = 1,
 	};
 	struct rte_flow_item_eth lacp_mask = {
-		.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 		.type = 0xFFFF,
 	};
 	struct rte_flow_item eth_all[] = {
@@ -9320,8 +9320,8 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct rte_flow_item_eth promisc = {
-		.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 		.type = 0,
 	};
 	struct rte_flow_item eth_all[] = {
@@ -9659,7 +9659,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
 		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
 	};
 	const struct rte_ether_addr cmp = {
-		.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	};
 	unsigned int i;
 
@@ -9705,7 +9705,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
 		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
 	};
 	const struct rte_ether_addr cmp = {
-		.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	};
 	unsigned int i;
 	unsigned int j;
diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 1cb0b56ae1..13152d488e 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -1562,23 +1562,23 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct rte_flow_item_eth bcast = {
-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	};
 	struct rte_flow_item_eth ipv6_multi_spec = {
-		.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
 	};
 	struct rte_flow_item_eth ipv6_multi_mask = {
-		.dst.addr_bytes = "\xff\xff\x00\x00\x00\x00",
+		.dst.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
 	};
 	struct rte_flow_item_eth unicast = {
-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	};
 	struct rte_flow_item_eth unicast_mask = {
-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	};
 	const unsigned int vlan_filter_n = priv->vlan_filter_n;
 	const struct rte_ether_addr cmp = {
-		.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+		.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 	};
 	unsigned int i;
 	unsigned int j;
@@ -1647,8 +1647,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
 		return 0;
 	if (dev->data->promiscuous) {
 		struct rte_flow_item_eth promisc = {
-			.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+			.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 			.type = 0,
 		};
 
@@ -1658,8 +1658,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
 	}
 	if (dev->data->all_multicast) {
 		struct rte_flow_item_eth multicast = {
-			.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+			.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
 			.type = 0,
 		};
 
diff --git a/drivers/net/nfp/nfp_flow.c b/drivers/net/nfp/nfp_flow.c
index 3746aa2d0f..d76bb15d91 100644
--- a/drivers/net/nfp/nfp_flow.c
+++ b/drivers/net/nfp/nfp_flow.c
@@ -1679,8 +1679,8 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
 			RTE_FLOW_ITEM_TYPE_IPV6),
 		.mask_support = &(const struct rte_flow_item_eth){
 			.hdr = {
-				.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-				.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+				.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+				.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 				.ether_type          = RTE_BE16(0xffff),
 			},
 			.has_vlan = 1,
@@ -1732,10 +1732,10 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
 				.vtc_flow   = RTE_BE32(0x0ff00000),
 				.proto      = 0xff,
 				.hop_limits = 0xff,
-				.src_addr   = "\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
-				.dst_addr   = "\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
+				.src_addr   = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+						0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+				.dst_addr   = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+						0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			},
 			.has_frag_ext = 1,
 		},
@@ -1793,7 +1793,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
 	[RTE_FLOW_ITEM_TYPE_GENEVE] = {
 		.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_ETH),
 		.mask_support = &(const struct rte_flow_item_geneve){
-			.vni = "\xff\xff\xff",
+			.vni = { 0xff, 0xff, 0xff },
 		},
 		.mask_default = &rte_flow_item_geneve_mask,
 		.mask_sz = sizeof(struct rte_flow_item_geneve),
diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c
index 7468c3f0ea..ea23841f60 100644
--- a/drivers/net/tap/tap_flow.c
+++ b/drivers/net/tap/tap_flow.c
@@ -259,8 +259,8 @@ static const struct tap_flow_items tap_flow_items[] = {
 			RTE_FLOW_ITEM_TYPE_IPV4,
 			RTE_FLOW_ITEM_TYPE_IPV6),
 		.mask = &(const struct rte_flow_item_eth){
-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-			.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+			.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			.type = -1,
 		},
 		.mask_sz = sizeof(struct rte_flow_item_eth),
@@ -302,14 +302,10 @@ static const struct tap_flow_items tap_flow_items[] = {
 			       RTE_FLOW_ITEM_TYPE_TCP),
 		.mask = &(const struct rte_flow_item_ipv6){
 			.hdr = {
-				.src_addr = {
-					"\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
-				},
-				.dst_addr = {
-					"\xff\xff\xff\xff\xff\xff\xff\xff"
-					"\xff\xff\xff\xff\xff\xff\xff\xff",
-				},
+				.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+				.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 				.proto = -1,
 			},
 		},
@@ -392,7 +388,7 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
 		.items[0] = {
 			.type = RTE_FLOW_ITEM_TYPE_ETH,
 			.mask =  &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			},
 		},
 		.items[1] = {
@@ -409,10 +405,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
 		.items[0] = {
 			.type = RTE_FLOW_ITEM_TYPE_ETH,
 			.mask =  &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			},
 			.spec = &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 			},
 		},
 		.items[1] = {
@@ -429,10 +425,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
 		.items[0] = {
 			.type = RTE_FLOW_ITEM_TYPE_ETH,
 			.mask =  &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
+				.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
 			},
 			.spec = &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
+				.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
 			},
 		},
 		.items[1] = {
@@ -463,10 +459,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
 		.items[0] = {
 			.type = RTE_FLOW_ITEM_TYPE_ETH,
 			.mask =  &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+				.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
 			},
 			.spec = &(const struct rte_flow_item_eth){
-				.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+				.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
 			},
 		},
 		.items[1] = {
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 706ffba596..e1aad5a98a 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -774,8 +774,8 @@ struct rte_flow_item_eth {
 /** Default mask for RTE_FLOW_ITEM_TYPE_ETH. */
 #ifndef __cplusplus
 static const struct rte_flow_item_eth rte_flow_item_eth_mask = {
-	.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	.hdr.ether_type = RTE_BE16(0x0000),
 };
 #endif
@@ -877,12 +877,10 @@ struct rte_flow_item_ipv6 {
 #ifndef __cplusplus
 static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask = {
 	.hdr = {
-		.src_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
-		.dst_addr =
-			"\xff\xff\xff\xff\xff\xff\xff\xff"
-			"\xff\xff\xff\xff\xff\xff\xff\xff",
+		.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+		.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 	},
 };
 #endif
@@ -1041,7 +1039,7 @@ struct rte_flow_item_nvgre {
 /** Default mask for RTE_FLOW_ITEM_TYPE_NVGRE. */
 #ifndef __cplusplus
 static const struct rte_flow_item_nvgre rte_flow_item_nvgre_mask = {
-	.tni = "\xff\xff\xff",
+	.tni =  { 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1061,7 +1059,7 @@ struct rte_flow_item_mpls {
 /** Default mask for RTE_FLOW_ITEM_TYPE_MPLS. */
 #ifndef __cplusplus
 static const struct rte_flow_item_mpls rte_flow_item_mpls_mask = {
-	.label_tc_s = "\xff\xff\xf0",
+	.label_tc_s = { 0xff, 0xff, 0xf0 },
 };
 #endif
 
@@ -1196,7 +1194,7 @@ struct rte_flow_item_geneve {
 /** Default mask for RTE_FLOW_ITEM_TYPE_GENEVE. */
 #ifndef __cplusplus
 static const struct rte_flow_item_geneve rte_flow_item_geneve_mask = {
-	.vni = "\xff\xff\xff",
+	.vni =  { 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1216,7 +1214,7 @@ struct rte_flow_item_vxlan_gpe {
 /** Default mask for RTE_FLOW_ITEM_TYPE_VXLAN_GPE. */
 #ifndef __cplusplus
 static const struct rte_flow_item_vxlan_gpe rte_flow_item_vxlan_gpe_mask = {
-	.vni = "\xff\xff\xff",
+	.vni =  { 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1241,10 +1239,10 @@ struct rte_flow_item_arp_eth_ipv4 {
 #ifndef __cplusplus
 static const struct rte_flow_item_arp_eth_ipv4
 rte_flow_item_arp_eth_ipv4_mask = {
-	.sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.spa = RTE_BE32(0xffffffff),
-	.tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-	.tpa = RTE_BE32(0xffffffff),
+	.sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.spa = RTE_BE32(UINT32_MAX),
+	.tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+	.tpa = RTE_BE32(UINT32_MAX),
 };
 #endif
 
@@ -1320,9 +1318,8 @@ struct rte_flow_item_icmp6_nd_ns {
 #ifndef __cplusplus
 static const
 struct rte_flow_item_icmp6_nd_ns rte_flow_item_icmp6_nd_ns_mask = {
-	.target_addr =
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff",
+	.target_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1347,9 +1344,8 @@ struct rte_flow_item_icmp6_nd_na {
 #ifndef __cplusplus
 static const
 struct rte_flow_item_icmp6_nd_na rte_flow_item_icmp6_nd_na_mask = {
-	.target_addr =
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff",
+	.target_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+			 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1398,7 +1394,7 @@ struct rte_flow_item_icmp6_nd_opt_sla_eth {
 #ifndef __cplusplus
 static const struct rte_flow_item_icmp6_nd_opt_sla_eth
 rte_flow_item_icmp6_nd_opt_sla_eth_mask = {
-	.sla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+	.sla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 #endif
 
@@ -1423,7 +1419,7 @@ struct rte_flow_item_icmp6_nd_opt_tla_eth {
 #ifndef __cplusplus
 static const struct rte_flow_item_icmp6_nd_opt_tla_eth
 rte_flow_item_icmp6_nd_opt_tla_eth_mask = {
-	.tla.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+	.tla.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
 };
 #endif
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:19.602554183 +0000
+++ 0079-ethdev-convert-string-initialization.patch	2025-02-17 16:13:16.910441591 +0000
@@ -1 +1 @@
-From e0d947a1e6c2f80aa039a4f7082a8aa16797d8b9 Mon Sep 17 00:00:00 2001
+From 2faec7a700bc720aa7ef419a05a41cd04a336ae3 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit e0d947a1e6c2f80aa039a4f7082a8aa16797d8b9 ]
+
@@ -63,18 +65,15 @@
- app/test-pmd/cmdline_flow.c                   | 31 ++++-----
- app/test/test_bpf.c                           |  2 +-
- app/test/test_pcapng.c                        |  2 +-
- app/test/test_security_inline_macsec.c        |  4 +-
- doc/guides/prog_guide/ethdev/flow_offload.rst |  2 +-
- drivers/net/cxgbe/cxgbe_flow.c                | 14 ++--
- drivers/net/dpaa2/dpaa2_flow.c                | 14 ++--
- drivers/net/mlx4/mlx4_flow.c                  |  6 +-
- drivers/net/mlx5/mlx5_flow.c                  | 20 +++---
- drivers/net/mlx5/mlx5_flow_dv.c               | 26 ++++----
- drivers/net/mlx5/mlx5_flow_hw.c               | 66 +++++++++----------
- drivers/net/mlx5/mlx5_trigger.c               | 20 +++---
- drivers/net/nfp/flower/nfp_flower_flow.c      | 14 ++--
- drivers/net/nfp/nfp_net_flow.c                |  8 +--
- drivers/net/tap/tap_flow.c                    | 30 ++++-----
- examples/l2fwd-macsec/main.c                  |  4 +-
- lib/ethdev/rte_flow.h                         | 44 ++++++-------
- 17 files changed, 144 insertions(+), 163 deletions(-)
+ app/test-pmd/cmdline_flow.c        | 31 +++++++++--------
+ app/test/test_bpf.c                |  2 +-
+ app/test/test_pcapng.c             |  2 +-
+ doc/guides/prog_guide/rte_flow.rst |  2 +-
+ drivers/net/cxgbe/cxgbe_flow.c     | 14 ++++----
+ drivers/net/dpaa2/dpaa2_flow.c     | 14 ++++----
+ drivers/net/mlx4/mlx4_flow.c       |  6 ++--
+ drivers/net/mlx5/mlx5_flow.c       | 18 +++++-----
+ drivers/net/mlx5/mlx5_flow_dv.c    | 24 ++++++-------
+ drivers/net/mlx5/mlx5_flow_hw.c    | 56 +++++++++++++++---------------
+ drivers/net/mlx5/mlx5_trigger.c    | 20 +++++------
+ drivers/net/nfp/nfp_flow.c         | 14 ++++----
+ drivers/net/tap/tap_flow.c         | 30 +++++++---------
+ lib/ethdev/rte_flow.h              | 44 +++++++++++------------
+ 14 files changed, 131 insertions(+), 146 deletions(-)
@@ -83 +82 @@
-index b7bcf18311..5451b3a453 100644
+index a0a7d3da14..619656363f 100644
@@ -86 +85 @@
-@@ -898,20 +898,20 @@ struct vxlan_encap_conf vxlan_encap_conf = {
+@@ -690,20 +690,20 @@ struct vxlan_encap_conf vxlan_encap_conf = {
@@ -114 +113 @@
-@@ -934,16 +934,16 @@ struct action_vxlan_encap_data {
+@@ -726,16 +726,16 @@ struct action_vxlan_encap_data {
@@ -138 +137 @@
-@@ -8304,7 +8304,8 @@ parse_prefix(struct context *ctx, const struct token *token,
+@@ -6519,7 +6519,8 @@ parse_prefix(struct context *ctx, const struct token *token,
@@ -149 +148 @@
-index 7819d6aba9..90e10d7d2c 100644
+index 51184341c2..3d174d09cb 100644
@@ -152 +151 @@
-@@ -3361,7 +3361,7 @@ test_bpf_filter_sanity(pcap_t *pcap)
+@@ -3347,7 +3347,7 @@ test_bpf_filter_sanity(pcap_t *pcap)
@@ -162 +161 @@
-index b219873c3a..8f2cff36c3 100644
+index e9c85f2e02..3f98a7e40f 100644
@@ -165,2 +164,2 @@
-@@ -73,7 +73,7 @@ mbuf1_prepare(struct dummy_mbuf *dm, uint32_t plen)
- 		struct rte_udp_hdr udp;
+@@ -63,7 +63,7 @@ mbuf1_prepare(struct dummy_mbuf *dm, uint32_t plen)
+ 		struct rte_ipv4_hdr ip;
@@ -174,20 +173,5 @@
-diff --git a/app/test/test_security_inline_macsec.c b/app/test/test_security_inline_macsec.c
-index f11e9da8c3..c921bf8ebb 100644
---- a/app/test/test_security_inline_macsec.c
-+++ b/app/test/test_security_inline_macsec.c
-@@ -318,8 +318,8 @@ create_default_flow(const struct mcs_test_vector *td, uint16_t portid,
- 	struct rte_flow *flow;
- 	struct rte_flow_item_eth eth = { .hdr.ether_type = 0, };
- 	static const struct rte_flow_item_eth eth_mask = {
--		.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--		.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+		.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 		.hdr.ether_type = RTE_BE16(0x0000),
- 	};
- 
-diff --git a/doc/guides/prog_guide/ethdev/flow_offload.rst b/doc/guides/prog_guide/ethdev/flow_offload.rst
-index 906d6014f5..2d6187ed11 100644
---- a/doc/guides/prog_guide/ethdev/flow_offload.rst
-+++ b/doc/guides/prog_guide/ethdev/flow_offload.rst
-@@ -3865,7 +3865,7 @@ For example, to create a pattern template to match on the destination MAC:
+diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst
+index d0b7833a2f..28f60eda37 100644
+--- a/doc/guides/prog_guide/rte_flow.rst
++++ b/doc/guides/prog_guide/rte_flow.rst
+@@ -3499,7 +3499,7 @@ For example, to create a pattern template to match on the destination MAC:
@@ -203 +187 @@
-index f5787c247f..40d21e6944 100644
+index d66672a9e6..468e88a617 100644
@@ -210,5 +194,5 @@
--			.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--			.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+			.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+			.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 			.hdr.ether_type = 0xffff,
+-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 			.type = 0xffff,
@@ -235 +219 @@
-index 62e350d736..1b55d8dd17 100644
+index df06c3862e..3aeb318049 100644
@@ -242,5 +226,5 @@
--	.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--	.hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+	.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 	.hdr.ether_type = RTE_BE16(0xffff),
+-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-	.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++	.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 	.type = RTE_BE16(0xffff),
@@ -267 +251 @@
-index 8ef9fd2db4..b520664d95 100644
+index 9d7247cf81..f35b0d25f7 100644
@@ -274,2 +258,2 @@
--			.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+			.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -283,2 +267,2 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -287,2 +271,2 @@
--		.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+-		.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
++		.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
@@ -293 +277 @@
-index 72fb3a55ba..031db8176b 100644
+index 6fe51f70a8..ea637ea9b0 100644
@@ -296 +280 @@
-@@ -2668,8 +2668,8 @@ mlx5_flow_validate_item_eth(const struct rte_eth_dev *dev,
+@@ -2444,8 +2444,8 @@ mlx5_flow_validate_item_eth(const struct rte_flow_item *item,
@@ -300,5 +284,5 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--		.hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+		.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 		.hdr.ether_type = RTE_BE16(0xffff),
+-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-		.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++		.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 		.type = RTE_BE16(0xffff),
@@ -307 +291 @@
-@@ -2933,12 +2933,10 @@ mlx5_flow_validate_item_ipv6(const struct rte_eth_dev *dev,
+@@ -2707,12 +2707,10 @@ mlx5_flow_validate_item_ipv6(const struct rte_flow_item *item,
@@ -324 +308 @@
-@@ -3163,7 +3161,7 @@ mlx5_flow_validate_item_vxlan(struct rte_eth_dev *dev,
+@@ -2932,7 +2930,7 @@ mlx5_flow_validate_item_vxlan(struct rte_eth_dev *dev,
@@ -328,9 +311,0 @@
--		.hdr.vni = "\xff\xff\xff",
-+		.hdr.vni =  { 0xff, 0xff, 0xff },
- 		.hdr.rsvd1 = 0xff,
- 	};
- 	const struct rte_flow_item_vxlan *valid_mask;
-@@ -3249,7 +3247,7 @@ mlx5_flow_validate_item_vxlan_gpe(const struct rte_flow_item *item,
- 	} id = { .vlan_id = 0, };
- 
- 	struct rte_flow_item_vxlan_gpe nic_mask = {
@@ -338,3 +313,2 @@
-+		.vni =  { 0xff, 0xff, 0xff },
- 		.protocol = 0xff,
- 		.flags = 0xff,
++		.vni = { 0xff, 0xff, 0xff },
+ 		.rsvd1 = 0xff,
@@ -342 +316,2 @@
-@@ -3563,7 +3561,7 @@ mlx5_flow_validate_item_geneve(const struct rte_flow_item *item,
+ 	const struct rte_flow_item_vxlan *valid_mask;
+@@ -3314,7 +3312,7 @@ mlx5_flow_validate_item_geneve(const struct rte_flow_item *item,
@@ -352 +327 @@
-index 89057edbcf..8bcdb3f99e 100644
+index 7e9c22acb2..df437aba38 100644
@@ -355,18 +330,17 @@
-@@ -7697,12 +7697,10 @@ const struct rte_flow_item_ipv4 nic_ipv4_mask = {
- 
- const struct rte_flow_item_ipv6 nic_ipv6_mask = {
- 	.hdr = {
--		.src_addr =
--		"\xff\xff\xff\xff\xff\xff\xff\xff"
--		"\xff\xff\xff\xff\xff\xff\xff\xff",
--		.dst_addr =
--		"\xff\xff\xff\xff\xff\xff\xff\xff"
--		"\xff\xff\xff\xff\xff\xff\xff\xff",
-+		.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+		.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 		.vtc_flow = RTE_BE32(0xffffffff),
- 		.proto = 0xff,
- 		.hop_limits = 0xff,
-@@ -9291,8 +9289,8 @@ flow_dv_translate_item_eth(void *key, const struct rte_flow_item *item,
+@@ -7082,11 +7082,11 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+ 	const struct rte_flow_item_ipv6 nic_ipv6_mask = {
+ 		.hdr = {
+ 			.src_addr =
+-			"\xff\xff\xff\xff\xff\xff\xff\xff"
+-			"\xff\xff\xff\xff\xff\xff\xff\xff",
++			{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++			  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 			.dst_addr =
+-			"\xff\xff\xff\xff\xff\xff\xff\xff"
+-			"\xff\xff\xff\xff\xff\xff\xff\xff",
++			{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
++			  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 			.vtc_flow = RTE_BE32(0xffffffff),
+ 			.proto = 0xff,
+ 			.hop_limits = 0xff,
+@@ -8563,8 +8563,8 @@ flow_dv_translate_item_eth(void *key, const struct rte_flow_item *item,
@@ -376,5 +350,5 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--		.hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+		.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 		.hdr.ether_type = RTE_BE16(0xffff),
+-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-		.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++		.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 		.type = RTE_BE16(0xffff),
@@ -383 +357 @@
-@@ -9549,12 +9547,10 @@ flow_dv_translate_item_ipv6(void *key, const struct rte_flow_item *item,
+@@ -8821,12 +8821,10 @@ flow_dv_translate_item_ipv6(void *key, const struct rte_flow_item *item,
@@ -400 +374 @@
-@@ -10064,7 +10060,7 @@ flow_dv_translate_item_vxlan(struct rte_eth_dev *dev,
+@@ -9340,7 +9338,7 @@ flow_dv_translate_item_vxlan(struct rte_eth_dev *dev,
@@ -404,3 +378,3 @@
--		.hdr.vni = "\xff\xff\xff",
-+		.hdr.vni =  { 0xff, 0xff, 0xff },
- 		.hdr.rsvd1 = 0xff,
+-		.vni = "\xff\xff\xff",
++		.vni = { 0xff, 0xff, 0xff },
+ 		.rsvd1 = 0xff,
@@ -410 +384 @@
-index d243b59b71..96be742b94 100644
+index 42d5d6ada6..a19342a25d 100644
@@ -413 +387 @@
-@@ -377,67 +377,67 @@ static uint32_t mlx5_hw_act_flag[MLX5_HW_ACTION_FLAG_MAX]
+@@ -106,67 +106,67 @@ static uint32_t mlx5_hw_act_flag[MLX5_HW_ACTION_FLAG_MAX]
@@ -417,5 +391,5 @@
--	.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -425,5 +399,5 @@
--	.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -434,5 +408,5 @@
--	.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -442,5 +416,5 @@
--	.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -451,5 +425,5 @@
--	.hdr.dst_addr.addr_bytes = "\x01\x00\x5e\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x01\x00\x5e\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x01, 0x00, 0x5e, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -459,5 +433,5 @@
--	.hdr.dst_addr.addr_bytes = "\xff\xff\xff\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\xff\xff\xff\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -468,5 +442,5 @@
--	.hdr.dst_addr.addr_bytes = "\x33\x33\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -476,5 +450,5 @@
--	.hdr.dst_addr.addr_bytes = "\xff\xff\x00\x00\x00\x00",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\xff\xff\x00\x00\x00\x00",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -485,5 +459,5 @@
--	.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -494,5 +468,5 @@
--	.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--	.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+	.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+	.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 	.hdr.ether_type = 0,
+-	.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-	.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++	.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++	.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 	.type = 0,
@@ -501,18 +475 @@
-@@ -8250,12 +8250,10 @@ const struct rte_flow_item_ipv6 hws_nic_ipv6_mask = {
- 		.payload_len = RTE_BE16(0xffff),
- 		.proto = 0xff,
- 		.hop_limits = 0xff,
--		.src_addr =
--		"\xff\xff\xff\xff\xff\xff\xff\xff"
--		"\xff\xff\xff\xff\xff\xff\xff\xff",
--		.dst_addr =
--		"\xff\xff\xff\xff\xff\xff\xff\xff"
--		"\xff\xff\xff\xff\xff\xff\xff\xff",
-+		.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+		.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+			      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 	},
- 	.has_frag_ext = 1,
- };
-@@ -9936,8 +9934,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev,
+@@ -5841,8 +5841,8 @@ flow_hw_create_tx_default_mreg_copy_pattern_template(struct rte_eth_dev *dev,
@@ -522,5 +479,5 @@
--		.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--		.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+		.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 		.hdr.ether_type = 0,
+-		.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++		.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
++		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 		.type = 0,
@@ -529 +486 @@
-@@ -9974,8 +9972,8 @@ flow_hw_create_lacp_rx_pattern_template(struct rte_eth_dev *dev, struct rte_flow
+@@ -5879,8 +5879,8 @@ flow_hw_create_lacp_rx_pattern_template(struct rte_eth_dev *dev, struct rte_flow
@@ -540 +497 @@
-@@ -15476,8 +15474,8 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
+@@ -9320,8 +9320,8 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
@@ -544,5 +501,5 @@
--		.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--		.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+		.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 		.hdr.ether_type = 0,
+-		.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++		.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
++		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 		.type = 0,
@@ -551 +508 @@
-@@ -15815,7 +15813,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
+@@ -9659,7 +9659,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
@@ -560 +517 @@
-@@ -15861,7 +15859,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
+@@ -9705,7 +9705,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
@@ -570 +527 @@
-index a65a460731..7654f4d2ed 100644
+index 1cb0b56ae1..13152d488e 100644
@@ -573 +530 @@
-@@ -1568,23 +1568,23 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
+@@ -1562,23 +1562,23 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
@@ -577,2 +534,2 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -581,2 +538,2 @@
--		.hdr.dst_addr.addr_bytes = "\x33\x33\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
+-		.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
++		.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
@@ -585,2 +542,2 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
+-		.dst.addr_bytes = "\xff\xff\x00\x00\x00\x00",
++		.dst.addr_bytes = { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 },
@@ -589,2 +546,2 @@
--		.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+		.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+-		.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++		.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
@@ -593,2 +550,2 @@
--		.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+		.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-		.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++		.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -603 +560 @@
-@@ -1653,8 +1653,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
+@@ -1647,8 +1647,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
@@ -607,5 +564,5 @@
--			.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--			.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+			.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+			.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 			.hdr.ether_type = 0,
+-			.dst.addr_bytes = "\x00\x00\x00\x00\x00\x00",
+-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++			.dst.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
++			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 			.type = 0,
@@ -614 +571 @@
-@@ -1664,8 +1664,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
+@@ -1658,8 +1658,8 @@ mlx5_traffic_enable(struct rte_eth_dev *dev)
@@ -618,5 +575,5 @@
--			.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
--			.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+			.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+			.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 			.hdr.ether_type = 0,
+-			.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
+-			.src.addr_bytes = "\x00\x00\x00\x00\x00\x00",
++			.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
++			.src.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ 			.type = 0,
@@ -625,5 +582,5 @@
-diff --git a/drivers/net/nfp/flower/nfp_flower_flow.c b/drivers/net/nfp/flower/nfp_flower_flow.c
-index 3023e68ae8..e94c7e22e3 100644
---- a/drivers/net/nfp/flower/nfp_flower_flow.c
-+++ b/drivers/net/nfp/flower/nfp_flower_flow.c
-@@ -2504,8 +2504,8 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
+diff --git a/drivers/net/nfp/nfp_flow.c b/drivers/net/nfp/nfp_flow.c
+index 3746aa2d0f..d76bb15d91 100644
+--- a/drivers/net/nfp/nfp_flow.c
++++ b/drivers/net/nfp/nfp_flow.c
+@@ -1679,8 +1679,8 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
@@ -631 +588 @@
- 		.mask_support = &(const struct rte_flow_item_eth) {
+ 		.mask_support = &(const struct rte_flow_item_eth){
@@ -640 +597 @@
-@@ -2557,10 +2557,10 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
+@@ -1732,10 +1732,10 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
@@ -655 +612 @@
-@@ -2618,7 +2618,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
+@@ -1793,7 +1793,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {
@@ -658 +615 @@
- 		.mask_support = &(const struct rte_flow_item_geneve) {
+ 		.mask_support = &(const struct rte_flow_item_geneve){
@@ -660 +617 @@
-+			.vni =  { 0xff, 0xff, 0xff },
++			.vni = { 0xff, 0xff, 0xff },
@@ -664,19 +620,0 @@
-diff --git a/drivers/net/nfp/nfp_net_flow.c b/drivers/net/nfp/nfp_net_flow.c
-index 5db4712193..e9f0ce3710 100644
---- a/drivers/net/nfp/nfp_net_flow.c
-+++ b/drivers/net/nfp/nfp_net_flow.c
-@@ -406,10 +406,10 @@ static const struct nfp_net_flow_item_proc nfp_net_flow_item_proc_list[] = {
- 		.mask_support = &(const struct rte_flow_item_ipv6){
- 			.hdr = {
- 				.proto    = 0xff,
--				.src_addr = "\xff\xff\xff\xff\xff\xff\xff\xff"
--						"\xff\xff\xff\xff\xff\xff\xff\xff",
--				.dst_addr = "\xff\xff\xff\xff\xff\xff\xff\xff"
--						"\xff\xff\xff\xff\xff\xff\xff\xff",
-+				.src_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+				.dst_addr = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-+					      0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 			},
- 		},
- 		.mask_default = &rte_flow_item_ipv6_mask,
@@ -684 +622 @@
-index 0a90c0487b..5ae1faf916 100644
+index 7468c3f0ea..ea23841f60 100644
@@ -687 +625 @@
-@@ -166,8 +166,8 @@ static const struct tap_flow_items tap_flow_items[] = {
+@@ -259,8 +259,8 @@ static const struct tap_flow_items tap_flow_items[] = {
@@ -691,5 +629,5 @@
--			.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
--			.hdr.src_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+			.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
-+			.hdr.src_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 			.hdr.ether_type = -1,
+-			.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-			.src.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++			.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++			.src.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+ 			.type = -1,
@@ -698 +636 @@
-@@ -209,14 +209,10 @@ static const struct tap_flow_items tap_flow_items[] = {
+@@ -302,14 +302,10 @@ static const struct tap_flow_items tap_flow_items[] = {
@@ -717 +655 @@
-@@ -299,7 +295,7 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
+@@ -392,7 +388,7 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
@@ -721,2 +659,2 @@
--				.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+				.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -726 +664 @@
-@@ -316,10 +312,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
+@@ -409,10 +405,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
@@ -730,2 +668,2 @@
--				.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+				.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -734,2 +672,2 @@
--				.hdr.dst_addr.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+				.hdr.dst_addr.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
+-				.dst.addr_bytes = "\xff\xff\xff\xff\xff\xff",
++				.dst.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
@@ -739 +677 @@
-@@ -336,10 +332,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
+@@ -429,10 +425,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
@@ -743,2 +681,2 @@
--				.hdr.dst_addr.addr_bytes = "\x33\x33\x00\x00\x00\x00",
-+				.hdr.dst_addr.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
+-				.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
++				.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
@@ -747,2 +685,2 @@
--				.hdr.dst_addr.addr_bytes = "\x33\x33\x00\x00\x00\x00",
-+				.hdr.dst_addr.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
+-				.dst.addr_bytes = "\x33\x33\x00\x00\x00\x00",
++				.dst.addr_bytes = { 0x33, 0x33, 0x00, 0x00, 0x00, 0x00 },
@@ -752 +690 @@
-@@ -370,10 +366,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
+@@ -463,10 +459,10 @@ static struct remote_rule implicit_rte_flows[TAP_REMOTE_MAX_IDX] = {
@@ -756,2 +694,2 @@
--				.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-+				.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+-				.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
++				.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
@@ -760,2 +698,2 @@
--				.hdr.dst_addr.addr_bytes = "\x01\x00\x00\x00\x00\x00",
-+				.hdr.dst_addr.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
+-				.dst.addr_bytes = "\x01\x00\x00\x00\x00\x00",
++				.dst.addr_bytes = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 },
@@ -765,15 +702,0 @@
-diff --git a/examples/l2fwd-macsec/main.c b/examples/l2fwd-macsec/main.c
-index b262d3ba0b..73e32fc197 100644
---- a/examples/l2fwd-macsec/main.c
-+++ b/examples/l2fwd-macsec/main.c
-@@ -512,8 +512,8 @@ create_default_flow(uint16_t portid)
- 	struct rte_flow *flow;
- 	struct rte_flow_item_eth eth;
- 	static const struct rte_flow_item_eth eth_mask = {
--		.hdr.dst_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
--		.hdr.src_addr.addr_bytes = "\x00\x00\x00\x00\x00\x00",
-+		.hdr.dst_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
-+		.hdr.src_addr.addr_bytes = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- 		.hdr.ether_type = RTE_BE16(0xFFFF),
- 	};
- 	int ret;
@@ -781 +704 @@
-index a2929438bf..22c5c147d0 100644
+index 706ffba596..e1aad5a98a 100644
@@ -784 +707 @@
-@@ -903,8 +903,8 @@ struct rte_flow_item_eth {
+@@ -774,8 +774,8 @@ struct rte_flow_item_eth {
@@ -795 +718 @@
-@@ -1005,12 +1005,10 @@ struct rte_flow_item_ipv6 {
+@@ -877,12 +877,10 @@ struct rte_flow_item_ipv6 {
@@ -812,10 +735 @@
-@@ -1132,7 +1130,7 @@ struct rte_flow_item_vxlan {
- /** Default mask for RTE_FLOW_ITEM_TYPE_VXLAN. */
- #ifndef __cplusplus
- static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask = {
--	.hdr.vni = "\xff\xff\xff",
-+	.hdr.vni = { 0xff, 0xff, 0xff },
- };
- #endif
- 
-@@ -1185,7 +1183,7 @@ struct rte_flow_item_nvgre {
+@@ -1041,7 +1039,7 @@ struct rte_flow_item_nvgre {
@@ -830 +744 @@
-@@ -1205,7 +1203,7 @@ struct rte_flow_item_mpls {
+@@ -1061,7 +1059,7 @@ struct rte_flow_item_mpls {
@@ -839 +753 @@
-@@ -1349,7 +1347,7 @@ struct rte_flow_item_geneve {
+@@ -1196,7 +1194,7 @@ struct rte_flow_item_geneve {
@@ -848,2 +762,2 @@
-@@ -1386,7 +1384,7 @@ struct rte_flow_item_vxlan_gpe {
-  */
+@@ -1216,7 +1214,7 @@ struct rte_flow_item_vxlan_gpe {
+ /** Default mask for RTE_FLOW_ITEM_TYPE_VXLAN_GPE. */
@@ -852,2 +766,2 @@
--	.hdr.vni = "\xff\xff\xff",
-+	.hdr.vni =  { 0xff, 0xff, 0xff },
+-	.vni = "\xff\xff\xff",
++	.vni =  { 0xff, 0xff, 0xff },
@@ -857 +771 @@
-@@ -1420,9 +1418,9 @@ struct rte_flow_item_arp_eth_ipv4 {
+@@ -1241,10 +1239,10 @@ struct rte_flow_item_arp_eth_ipv4 {
@@ -861,6 +775,8 @@
--	.hdr.arp_data.arp_sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+	.hdr.arp_data.arp_sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 	.hdr.arp_data.arp_sip = RTE_BE32(UINT32_MAX),
--	.hdr.arp_data.arp_tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
-+	.hdr.arp_data.arp_tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
- 	.hdr.arp_data.arp_tip = RTE_BE32(UINT32_MAX),
+-	.sha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-	.spa = RTE_BE32(0xffffffff),
+-	.tha.addr_bytes = "\xff\xff\xff\xff\xff\xff",
+-	.tpa = RTE_BE32(0xffffffff),
++	.sha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++	.spa = RTE_BE32(UINT32_MAX),
++	.tha.addr_bytes = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
++	.tpa = RTE_BE32(UINT32_MAX),
@@ -869 +785,2 @@
-@@ -1509,9 +1507,8 @@ struct rte_flow_item_icmp6_nd_ns {
+ 
+@@ -1320,9 +1318,8 @@ struct rte_flow_item_icmp6_nd_ns {
@@ -881 +798 @@
-@@ -1536,9 +1533,8 @@ struct rte_flow_item_icmp6_nd_na {
+@@ -1347,9 +1344,8 @@ struct rte_flow_item_icmp6_nd_na {
@@ -893 +810 @@
-@@ -1587,7 +1583,7 @@ struct rte_flow_item_icmp6_nd_opt_sla_eth {
+@@ -1398,7 +1394,7 @@ struct rte_flow_item_icmp6_nd_opt_sla_eth {
@@ -902 +819 @@
-@@ -1612,7 +1608,7 @@ struct rte_flow_item_icmp6_nd_opt_tla_eth {
+@@ -1423,7 +1419,7 @@ struct rte_flow_item_icmp6_nd_opt_tla_eth {
@@ -911,9 +827,0 @@
-@@ -2075,7 +2071,7 @@ struct rte_flow_item_ib_bth {
- static const struct rte_flow_item_ib_bth rte_flow_item_ib_bth_mask = {
- 	.hdr = {
- 		.opcode = 0xff,
--		.dst_qp = "\xff\xff\xff",
-+		.dst_qp =  { 0xff, 0xff, 0xff },
- 	},
- };
- #endif

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

* patch 'net/netvsc: scan all net devices under the PCI device' has been queued to stable release 22.11.8
  2025-02-17 17:04 ` patch 'ethdev: convert string initialization' " luca.boccassi
@ 2025-03-07 12:24   ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/netvsc: remove device if its net devices removed' " luca.boccassi
                       ` (26 more replies)
  0 siblings, 27 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Long Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 7d43e0d1a593e59ab62efe6596d49086b41724a5 Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Thu, 13 Feb 2025 10:58:23 -0800
Subject: [PATCH] net/netvsc: scan all net devices under the PCI device

[ upstream commit 7690b9ca7b0e5f54ffa7e94957e3fc04bcdc92e4 ]

The current code has the wrong assumption that a PCI device can have only
one Ethernet device. This is not correct as a PCI device can be multi
functional and have multiple Ethernet devices.

Fix this by scanning all the devices under a PCI device.

Fixes: a2a23a794b3a ("net/netvsc: support VF device hot add/remove")

Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/netvsc/hn_ethdev.c | 29 ++++++++++++-----------------
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c
index 73db9d38d9..fc47979766 100644
--- a/drivers/net/netvsc/hn_ethdev.c
+++ b/drivers/net/netvsc/hn_ethdev.c
@@ -570,7 +570,7 @@ static void netvsc_hotplug_retry(void *args)
 	struct rte_devargs *d = &hot_ctx->da;
 	char buf[256];
 
-	DIR *di;
+	DIR *di = NULL;
 	struct dirent *dir;
 	struct ifreq req;
 	struct rte_ether_addr eth_addr;
@@ -590,7 +590,9 @@ static void netvsc_hotplug_retry(void *args)
 	if (!di) {
 		PMD_DRV_LOG(DEBUG, "%s: can't open directory %s, "
 			    "retrying in 1 second", __func__, buf);
-		goto retry;
+		/* The device is still being initialized, retry after 1 second */
+		rte_eal_alarm_set(1000000, netvsc_hotplug_retry, hot_ctx);
+		return;
 	}
 
 	while ((dir = readdir(di))) {
@@ -614,10 +616,9 @@ static void netvsc_hotplug_retry(void *args)
 				    dir->d_name);
 			break;
 		}
-		if (req.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
-			closedir(di);
-			goto free_hotadd_ctx;
-		}
+		if (req.ifr_hwaddr.sa_family != ARPHRD_ETHER)
+			continue;
+
 		memcpy(eth_addr.addr_bytes, req.ifr_hwaddr.sa_data,
 		       RTE_DIM(eth_addr.addr_bytes));
 
@@ -636,22 +637,16 @@ static void netvsc_hotplug_retry(void *args)
 				PMD_DRV_LOG(ERR,
 					    "Failed to add PCI device %s",
 					    d->name);
-				break;
 			}
+
+			break;
 		}
-		/* When the code reaches here, we either have already added
-		 * the device, or its MAC address did not match.
-		 */
-		closedir(di);
-		goto free_hotadd_ctx;
 	}
-	closedir(di);
-retry:
-	/* The device is still being initialized, retry after 1 second */
-	rte_eal_alarm_set(1000000, netvsc_hotplug_retry, hot_ctx);
-	return;
 
 free_hotadd_ctx:
+	if (di)
+		closedir(di);
+
 	rte_spinlock_lock(&hv->hotadd_lock);
 	LIST_REMOVE(hot_ctx, list);
 	rte_spinlock_unlock(&hv->hotadd_lock);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.079627582 +0000
+++ 0001-net-netvsc-scan-all-net-devices-under-the-PCI-device.patch	2025-03-07 12:23:37.978837475 +0000
@@ -1 +1 @@
-From 7690b9ca7b0e5f54ffa7e94957e3fc04bcdc92e4 Mon Sep 17 00:00:00 2001
+From 7d43e0d1a593e59ab62efe6596d49086b41724a5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7690b9ca7b0e5f54ffa7e94957e3fc04bcdc92e4 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index 1736cb5d07..f848157b49 100644
+index 73db9d38d9..fc47979766 100644

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

* patch 'net/netvsc: remove device if its net devices removed' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'doc: fix feature flags for queue start/stop' " luca.boccassi
                       ` (25 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Long Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 1b2cefe985fa65e17257cf058a265ce1d6c8c3c8 Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Thu, 13 Feb 2025 10:58:24 -0800
Subject: [PATCH] net/netvsc: remove device if its net devices removed

[ upstream commit 1ec0995e173da14f2871ee19326f275f94f412c4 ]

An RTE device can have multiple Ethernet devices. On hot plug events, it
can't be removed until all its Ethernet devices have been removed.

Fixes: a2a23a794b3a ("net/netvsc: support VF device hot add/remove")

Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/netvsc/hn_vf.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/net/netvsc/hn_vf.c b/drivers/net/netvsc/hn_vf.c
index 40981706d5..72ac8dfb09 100644
--- a/drivers/net/netvsc/hn_vf.c
+++ b/drivers/net/netvsc/hn_vf.c
@@ -102,6 +102,7 @@ static void hn_remove_delayed(void *args)
 	uint16_t port_id = hv->vf_ctx.vf_port;
 	struct rte_device *dev = rte_eth_devices[port_id].device;
 	int ret;
+	bool all_eth_removed;
 
 	/* Tell VSP to switch data path to synthetic */
 	hn_vf_remove(hv);
@@ -138,7 +139,17 @@ static void hn_remove_delayed(void *args)
 		PMD_DRV_LOG(ERR, "rte_eth_dev_close failed port_id=%u ret=%d",
 			    port_id, ret);
 
-	ret = rte_dev_remove(dev);
+	/* Remove the rte device when all its eth devices are removed */
+	all_eth_removed = true;
+	RTE_ETH_FOREACH_DEV_OF(port_id, dev) {
+		if (rte_eth_devices[port_id].state != RTE_ETH_DEV_UNUSED) {
+			all_eth_removed = false;
+			break;
+		}
+	}
+	if (all_eth_removed)
+		ret = rte_dev_remove(dev);
+
 	hv->vf_ctx.vf_state = vf_removed;
 
 	rte_rwlock_write_unlock(&hv->vf_lock);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.114546338 +0000
+++ 0002-net-netvsc-remove-device-if-its-net-devices-removed.patch	2025-03-07 12:23:37.978837475 +0000
@@ -1 +1 @@
-From 1ec0995e173da14f2871ee19326f275f94f412c4 Mon Sep 17 00:00:00 2001
+From 1b2cefe985fa65e17257cf058a265ce1d6c8c3c8 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1ec0995e173da14f2871ee19326f275f94f412c4 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index b664beaa5d..5d8058774d 100644
+index 40981706d5..72ac8dfb09 100644

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

* patch 'doc: fix feature flags for queue start/stop' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
  2025-03-07 12:24     ` patch 'net/netvsc: remove device if its net devices removed' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'app/testpmd: show all DCB priority TC map' " luca.boccassi
                       ` (24 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From b92251430f6ef9a65f673c9e58e2ada376738f7e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 16 Dec 2024 10:53:42 -0800
Subject: [PATCH] doc: fix feature flags for queue start/stop

[ upstream commit 4f6641cbdd571433d38fd82781916e0f1e64908b ]

Several drivers have mismatch between the ethdev ops for queue
start/stop and the documentation. The gve driver does implement
queue start/stop support. The mana, netvsc, virtio and vmxnet3
drivers do not implement the rx_queue_start callback.

Fixes: 410333da8b5f ("net/mana: start/stop Tx queues")
Fixes: beff6d8e8e2e ("net/netvsc: add documentation")
Fixes: 9db3f52126fb ("doc: generate NIC overview table from ini files")
Fixes: 24595041937e ("net/vmxnet3: update feature doc")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/features.rst         | 1 +
 doc/guides/nics/features/gve.ini     | 1 +
 doc/guides/nics/features/mana.ini    | 1 -
 doc/guides/nics/features/netvsc.ini  | 1 -
 doc/guides/nics/features/virtio.ini  | 1 -
 doc/guides/nics/features/vmxnet3.ini | 1 -
 6 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index 5e662ba42b..47967cbe21 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -149,6 +149,7 @@ Queue start/stop
 ----------------
 
 Supports starting/stopping a specific Rx/Tx queue of a port.
+This is required for use deferred start configuration option.
 
 * **[implements] eth_dev_ops**: ``rx_queue_start``, ``rx_queue_stop``, ``tx_queue_start``,
   ``tx_queue_stop``.
diff --git a/doc/guides/nics/features/gve.ini b/doc/guides/nics/features/gve.ini
index cdc46b08a3..940b35dc50 100644
--- a/doc/guides/nics/features/gve.ini
+++ b/doc/guides/nics/features/gve.ini
@@ -6,6 +6,7 @@
 [Features]
 Speed capabilities   = Y
 Link status          = Y
+Queue start/stop     = Y
 MTU update           = Y
 TSO                  = Y
 RSS hash             = Y
diff --git a/doc/guides/nics/features/mana.ini b/doc/guides/nics/features/mana.ini
index e69bf4af15..c8f31d1e45 100644
--- a/doc/guides/nics/features/mana.ini
+++ b/doc/guides/nics/features/mana.ini
@@ -8,7 +8,6 @@ Speed capabilities   = P
 Link status          = P
 Removal event        = Y
 Rx interrupt         = Y
-Queue start/stop     = Y
 RSS hash             = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
diff --git a/doc/guides/nics/features/netvsc.ini b/doc/guides/nics/features/netvsc.ini
index de8c698184..32df77a03e 100644
--- a/doc/guides/nics/features/netvsc.ini
+++ b/doc/guides/nics/features/netvsc.ini
@@ -7,7 +7,6 @@
 Speed capabilities   = P
 Link status          = Y
 Free Tx mbuf on demand = Y
-Queue start/stop     = Y
 Scattered Rx         = Y
 Promiscuous mode     = Y
 Allmulticast mode    = Y
diff --git a/doc/guides/nics/features/virtio.ini b/doc/guides/nics/features/virtio.ini
index a5eab4932f..f0a1a564f9 100644
--- a/doc/guides/nics/features/virtio.ini
+++ b/doc/guides/nics/features/virtio.ini
@@ -8,7 +8,6 @@ Speed capabilities   = P
 Link status          = Y
 Link status event    = Y
 Rx interrupt         = Y
-Queue start/stop     = Y
 Scattered Rx         = P
 Promiscuous mode     = Y
 Allmulticast mode    = Y
diff --git a/doc/guides/nics/features/vmxnet3.ini b/doc/guides/nics/features/vmxnet3.ini
index 971695fc4a..749887d642 100644
--- a/doc/guides/nics/features/vmxnet3.ini
+++ b/doc/guides/nics/features/vmxnet3.ini
@@ -7,7 +7,6 @@
 Speed capabilities   = P
 Link status          = Y
 Link status event    = Y
-Queue start/stop     = Y
 MTU update           = Y
 LRO                  = Y
 TSO                  = Y
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.147918248 +0000
+++ 0003-doc-fix-feature-flags-for-queue-start-stop.patch	2025-03-07 12:23:37.982837591 +0000
@@ -1 +1 @@
-From 4f6641cbdd571433d38fd82781916e0f1e64908b Mon Sep 17 00:00:00 2001
+From b92251430f6ef9a65f673c9e58e2ada376738f7e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4f6641cbdd571433d38fd82781916e0f1e64908b ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -29 +30 @@
-index 8bd448139e..a075c057ec 100644
+index 5e662ba42b..47967cbe21 100644
@@ -41 +42 @@
-index 8dfa229bb0..f18b829eda 100644
+index cdc46b08a3..940b35dc50 100644
@@ -53 +54 @@
-index 42fd3327d2..db555ffe27 100644
+index e69bf4af15..c8f31d1e45 100644

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

* patch 'app/testpmd: show all DCB priority TC map' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
  2025-03-07 12:24     ` patch 'net/netvsc: remove device if its net devices removed' " luca.boccassi
  2025-03-07 12:24     ` patch 'doc: fix feature flags for queue start/stop' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'app/testpmd: avoid crash in DCB config' " luca.boccassi
                       ` (23 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 6ce1d999be2fb14f834d33a758b116b485b8be24 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Thu, 20 Feb 2025 15:06:50 +0800
Subject: [PATCH] app/testpmd: show all DCB priority TC map

[ upstream commit 164d7ac277bba10b27dd96821536e6b4a71cfebf ]

Currently, the "show port dcb_tc" command displays only the mapping
in the number of TCs. This patch fixes it by show all priority's TC
mapping.

Fixes: cd80f411a7e7 ("app/testpmd: add command to display DCB info")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/test-pmd/config.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 189bf68223..7c58fed413 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -6527,8 +6527,8 @@ port_dcb_info_display(portid_t port_id)
 	printf("\n  TC :        ");
 	for (i = 0; i < dcb_info.nb_tcs; i++)
 		printf("\t%4d", i);
-	printf("\n  Priority :  ");
-	for (i = 0; i < dcb_info.nb_tcs; i++)
+	printf("\n  Prio2TC :  ");
+	for (i = 0; i < RTE_ETH_DCB_NUM_USER_PRIORITIES; i++)
 		printf("\t%4d", dcb_info.prio_tc[i]);
 	printf("\n  BW percent :");
 	for (i = 0; i < dcb_info.nb_tcs; i++)
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.182131061 +0000
+++ 0004-app-testpmd-show-all-DCB-priority-TC-map.patch	2025-03-07 12:23:37.982837591 +0000
@@ -1 +1 @@
-From 164d7ac277bba10b27dd96821536e6b4a71cfebf Mon Sep 17 00:00:00 2001
+From 6ce1d999be2fb14f834d33a758b116b485b8be24 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 164d7ac277bba10b27dd96821536e6b4a71cfebf ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index 08a8ab02ea..e89af21cec 100644
+index 189bf68223..7c58fed413 100644
@@ -22 +23 @@
-@@ -7273,8 +7273,8 @@ port_dcb_info_display(portid_t port_id)
+@@ -6527,8 +6527,8 @@ port_dcb_info_display(portid_t port_id)

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

* patch 'app/testpmd: avoid crash in DCB config' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (2 preceding siblings ...)
  2025-03-07 12:24     ` patch 'app/testpmd: show all DCB priority TC map' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'app/testpmd: fix out-of-bound reference in offload " luca.boccassi
                       ` (22 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 9502cde78b96b713f43d68055964d0b5c0747033 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Thu, 20 Feb 2025 15:06:51 +0800
Subject: [PATCH] app/testpmd: avoid crash in DCB config

[ upstream commit d646e219b34ffc4d531f3703fc317e7cff9a25ae ]

The "port config dcb ..." command will segment fault when input with
invalid port id, this patch fixes it.

Fixes: 9b53e542e9e1 ("app/testpmd: add priority flow control")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/test-pmd/cmdline.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 5336df528b..90b501863c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3046,6 +3046,9 @@ cmd_config_dcb_parsed(void *parsed_result,
 	uint8_t pfc_en;
 	int ret;
 
+	if (port_id_is_invalid(port_id, ENABLED_WARN))
+		return;
+
 	port = &ports[port_id];
 	/** Check if the port is not started **/
 	if (port->port_status != RTE_PORT_STOPPED) {
@@ -6237,6 +6240,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
 	int rx_fc_enable, tx_fc_enable;
 	int ret;
 
+	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
+		return;
+
 	/*
 	 * Rx on/off, flow control is enabled/disabled on RX side. This can indicate
 	 * the RTE_ETH_FC_TX_PAUSE, Transmit pause frame at the Rx side.
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.215920937 +0000
+++ 0005-app-testpmd-avoid-crash-in-DCB-config.patch	2025-03-07 12:23:37.990837825 +0000
@@ -1 +1 @@
-From d646e219b34ffc4d531f3703fc317e7cff9a25ae Mon Sep 17 00:00:00 2001
+From 9502cde78b96b713f43d68055964d0b5c0747033 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d646e219b34ffc4d531f3703fc317e7cff9a25ae ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 6b0d8af4f6..6ca3eedb92 100644
+index 5336df528b..90b501863c 100644
@@ -21 +22 @@
-@@ -3462,6 +3462,9 @@ cmd_config_dcb_parsed(void *parsed_result,
+@@ -3046,6 +3046,9 @@ cmd_config_dcb_parsed(void *parsed_result,
@@ -31 +32 @@
-@@ -6664,6 +6667,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
+@@ -6237,6 +6240,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,

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

* patch 'app/testpmd: fix out-of-bound reference in offload config' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (3 preceding siblings ...)
  2025-03-07 12:24     ` patch 'app/testpmd: avoid crash in DCB config' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/txgbe: remove useless condition for SW-FW sync' " luca.boccassi
                       ` (21 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 6737b184aac935441fad1750704cd8e4eb7eed29 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 20 Feb 2025 12:44:26 -0800
Subject: [PATCH] app/testpmd: fix out-of-bound reference in offload config

[ upstream commit 8f847023dd16cb6e5858756d7ec16c940ac6eee9 ]

When configuring offloads, need to check the port id before
indexing into the ports[] array. This can easily be done
by moving the call to oh_dev_conf_get_print_err() to before
the checks for port stopped.

Fixes: c73a9071877a ("app/testpmd: add commands to test new offload API")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 app/test-pmd/cmdline.c | 59 ++++++++++++++++++++++++++----------------
 1 file changed, 36 insertions(+), 23 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 90b501863c..b955803123 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -10921,7 +10921,7 @@ cmd_rx_offload_get_configuration_parsed(
 	struct cmd_rx_offload_get_configuration_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
 	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	struct rte_eth_conf dev_conf;
 	uint64_t port_offloads;
 	uint64_t queue_offloads;
@@ -10929,12 +10929,13 @@ cmd_rx_offload_get_configuration_parsed(
 	int q;
 	int ret;
 
+	ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
+	if (ret != 0)
+		return;
+
+	port = &ports[port_id];
 	printf("Rx Offloading Configuration of port %d :\n", port_id);
 
-	ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
-	if (ret != 0)
-		return;
-
 	port_offloads = dev_conf.rxmode.offloads;
 	printf("  Port :");
 	print_rx_offloads(port_offloads);
@@ -11039,12 +11040,17 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 	struct cmd_config_per_port_rx_offload_result *res = parsed_result;
 	portid_t port_id = res->port_id;
 	struct rte_eth_dev_info dev_info;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	uint64_t single_offload;
 	uint16_t nb_rx_queues;
 	int q;
 	int ret;
 
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	port = &ports[port_id];
 	if (port->port_status != RTE_PORT_STOPPED) {
 		fprintf(stderr,
 			"Error: Can't config offload when Port %d is not stopped\n",
@@ -11147,10 +11153,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
 	struct rte_eth_dev_info dev_info;
 	portid_t port_id = res->port_id;
 	uint16_t queue_id = res->queue_id;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	uint64_t single_offload;
 	int ret;
 
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	port = &ports[port_id];
 	if (port->port_status != RTE_PORT_STOPPED) {
 		fprintf(stderr,
 			"Error: Can't config offload when Port %d is not stopped\n",
@@ -11158,10 +11169,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
 		return;
 	}
 
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
 	if (queue_id >= dev_info.nb_rx_queues) {
 		fprintf(stderr,
 			"Error: input queue_id should be 0 ... %d\n",
@@ -11340,7 +11347,7 @@ cmd_tx_offload_get_configuration_parsed(
 	struct cmd_tx_offload_get_configuration_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
 	portid_t port_id = res->port_id;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	struct rte_eth_conf dev_conf;
 	uint64_t port_offloads;
 	uint64_t queue_offloads;
@@ -11348,12 +11355,12 @@ cmd_tx_offload_get_configuration_parsed(
 	int q;
 	int ret;
 
+	ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
+	if (ret != 0)
+		return;
+
 	printf("Tx Offloading Configuration of port %d :\n", port_id);
-
-	ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
-	if (ret != 0)
-		return;
-
+	port = &ports[port_id];
 	port_offloads = dev_conf.txmode.offloads;
 	printf("  Port :");
 	print_tx_offloads(port_offloads);
@@ -11462,12 +11469,17 @@ cmd_config_per_port_tx_offload_parsed(void *parsed_result,
 	struct cmd_config_per_port_tx_offload_result *res = parsed_result;
 	portid_t port_id = res->port_id;
 	struct rte_eth_dev_info dev_info;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	uint64_t single_offload;
 	uint16_t nb_tx_queues;
 	int q;
 	int ret;
 
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	port = &ports[port_id];
 	if (port->port_status != RTE_PORT_STOPPED) {
 		fprintf(stderr,
 			"Error: Can't config offload when Port %d is not stopped\n",
@@ -11573,10 +11585,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
 	struct rte_eth_dev_info dev_info;
 	portid_t port_id = res->port_id;
 	uint16_t queue_id = res->queue_id;
-	struct rte_port *port = &ports[port_id];
+	struct rte_port *port;
 	uint64_t single_offload;
 	int ret;
 
+	ret = eth_dev_info_get_print_err(port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	port = &ports[port_id];
 	if (port->port_status != RTE_PORT_STOPPED) {
 		fprintf(stderr,
 			"Error: Can't config offload when Port %d is not stopped\n",
@@ -11584,10 +11601,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
 		return;
 	}
 
-	ret = eth_dev_info_get_print_err(port_id, &dev_info);
-	if (ret != 0)
-		return;
-
 	if (queue_id >= dev_info.nb_tx_queues) {
 		fprintf(stderr,
 			"Error: input queue_id should be 0 ... %d\n",
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.254811139 +0000
+++ 0006-app-testpmd-fix-out-of-bound-reference-in-offload-co.patch	2025-03-07 12:23:37.998838059 +0000
@@ -1 +1 @@
-From 8f847023dd16cb6e5858756d7ec16c940ac6eee9 Mon Sep 17 00:00:00 2001
+From 6737b184aac935441fad1750704cd8e4eb7eed29 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8f847023dd16cb6e5858756d7ec16c940ac6eee9 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +18,2 @@
- app/test-pmd/cmdline.c | 67 +++++++++++++++++++++++-------------------
- 1 file changed, 36 insertions(+), 31 deletions(-)
+ app/test-pmd/cmdline.c | 59 ++++++++++++++++++++++++++----------------
+ 1 file changed, 36 insertions(+), 23 deletions(-)
@@ -21 +22 @@
-index 6ca3eedb92..d4bb3ec998 100644
+index 90b501863c..b955803123 100644
@@ -24 +25 @@
-@@ -11633,7 +11633,7 @@ cmd_rx_offload_get_configuration_parsed(
+@@ -10921,7 +10921,7 @@ cmd_rx_offload_get_configuration_parsed(
@@ -33 +34 @@
-@@ -11641,12 +11641,13 @@ cmd_rx_offload_get_configuration_parsed(
+@@ -10929,12 +10929,13 @@ cmd_rx_offload_get_configuration_parsed(
@@ -51,3 +52,3 @@
-@@ -11747,12 +11748,17 @@ static void
- config_port_rx_offload(portid_t port_id, char *name, bool on)
- {
+@@ -11039,12 +11040,17 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
+ 	struct cmd_config_per_port_rx_offload_result *res = parsed_result;
+ 	portid_t port_id = res->port_id;
@@ -56,0 +58 @@
+ 	uint64_t single_offload;
@@ -58 +59,0 @@
- 	uint64_t offload;
@@ -70,12 +71 @@
-@@ -11760,10 +11766,6 @@ config_port_rx_offload(portid_t port_id, char *name, bool on)
- 		return;
- 	}
- 
--	ret = eth_dev_info_get_print_err(port_id, &dev_info);
--	if (ret != 0)
--		return;
--
- 	if (!strcmp(name, "all")) {
- 		offload = dev_info.rx_offload_capa;
- 	} else {
-@@ -11949,10 +11951,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
+@@ -11147,10 +11153,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
@@ -87 +77 @@
- 	uint64_t offload;
+ 	uint64_t single_offload;
@@ -98 +88 @@
-@@ -11960,10 +11967,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
+@@ -11158,10 +11169,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
@@ -109 +99 @@
-@@ -12151,7 +12154,7 @@ cmd_tx_offload_get_configuration_parsed(
+@@ -11340,7 +11347,7 @@ cmd_tx_offload_get_configuration_parsed(
@@ -118 +108 @@
-@@ -12159,12 +12162,12 @@ cmd_tx_offload_get_configuration_parsed(
+@@ -11348,12 +11355,12 @@ cmd_tx_offload_get_configuration_parsed(
@@ -136,3 +126,3 @@
-@@ -12269,12 +12272,17 @@ static void
- config_port_tx_offload(portid_t port_id, char *name, bool on)
- {
+@@ -11462,12 +11469,17 @@ cmd_config_per_port_tx_offload_parsed(void *parsed_result,
+ 	struct cmd_config_per_port_tx_offload_result *res = parsed_result;
+ 	portid_t port_id = res->port_id;
@@ -141,0 +132 @@
+ 	uint64_t single_offload;
@@ -143 +133,0 @@
- 	uint64_t offload;
@@ -155,12 +145 @@
-@@ -12282,10 +12290,6 @@ config_port_tx_offload(portid_t port_id, char *name, bool on)
- 		return;
- 	}
- 
--	ret = eth_dev_info_get_print_err(port_id, &dev_info);
--	if (ret != 0)
--		return;
--
- 	if (!strcmp(name, "all")) {
- 		offload = dev_info.tx_offload_capa;
- 	} else {
-@@ -12475,10 +12479,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
+@@ -11573,10 +11585,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
@@ -172 +151 @@
- 	uint64_t offload;
+ 	uint64_t single_offload;
@@ -183 +162 @@
-@@ -12486,10 +12495,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
+@@ -11584,10 +11601,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,

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

* patch 'net/txgbe: remove useless condition for SW-FW sync' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (4 preceding siblings ...)
  2025-03-07 12:24     ` patch 'app/testpmd: fix out-of-bound reference in offload " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'bus/pci: fix registered device name' " luca.boccassi
                       ` (20 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Zaiyu Wang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From b5562baa75502f083ea38582ada2a515bd638c80 Mon Sep 17 00:00:00 2001
From: Zaiyu Wang <zaiyuwang@trustnetic.com>
Date: Mon, 24 Feb 2025 17:59:08 +0800
Subject: [PATCH] net/txgbe: remove useless condition for SW-FW sync

[ upstream commit 0d6b122c28b4a3ab4cbb79103f305e49a9edfcae ]

Remove superfluous 'if' and 'else' for SW-FW sync.

Bugzilla ID: 1581
Fixes: 5364a1ce30df ("net/txgbe: add PHY init")

Signed-off-by: Zaiyu Wang <zaiyuwang@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_phy.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c
index a7c11c50df..abcc9e72bd 100644
--- a/drivers/net/txgbe/base/txgbe_phy.c
+++ b/drivers/net/txgbe/base/txgbe_phy.c
@@ -80,12 +80,8 @@ static s32 txgbe_read_phy_if(struct txgbe_hw *hw)
 	if (hw->phy.nw_mng_if_sel & TXGBE_ETHPHYIF_MDIO_ACT)
 		hw->phy.addr = TXGBE_ETHPHYIF_MDIO_BASE(hw->phy.nw_mng_if_sel);
 
-	if (!hw->phy.phy_semaphore_mask) {
-		if (hw->bus.lan_id)
-			hw->phy.phy_semaphore_mask = TXGBE_MNGSEM_SWPHY;
-		else
-			hw->phy.phy_semaphore_mask = TXGBE_MNGSEM_SWPHY;
-	}
+	if (!hw->phy.phy_semaphore_mask)
+		hw->phy.phy_semaphore_mask = TXGBE_MNGSEM_SWPHY;
 
 	return 0;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.293754883 +0000
+++ 0007-net-txgbe-remove-useless-condition-for-SW-FW-sync.patch	2025-03-07 12:23:37.998838059 +0000
@@ -1 +1 @@
-From 0d6b122c28b4a3ab4cbb79103f305e49a9edfcae Mon Sep 17 00:00:00 2001
+From b5562baa75502f083ea38582ada2a515bd638c80 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 0d6b122c28b4a3ab4cbb79103f305e49a9edfcae ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index d87af656d5..ce6882e262 100644
+index a7c11c50df..abcc9e72bd 100644

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

* patch 'bus/pci: fix registered device name' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (5 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/txgbe: remove useless condition for SW-FW sync' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'examples/vhost_crypto: fix user callbacks' " luca.boccassi
                       ` (19 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Shani Peretz; +Cc: Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From a3aa0ac7d655d79f4bf88c66bec8415b43a0988c Mon Sep 17 00:00:00 2001
From: Shani Peretz <shperetz@nvidia.com>
Date: Wed, 12 Feb 2025 18:38:32 +0200
Subject: [PATCH] bus/pci: fix registered device name

[ upstream commit bd786765996fc2654770049043021ea618fc23f0 ]

When registering a new PCI device, the device->name field stored
the user-provided string from devargs (e.g., "08:00.0" or "0000:08:00.0").
This approach led to inconsistencies when registering new devices.

This patch fix this issue by saving the parsed PCI in device->name,
so when a new PCI device is registering the name displayed in the device
list will be the parsed version.

Fixes: 23eaa9059ec2 ("bus/pci: use given name as generic name")

Signed-off-by: Shani Peretz <shperetz@nvidia.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/bus/pci/pci_common.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index 756e308fdf..465f9258af 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -99,21 +99,11 @@ pci_common_set(struct rte_pci_device *dev)
 	/* Each device has its internal, canonical name set. */
 	rte_pci_device_name(&dev->addr,
 			dev->name, sizeof(dev->name));
+	dev->device.name = dev->name;
+
 	devargs = pci_devargs_lookup(&dev->addr);
 	dev->device.devargs = devargs;
 
-	/* When using a blocklist, only blocked devices will have
-	 * an rte_devargs. Allowed devices won't have one.
-	 */
-	if (devargs != NULL)
-		/* If an rte_devargs exists, the generic rte_device uses the
-		 * given name as its name.
-		 */
-		dev->device.name = dev->device.devargs->name;
-	else
-		/* Otherwise, it uses the internal, canonical form. */
-		dev->device.name = dev->name;
-
 	if (dev->bus_info != NULL ||
 			asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16,
 				dev->id.vendor_id, dev->id.device_id) != -1)
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.329964549 +0000
+++ 0008-bus-pci-fix-registered-device-name.patch	2025-03-07 12:23:37.998838059 +0000
@@ -1 +1 @@
-From bd786765996fc2654770049043021ea618fc23f0 Mon Sep 17 00:00:00 2001
+From a3aa0ac7d655d79f4bf88c66bec8415b43a0988c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bd786765996fc2654770049043021ea618fc23f0 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index 1173f0887c..70faae4e44 100644
+index 756e308fdf..465f9258af 100644

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

* patch 'examples/vhost_crypto: fix user callbacks' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (6 preceding siblings ...)
  2025-03-07 12:24     ` patch 'bus/pci: fix registered device name' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'vhost: check descriptor chains length' " luca.boccassi
                       ` (18 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Gowrishankar Muthukrishnan; +Cc: Akhil Goyal, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 6816d998b04e26ca4468356e0a3c10daf65412eb Mon Sep 17 00:00:00 2001
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Date: Fri, 28 Feb 2025 19:17:11 +0530
Subject: [PATCH] examples/vhost_crypto: fix user callbacks

[ upstream commit f7cf44d49b1115238a87c5852db4b47290bfdc25 ]

In order to handle new vhost user connection, use new_connection
and destroy_connection callbacks.

Fixes: f5188211c721 ("examples/vhost_crypto: add sample application")

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 examples/vhost_crypto/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/examples/vhost_crypto/main.c b/examples/vhost_crypto/main.c
index 02987ebd76..b00daf74e7 100644
--- a/examples/vhost_crypto/main.c
+++ b/examples/vhost_crypto/main.c
@@ -362,8 +362,8 @@ destroy_device(int vid)
 }
 
 static const struct rte_vhost_device_ops virtio_crypto_device_ops = {
-	.new_device =  new_device,
-	.destroy_device = destroy_device,
+	.new_connection =  new_device,
+	.destroy_connection = destroy_device,
 };
 
 static int
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.361858825 +0000
+++ 0009-examples-vhost_crypto-fix-user-callbacks.patch	2025-03-07 12:23:37.998838059 +0000
@@ -1 +1 @@
-From f7cf44d49b1115238a87c5852db4b47290bfdc25 Mon Sep 17 00:00:00 2001
+From 6816d998b04e26ca4468356e0a3c10daf65412eb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f7cf44d49b1115238a87c5852db4b47290bfdc25 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 558c09a60f..b1fe4120b9 100644
+index 02987ebd76..b00daf74e7 100644

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

* patch 'vhost: check descriptor chains length' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (7 preceding siblings ...)
  2025-03-07 12:24     ` patch 'examples/vhost_crypto: fix user callbacks' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/bbdev: update FFT test vectors' " luca.boccassi
                       ` (17 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Yunjian Wang; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 01b199177b82c3641f3ae2571ec9ed4e0d1927b7 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Mon, 23 Dec 2024 11:29:21 +0800
Subject: [PATCH] vhost: check descriptor chains length

[ upstream commit e31b57e732d52f3cd8c707824f79fef8c117df95 ]

The descriptor chains length must be greater than the Virtio-net
header size. Otherwise, such descriptor chains sizes implies no
packet data.

Fixes: fe8477ebbd94 ("vhost: support async packed ring dequeue")

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 lib/vhost/virtio_net.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index f16b7c45da..ec8d03d97f 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -3586,6 +3586,16 @@ virtio_dev_tx_async_single_packed(struct virtio_net *dev,
 					 VHOST_ACCESS_RO) < 0))
 		return -1;
 
+	if (unlikely(buf_len <= dev->vhost_hlen)) {
+		if (!allocerr_warned) {
+			VHOST_LOG_DATA(dev->ifname, ERR, "Invalid buffer length.\n");
+			allocerr_warned = true;
+		}
+		return -1;
+	}
+
+	buf_len -= dev->vhost_hlen;
+
 	if (unlikely(virtio_dev_pktmbuf_prep(dev, pkts, buf_len))) {
 		if (!allocerr_warned) {
 			VHOST_LOG_DATA(dev->ifname, ERR, "Failed mbuf alloc of size %d from %s.\n",
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.393327990 +0000
+++ 0010-vhost-check-descriptor-chains-length.patch	2025-03-07 12:23:38.002838176 +0000
@@ -1 +1 @@
-From e31b57e732d52f3cd8c707824f79fef8c117df95 Mon Sep 17 00:00:00 2001
+From 01b199177b82c3641f3ae2571ec9ed4e0d1927b7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e31b57e732d52f3cd8c707824f79fef8c117df95 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 0bf49169db..0348e8dac3 100644
+index f16b7c45da..ec8d03d97f 100644
@@ -23 +24 @@
-@@ -3960,6 +3960,16 @@ virtio_dev_tx_async_single_packed(struct virtio_net *dev,
+@@ -3586,6 +3586,16 @@ virtio_dev_tx_async_single_packed(struct virtio_net *dev,
@@ -29 +30 @@
-+			VHOST_DATA_LOG(dev->ifname, ERR, "Invalid buffer length.");
++			VHOST_LOG_DATA(dev->ifname, ERR, "Invalid buffer length.\n");
@@ -39 +40 @@
- 			VHOST_DATA_LOG(dev->ifname, ERR, "Failed mbuf alloc of size %d from %s.",
+ 			VHOST_LOG_DATA(dev->ifname, ERR, "Failed mbuf alloc of size %d from %s.\n",

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

* patch 'test/bbdev: update FFT test vectors' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (8 preceding siblings ...)
  2025-03-07 12:24     ` patch 'vhost: check descriptor chains length' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/event: fix number of queues in eventdev conf' " luca.boccassi
                       ` (16 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Nicolas Chautru; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ac026a011e956958b0b078af7d53f89d3d51af51 Mon Sep 17 00:00:00 2001
From: Nicolas Chautru <nicolas.chautru@intel.com>
Date: Fri, 28 Feb 2025 08:50:22 -0800
Subject: [PATCH] test/bbdev: update FFT test vectors

[ upstream commit 283591f1781c7c409393c0ade76ac8acfbd0bd5f ]

Some FFT operations vectors could create false alarms depending
on implementation and dependency SW versions.
Updated one vector and removing one previous vector.

Fixes: 0acdb9866756 ("test/bbdev: add FFT operations cases")

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/test_vectors/fft_9.data      | 870 --------------------
 app/test-bbdev/test_vectors/fft_byp_28.data |  48 +-
 2 files changed, 24 insertions(+), 894 deletions(-)
 delete mode 100644 app/test-bbdev/test_vectors/fft_9.data

diff --git a/app/test-bbdev/test_vectors/fft_9.data b/app/test-bbdev/test_vectors/fft_9.data
deleted file mode 100644
index 6088707059..0000000000
--- a/app/test-bbdev/test_vectors/fft_9.data
+++ /dev/null
@@ -1,870 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2021 Intel Corporation
-op_type =
-RTE_BBDEV_OP_FFT
-
-input0 =
-0xF62CFB88, 0xF17CFB18, 0xF6C0FA9F, 0xF773F742, 0xFCCBFAF0, 0xF908F8A6, 0xFFB3F496, 0x04C1FAC6,
-0x07C5019B, 0x017D0139, 0x00F60299, 0x06ABFF06, 0x04E003A0, 0xFF740CAA, 0xF96F1004, 0xF5330D1C,
-0xF5520BB9, 0xF327062F, 0xF0BF067D, 0xF29D036F, 0xEF50FFDF, 0xF1D6FE10, 0xEB1AFC5B, 0xEEAFF8ED,
-0xEF6AF3FA, 0xEE50F275, 0xF325F63D, 0xF5D0EF1B, 0xF515F101, 0xFB83F18E, 0xF8DEEE63, 0xFA9DF473,
-0xFB24ED8F, 0xFFBDEEDD, 0xFBF7F5FD, 0xFC56F8D8, 0x024BF447, 0x0538F24F, 0xFD20F8FB, 0xFBA9F239,
-0xFB76F52A, 0xF9E8EE9A, 0xFE68F339, 0xFC76F468, 0xF9D3F4F8, 0xFAECE946, 0x063DEC57, 0x0B23EEAD,
-0x094EECCE, 0x0C99EBB7, 0x11F0F617, 0x0CF2F4A6, 0x1319F6AA, 0x0D35FCA7, 0x11D4F94A, 0x14AFFA25,
-0x11ACFFDF, 0x0FA302EA, 0x1275FEDB, 0x100F0703, 0x09E906BE, 0x04BD066D, 0x0A2508A8, 0x03B206B6,
-0x056605D9, 0xFD1606AB, 0xFC8EFED8, 0x015102AD, 0x01BA0079, 0x012FFF86, 0xFB7EF61F, 0x06F9FC05,
-0x05D0FF12, 0x0241FCBF, 0x05E6FDDE, 0x0654FDCC, 0x0788FBC7, 0x0783FBB1, 0x087EFAFA, 0x07D80833,
-0x01CB05B9, 0x047A03C9, 0x082C070F, 0x017401A3, 0x0A3F0185, 0x02A90167, 0x0353FE02, 0x0566FFDF,
-0x074E0487, 0x075CFC6D, 0x07470020, 0x0ACC019F, 0x0B85074E, 0x11EF03C3, 0x0E2D0508, 0x0B5E04CA,
-0x0BB8088A, 0x0E85091F, 0x0B601078, 0x0CAE0DFA, 0x0F0E1394, 0x03A51A51, 0x033D1B87, 0xFEEB1855,
-0xFDAC15F8, 0xF8AA17FD, 0xF0AC1377, 0xF15014C7, 0xF2850DF0, 0xF2AD0EB2, 0xF1500B90, 0xEC8305FB,
-0xF4BC061B, 0xF11D033D, 0xF4BB087D, 0xF1EEFFD8, 0xF4BCFF91, 0xFCFF0393, 0xF31A04FC, 0xF6840257,
-0xF7ECFE51, 0xF919FC35, 0xF5E3FCC3, 0xF5C60450, 0xF4A401C9, 0xF40CFD64, 0xF42B001D, 0xF4D30090,
-0xF135F8EB, 0xF832F985, 0xF30EFAF2, 0xF50FF9E5, 0xF791F5BF, 0xFA0FF9A8, 0xF862F834, 0xF996F8AB,
-0xFD1BF578, 0xFD28F73F, 0x0249FB2B, 0xFC90FE71, 0x0256014E, 0x0126FD72, 0x010802F3, 0x00A700E2,
-0xFD4B046E, 0xFB3506FD, 0x015CFFFB, 0xFB9B081A, 0xF8A80A3A, 0xF6F20360, 0xF58C0218, 0xF88DF9DB,
-0xF560FFDC, 0xF2010176, 0xEC58FCB9, 0xECF2F791, 0xEE47F641, 0xEE25F73B, 0xF700F8FA, 0xF15CF0E4,
-0xF459EE9C, 0xF80DF177, 0xFA14F139, 0xFAF8EFD5, 0xF9BFEF89, 0xFCE8F0FD, 0xFBE1F0B8, 0x027CF069,
-0xFCF5F137, 0x00D4F1CC, 0x0286EB70, 0x07F4EA47, 0x05BDF0B0, 0x056DEF6A, 0x05A5F263, 0x0E2AEC8B,
-0x12A4F393, 0x0B71ED91, 0x107EF77D, 0x0D58F5C0, 0x11B1F636, 0x1198FB57, 0x1280FD41, 0x1452FB53,
-0x0ED505D3, 0x0C0E0460, 0x0F7603BF, 0x11BB0840, 0x0FC30688, 0x08350A31, 0x06E505E3, 0x05140870,
-0x09A60E87, 0x03910CEF, 0xFD560A8E, 0xFDB50C43, 0x02630357, 0xFE7B0924, 0xF91E0652, 0xFD94FFE2,
-0xFFD7FD51, 0x01AA02E1, 0xFB8103A0, 0xFD23FB37, 0x05DCFBE3, 0x021500C0, 0x0408FDAE, 0x01720146,
-0x0518FC2D, 0x04F9FE57, 0x0EA7FBCD, 0x0462FBA7, 0x0825F9B6, 0x0E47FECE, 0x0F020108, 0x0B39005E,
-0x096701C1, 0x0B11027B, 0x0B270492, 0x08C20939, 0x070E09D8, 0x0B3B05CB, 0x0BDF099F, 0x07DC0B11,
-0x08790B54, 0x02D50B5A, 0x06360F48, 0x08B610AB, 0x02611070, 0x01CF1436, 0x013D0C5C, 0xFB341474,
-0x00E70F6D, 0xFBD414C2, 0xF7301127, 0xF83912C1, 0xF85E0B23, 0xF5D60B8A, 0xF4B60E18, 0xF51F0F86,
-0xF2C30AFF, 0xFA9A0953, 0xF42F0797, 0xEFDA0D45, 0xF3370866, 0xF4A70203, 0xEF7206CE, 0xF66B0471,
-0xF4B200E2, 0xF346FDF8, 0xF55BFEE1, 0xF1C6FC0D, 0xF89A018A, 0xF824FFFD, 0xF820FD32, 0xF129019D,
-0xF356FF5E, 0xF7B70043, 0xF4490050, 0xF373F9BC, 0xF672FEA7, 0xF655F6EF, 0xF85EF696, 0xFCFDFAE0,
-0xF80CF769, 0xFC94F3B6, 0xFB72FAEA, 0xFD45F600, 0x0376F540, 0xFC84FBBF, 0xFEA8FF8B, 0xFC17FE78,
-0x0228FFC6, 0x004C0143, 0xF6740170, 0xFA6E0265, 0xFD5AFEE3, 0xFAF90113, 0xF7EA02FF, 0xF71B050A,
-0xF1920113, 0xF446FC35, 0xF4470038, 0xF257FFAF, 0xF157F7D4, 0xF886FDBA, 0xF440F432, 0xF6F6F387,
-0xF6F6F316, 0xF8ECF681, 0xFDDFF4BE, 0xFA82F870, 0x02C3F6D8, 0x00B5ED53, 0xFF54F5B6, 0x007AF986,
-0x01A7F540, 0x00B4F5BD, 0xFE30F669, 0xFBDBFA3D, 0xFC22F23B, 0xFDEAF123, 0x044BF0EC, 0x069CF57D,
-0x074FF59B, 0x04F1F354, 0x02E9F0E0, 0x0A52F558, 0x1029F647, 0x0A2AFC4F, 0x0AAFF38F, 0x0D9EF7C8,
-0x167EF8FD, 0x0C42FE65, 0x0EA7F8FD, 0x124EFCF7, 0x14ABFEBB, 0x09800444, 0x07990B81, 0x0605057D,
-0x056900B9, 0x072607E4, 0x06580651, 0x030103D7, 0x02A203AC, 0x01240323, 0xFE5DFD2E, 0xFD10FF1B,
-0xFF9EFCFC, 0x0402F8C1, 0x01AAF84A, 0x044DFB7B, 0x07EEF58B, 0x061AFD52, 0x0596FC0F, 0x05ECFADA,
-0x0A9A0143, 0x0D840441, 0x0998033D, 0x0D66059E, 0x0D2A0019, 0x0FDA0629, 0x09A50394, 0x080F054E,
-0x06580A16, 0x070408EB, 0x05BC0555, 0x09170CB0, 0x03200D3E, 0x051F09A3, 0x05420466, 0x045F0106,
-0x01A108B3, 0x069C0AF4, 0xFF7108B4, 0x03020862, 0x06BD0D9D, 0x05721289, 0xFE6D1340, 0xFD920936,
-0xFECC0F9C, 0xFF9A1319, 0xFEE60C67, 0xFD3C0C12, 0xFA670B18, 0xFF0E0A37, 0xF8E90F0C, 0xFA950A82,
-0xF87C07AC, 0xF4100C46, 0xF60A0CF8, 0xF33E05C3, 0xF3D0FFF1, 0xF2DA074A, 0xF6AD0542, 0xF6860216,
-0xF2FE00D3, 0xF8BE005E, 0xF898054C, 0xF4520483, 0xF6060027, 0xF98301BA, 0xFF1702B5, 0xF56502DC,
-0xFBB30118, 0xFB60FF11, 0xF8EAFE99, 0xFBEFFF19, 0xFBB1FEA7, 0xF3BAFD54, 0xF99DF969, 0xFFE10262,
-0xFA13FD27, 0xF443FFBB, 0xF85CFE6E, 0xFA82FFD0, 0xFD24FF81, 0xF67C01C4, 0xFAC9FEAE, 0xF6FA0229,
-0xF56703F1, 0xF71100C2, 0xF347FF38, 0xF8CDF942, 0xF3CAF96F, 0xF5F2FAFF, 0xF542F9D2, 0xF869FBAB,
-0xFBA6F8E7, 0xF9A1F147, 0x0050F264, 0xFD3AF3A5, 0x0780F986, 0x06A8004D, 0xFFE4FC48, 0xF6E9FB83,
-0x0133F8B5, 0x024FF9E9, 0xFC570589, 0xFFBFFD2C, 0xFB2BF952, 0x00A0FA26, 0x0231F689, 0x0454F8FF,
-0x0723F8ED, 0x036BFBB4, 0x0780FDDD, 0x0503FDBB, 0x05D6FFCD, 0xFD33FF83, 0xFD6FFAF9, 0x049DF9C4,
-0x038AFA93, 0x080CFBC6, 0x03A2FBD8, 0x0643FCD5, 0x0D8AFF08, 0x0F2E0813, 0x07060D8D, 0xFF530B8E,
-0xFC59028D, 0xFA6105D9, 0xFF6F071E, 0xFBDF08D7, 0xF97E00C0, 0xF8CCFE1C, 0x00BBFD7A, 0x08FF030B,
-0xFAA603F5, 0xFC75FE4A, 0xFBECF8B5, 0x0789FB77, 0x0A69012A, 0x02D40145, 0xFECAFCB9, 0x06C0FD4B,
-0x078FFF2E, 0x05480284, 0x05C709A4, 0x038707D7, 0xFE8A08D5, 0xFE6D0D52, 0x01CF00FC, 0x051F063C,
-0xFD150C96, 0xFE660A55, 0x00290DC3, 0x074D0ED2, 0x02110CB7, 0xF94005CC, 0xFD8D06A7, 0x01F204FC,
-0x002807F5, 0x031F0E5C, 0xFA6E0782, 0xFDE00A43, 0x05FE0B30, 0x01F10971, 0xFD6C125A, 0xF9551453,
-0xF90B10F6, 0xEED90FDF, 0xF1750A5E, 0xEFCA0849, 0xF2D10CF7, 0xEC13073D, 0xF858025D, 0xFB520191,
-0xF40800EC, 0xF593052D, 0xF1DF05A9, 0xF2FB04F4, 0xEE2404CC, 0xE9C500E0, 0xF214FD2E, 0xF5E6F533,
-0xFA1BF631, 0xFB2CFB19, 0xF55CFE97, 0xF5140378, 0xFB85FF65, 0xF67D02A4, 0xF967076D, 0xF5830893,
-0xF17A0959, 0xED3E01A5, 0xF02301B6, 0xF5FE00F4, 0xF914FFAD, 0xED07FD70, 0xF508FE84, 0xF790FBD6,
-0xF501FEA0, 0xF817F748, 0xF39AFD8C, 0xF9DAF571, 0xFBCFFAE5, 0xFDA6FA5A, 0xFC5EF927, 0xF5A90009,
-0xF906FC1C, 0xF741FF6D, 0xF95B0070, 0xF5DB021A, 0xF55BF85F, 0xF61FFD65, 0xF798FC9A, 0xFB1FFA94,
-0xF7ECFC7F, 0xF602FF23, 0xF1B2FBA0, 0xED04FF93, 0xEE31FC87, 0xED59F7F2, 0xF1D5ED9A, 0xF75FF263,
-0xF797EEBA, 0x0074F0E1, 0x0390EE61, 0xFE91F59C, 0x0708F8D7, 0xFAC7FBE3, 0x0634FDAE, 0x056CFCA6,
-0x026AFCFB, 0xFCEBF457, 0x04F6F827, 0x03ABF2C0, 0x00FFFA09, 0x00A6F799, 0x04EFFB37, 0x07EB00D1,
-0x0209FCC1, 0xFF45F9A3, 0x021AFAA4, 0x026CF85A, 0x0382FC38, 0x0397F9A8, 0x03FFF784, 0x046CF929,
-0x0948FD40, 0x05F1FED5, 0x0CD6003C, 0x0B36FE7F, 0x09CB009E, 0x070E07AA, 0x027400A5, 0x0996FC87,
-0x050E0956, 0x07750630, 0x007C0B62, 0xFEDD04D8, 0x00040264, 0x00F000E7, 0xFE010492, 0xFD7E0008,
-0x00B100AB, 0x04700276, 0x00CFFF64, 0x07EF054B, 0x08A601C7, 0x084302DE, 0x05BF08D0, 0x02780776,
-0xF8EB070D, 0x049701D7, 0x034B0541, 0x034A0931, 0x061D091C, 0x07DA08B0, 0x015D10D3, 0x06980B55,
-0xFC580BC3, 0x03940BF8, 0xFF8B0BCE, 0xF9870867, 0xF33B0889, 0xF83E0651, 0xFE1300C2, 0xFFD905A2,
-0xFFDC09BC, 0xFDD60DAD, 0xFF9E03D8, 0xFF0A075D, 0xFF4B1046, 0x05360FB7, 0xF84811EC, 0xFA5E0B86,
-0xFCAD092A, 0xFE3B0DD3, 0xFFE00C60, 0xF7471296, 0xF5AD0D6A, 0xFBB60B8D, 0xF64B0BA9, 0xF33C0D50,
-0xF04F099A, 0xEF720174, 0xF9200A86, 0xEF5E0BA6, 0xF53C0782, 0xF06A054C, 0xEB250789, 0xF03D08E1,
-0xEEC2FF52, 0xE7F6FB5A, 0xEFC3FA72, 0xEFCFFCF8, 0xF05EF9EB, 0xF257FDFD, 0xF9E80036, 0xF4190998,
-0xF1BA0025, 0xF4CCFC80, 0xF30101DC, 0xF2920503, 0xF0B5018E, 0xEE1EFC67, 0xF315F529, 0xFC45F421,
-0xFF9EFF4D, 0x0018FAE6, 0xF46100BC, 0xF7E8F880, 0xFA79038A, 0xF82BFED7, 0xF40D00E9, 0xF39CFB71,
-0xF6FEFDE1, 0xF731FE37, 0xFA72F876, 0xFADCFBA7, 0xF9D7FD8D, 0xF99EFF50, 0xF6CC0552, 0xF62F03EF,
-0xF109FE82, 0xF2C0FDC2, 0xF00EFBD9, 0xF352F631, 0xF431FA4F, 0xF1E5F8BE, 0xF3DFF7F8, 0xF6A4F0CD,
-0xF4D2F089, 0x0114F634, 0xFB30F79B, 0xFBE2ED25, 0xFEDCF0DB, 0x087AF438, 0x012CF5D1, 0x074CFF17,
-0x018BFF6F, 0x00F0F93E, 0x03EAF550, 0x0240FA47, 0x01E7FE7D, 0x01C50089, 0x041BFBC4, 0x02ECF9F9,
-0x06EFFCA3, 0x0351FFFA, 0x03D6052A, 0x024F09A5, 0x002006C2, 0xFDDB05CA, 0xFD30FF1E, 0x02190393,
-0xF886FCFB, 0x01E0FDB4, 0x024900D1, 0x018F052E, 0x03860646, 0x0543060E, 0x00F60892, 0x034C0AFA,
-0xF88A0BFF, 0xFAA10B76, 0xF2D50570, 0xF26EFD3E, 0xF34DFEC1, 0xF849FDE7, 0xF74EFF99, 0xF5FDFDB3,
-0xF8F7FE85, 0xF5EFFC0E, 0x0131F8D2, 0x002BFB2C, 0xF9E7005B, 0xFE05FC4F, 0x02B9F6D9, 0x0CF1F65D,
-0x0C7A0229, 0x0424044B, 0x064D0266, 0x0E830254, 0x082005D2, 0x07E00865, 0x053904F7, 0x06070445,
-0x040C0A8D, 0x031405D0, 0x034F0EDC, 0xFE690E40, 0xF8DF091A, 0xF9DF073F, 0xF7A9068A, 0xFAFC064C,
-0xF67E0773, 0xFEBE03A6, 0xFA57FFCC, 0x00C70559, 0x01BA0734, 0xF8BD0838, 0xF68906D0, 0xFBC207FF,
-0xFB7C1164, 0xF7E60DAA, 0xF0520FB4, 0xED7A0546, 0xF81BFEEF, 0xF90E030C, 0xF79B0252, 0xF75C09BD,
-0xF6C207A8, 0xF60602D5, 0xF7DFFEE9, 0xF118028E, 0xF392FF9C, 0xF0CDFA76, 0xF143F847, 0xFD71F875,
-0xF927F8D4, 0xFEDBF728, 0xFBC3FB01, 0x03480316, 0xFF82061B, 0xFFBD0042, 0xF9BD023C, 0xFF790250,
-0xFFA90598, 0xFE350268, 0xFC77067A, 0xFA22040B, 0xF198062D, 0xFD78FB8D, 0xFC61FFAA, 0x009A0D61,
-0xF909058A, 0xF1A8FE82, 0xF71DFE16, 0xF865FECE, 0xFDA50158, 0xF784FF86, 0xF9200453, 0xF68803AF,
-0xF0DC037C, 0xF2FFFE8B, 0xF7E0FB00, 0xFB33FD5E, 0xF833FC81, 0xF4F5F5F1, 0xFD1C00FC, 0x002BFECD,
-0xF6C501EA, 0xFC670232, 0xF9BFFF3E, 0xF60D03BC, 0xF30E0096, 0xF0A0F3B6, 0xF3FEF84F, 0xF8A5F6A6,
-0xFFB6F42B, 0x0363F524, 0xFFBDF4E1, 0xFF60FAD5, 0x05C3FCC3, 0x014FF92F, 0x0316FB2D, 0xFC2401B3,
-0x00FAFD4C, 0xFE3CF99F, 0x00E30278, 0x0129FDB0, 0xFD07FA13, 0xFFB2FC56, 0x0051FA95, 0x069602FF,
-0x048905A6, 0x01D704F1, 0x0056FC54, 0xFBFEFC08, 0x04EDFC6B, 0x0087030B, 0x016AFAA2, 0x01EFFDB1,
-0x0987F995, 0x0879FF4D, 0x0B0CFFB7, 0x070C02CC, 0x05C804E1, 0xFB6AFF68, 0xFF28FCFF, 0x013700F0,
-0x0558FD07, 0x03D200E8, 0x06E7FB15, 0x052B03FD, 0x07FFFD0D, 0x0600FD6C, 0x05F80493, 0x06340137,
-0x033706F3, 0x068D0A83, 0x02340294, 0x03CCFC2A, 0x0CEA0110, 0x0CC00A77, 0x0A8A0B85, 0x050508C7,
-0x0BF2080B, 0x0CF91173, 0x05AF139F, 0x01CA1434, 0x009F0F28, 0xFC8811E2, 0xF1C411B6, 0xF5170F9C,
-0xF1C20B05, 0xF5090A39, 0xF3B01083, 0xEE0F0DF9, 0xEFFE0501, 0xEF8705C5, 0xF0C60249, 0xF032FC82,
-0xF428FDE5, 0xF2B0F831, 0xF062FB83, 0xF409FB84, 0xF4EEF536, 0xF001F338, 0xE92BF63D, 0xF68CF331,
-0xF5F1EDA3, 0xFCB0F31E, 0xFCF9F227, 0xFB35F0FF, 0xFA9CF276, 0x0103F82E, 0xFC00F65D, 0xFED5F6AD,
-0xF832F562, 0x006CF06F, 0xFB3CF573, 0x01F1EACA, 0x0192EB60, 0x0A01F591, 0x08EAF8B2, 0x0758FD12,
-0x07D8FBA3, 0x0C26FE82, 0x02AEFDDF, 0x05AE0070, 0x04890509, 0x018600C3, 0xFE230726, 0xF7EE0261,
-0xF812FE65, 0xFDA3019E, 0x00450448, 0xFACD0296, 0xEE8200D0, 0xEDC2F945, 0xF216FBD3, 0xF364FA2E,
-0xF0D1F58B, 0xEF72F270, 0xF414EED5, 0xF97FEF9C, 0xF466EC1B, 0xF96AE958, 0xFDC7E810, 0xFCC1EB22,
-0x02D5F0E6, 0x043BEF6F, 0x0BE6E959, 0x0A78EEF4, 0x0D36F0B9, 0x0AA4F329, 0x0926F6F9, 0x090CF37F,
-0x0AA9F3F9, 0x0B5DF02C, 0x0BB3F3FA, 0x10F7EE6B, 0x0CEBF93A, 0x1159F769, 0x0D3EF3A2, 0x0F69F89C,
-0x17CBF891, 0x16AD047B, 0x11EB01EB, 0x0B27FF61, 0x0EF00029, 0x0D380085, 0x0CDB034E, 0x08D001EB,
-0x152D01EA, 0x143B0736, 0x0F3F08B0, 0x0B220BA9, 0x0FA908A7, 0x04D70FF3, 0x0319128D, 0xF98A1148,
-0xFA030F36, 0xF412019A, 0xF7E10932, 0xFB10021B, 0xF8770325, 0xF941FF1E, 0xFB37FD19, 0x0076FE06,
-0x0710FE7A, 0xFA5D02A0, 0xF7C702CB, 0xFFF5FD46, 0x0368FA69, 0x00D9F9BF, 0x02C2F84A, 0xFB2EFA4E,
-0x072EF77F, 0x04B2FAA2, 0x09F6FE8D, 0x08C7FE58, 0x0B3D0083, 0x0BD701BF, 0x08C1045D, 0x0A0900B1,
-0x07110445, 0x0A810487, 0x075605A4, 0x0804053D, 0x0F850765, 0x05FD0A16, 0x021107A2, 0x0367063E,
-0x07D204F4, 0x0B610FD1, 0x05D41208, 0xFB40152E, 0xFE0A09F3, 0xFE9F0D80, 0xF9E413D0, 0xF01A1358,
-0xF16B0CC8, 0xF2C9FEF1, 0xF03E04FD, 0xEF5E0565, 0xEF650660, 0xF05E04D8, 0xF162FFC3, 0xF08AFFEB,
-0xEB77FEC1, 0xEAACFD0F, 0xEE97F425, 0xEC0AF22B, 0xED72F746, 0xECC0F344, 0xF20CECB6, 0xF963ED11,
-0xFB69EB40, 0xFCC9ECA8, 0x0011F0C8, 0x041CF440, 0xFD85F827, 0xFC65F6D2, 0x0576EFB3, 0x0337F3A2,
-0x00AFFB09, 0xFC9CFA7A, 0x01C9F46D, 0x02B3F1D3, 0x0511FA2C, 0x03FBFA26, 0x03A4FB6F, 0x06DDF6AE,
-0x0797FA46, 0x06910082, 0x02EC0456, 0x075DFFF6, 0xFE5E00D7, 0x06B0FE4B, 0xFB69012D, 0xFC7FFEDF,
-0xFA0BF977, 0x0139FAC3, 0xFE76FB3C, 0x020DFE19, 0xF784FC35, 0xF91CFDCE, 0xFBB6F74E, 0xFEEEFE68,
-0x00ACFD45, 0xFCE402B4, 0xF571FBDC, 0xF88DF661, 0xF312F12B, 0xFB53F0AA, 0xFFC8F00E, 0x005DF1A0,
-0xFD36EDE4, 0x01C8F2D8, 0x0504F0D8, 0x0451F3B1, 0xFE5DF804, 0x03C2F566, 0x02C7F116, 0x080CEEC0,
-0x070FF56A, 0x093AF3A1, 0x0CAEF352, 0x0ECDEE80, 0x0F0FF592, 0x0C71F98A, 0x1153FD52, 0x1333FF76,
-0x167D01CF, 0x0FD701A5, 0x0D0400B0, 0x0DD50277, 0x101EFDF4, 0x14710215, 0x10A107CB, 0x0BD70A69,
-0x05950A54, 0x0B1B089C, 0x0D4904CC, 0x0A230DEA, 0x01EB07D0, 0x055A0631, 0xFBD70DF9, 0xFF710B5A,
-0xFB530BC8, 0xF9F907E9, 0xFFDE058E, 0xF8C305A9, 0xF761007B, 0xF730FA2C, 0x0149FA16, 0x0190FBDB,
-0xFD2DF948, 0xFC42FC29, 0x00A2FBD5, 0x035CFC54, 0x0746FA89, 0x01F4F92A, 0x0228F819, 0x066CF2EA,
-0x088DF62E, 0x0A86F661, 0x092BF9F5, 0x100CFB7D, 0x159300A5, 0x141904E6, 0x0DC6040E, 0x0C8B03B5,
-0x0E850500, 0x0AA60930, 0x09740B88, 0x04AE09B8, 0x0BE20703, 0x0DA7081A, 0x0B010C13, 0x08FF10D1,
-0x0ABC0CE1, 0x03881736, 0x045517B4, 0x011A10BD, 0xFBDA0CDA, 0xFC901452, 0xF70A11A4, 0xF39E16C3,
-0xF4B30BE6, 0xF23A08FA, 0xF41D0CD9, 0xECFF099A, 0xED1C06C0, 0xF2FF00C5, 0xF25FFBCB, 0xF0EBFEF6,
-0xF1510048, 0xFB71FA59, 0xF414FB17, 0xEFC5FA14, 0xF4B1FEC7, 0xF791F888, 0xF71CF550, 0xFC8AF78A,
-0xFFCAF59A, 0xFD99FB2C, 0x024DF92C, 0xFF61FACA, 0x031EFEE4, 0x053200E6, 0x00240305, 0xFA850144,
-0xF9F602B3, 0xF642F9EC, 0xF6EA00F6, 0xF84DFE3C, 0xF4EDFAA1, 0xFE62FC1B, 0xFA67035E, 0xF7A501FB,
-0xFC350341, 0xF8D2FC0A, 0xF99E0349, 0xF85A007F, 0xF25A00CC, 0xF58AFA28, 0xF742FA73, 0xF901FB79,
-0xF7C20062, 0xFADCF6CD, 0xF6FEF882, 0xF44CFE65, 0x002CFB4F, 0xFA5CFFF2, 0xF38CFE56, 0xF001FB20,
-0xF1B7F591, 0xF352F67E, 0xF504F4D2, 0xF83FF383, 0xFA0BF226, 0xF223F58E, 0xFAACEDDE, 0x00A5EAD0,
-0xFBB5F04C, 0xFB66F131, 0xFBF1E7C8, 0x03A1EA7B, 0x0454EF37, 0x02E4EE75, 0xFDA4EB72, 0x07D1EA88,
-0x0AA1EBCA, 0x0381EFC2, 0x02C2F05F, 0x0AE6E94D, 0x1307EB15, 0x11FAEF3C, 0x10BDF1C0, 0x0CE2F60E,
-0x0FADF456, 0x1310FC34, 0x1157FD76, 0x0FD50049, 0x0F71FE77, 0x0B47FA90, 0x103CFFCD, 0x0749FBA8,
-0x1354FA24, 0x0E65FFB3, 0x0A6303B1, 0x07B302CD, 0x0BDF0BB4, 0x05120848, 0x059106A3, 0xFA260772,
-0xFD5200CC, 0xFE99024E, 0xFC66FDD6, 0xFD520066, 0x00D2FE8C, 0x01DEFAF2, 0x033EFEC8, 0x0234FDF6,
-0xFF9DFF7F, 0xFE94FD17, 0x02E6F88D, 0x02B7F9A1, 0x0436F9CD, 0x040FFF63, 0x0153FA5F, 0x052EF764,
-0x0657FB3F, 0x0967005A, 0x0ABDFE55, 0x0965FEA4, 0x0FEEFDE1, 0x0AADFF83, 0x13C00455, 0x08750631,
-0x0E1A0DF9, 0x0DAE095E, 0x056C0629, 0x0C110D56, 0x0B700981, 0x060F082B, 0x07FD087B, 0x07AF10A8,
-0x018D03A9, 0x019D0465, 0xFDAB08BD, 0xFA33014E, 0xFFD00387, 0xF94C0135, 0xFFE70279, 0xF77B0358,
-0xF56F0307, 0xF367FB02, 0xF8B0FD66, 0xF954FFB8, 0xF67900E6, 0xF22CF748, 0xF048F201, 0xF02CF3A2,
-0xF1FFEAA1, 0xF841E83F, 0xFB0FE94A, 0xFA48EF01, 0xFEECEE4B, 0x01AEE5FC, 0x0610E8CF, 0x0805E848,
-0x0D55EE76, 0x0A1DF475, 0x0905F405, 0x0976EDCE, 0x0853F679, 0x0A56F4A8, 0x0E2BF634, 0x138AF843,
-0x0EE1F81F, 0x0AB3FC46, 0x0A6AFCAD, 0x0C7CFE82, 0x12910090, 0x088B0167, 0x048006A4, 0x0A1F028A,
-0x042501BF, 0x07810124, 0x05860043, 0xFE4C022D, 0xF976FC63, 0x03ECFDD5, 0x03EDFFF3, 0x036D0164,
-0xFB08018D, 0x007603D2, 0x0187FC30, 0xF857041D, 0xFCF3F952, 0xF932FE3E, 0xF9D6FAF0, 0xF960F638,
-0xFB62F2C6, 0xFC57EFC6, 0xFF50EE8F, 0x0781F073, 0x0752F477, 0x0879F164, 0x08B9F666, 0x04E3F4BB,
-0x009DF154, 0x0994F617, 0x0CEBF63F, 0x0BD5F456, 0x09EFF66C, 0x0A5DF4EB, 0x135FF3CA, 0x1088FC05,
-0x14BA057A, 0x0C280250, 0x0B9D028C, 0x0A2C06A5, 0x0DEB08A2, 0x0A0006A0, 0x01F40B54, 0x043A030D,
-0x0407FEEB, 0x0238FFC6, 0xFEA20786, 0x02370385, 0x0768FBD5, 0xFD0D01A9, 0x052803E2, 0x01FBFD7A,
-0xFB16003B, 0xFC200115, 0x03D802E6, 0xFD4106C1, 0xFC190006, 0xFBE302D1, 0xFCF6FCCA, 0x0000FAD7,
-0x0239FCBA, 0x0190FF7F, 0x01C70257, 0x033F011E, 0xFB8CFDAB, 0x001AFBF8, 0x00C00057, 0xF911FCFE,
-0xF5FAFBCC, 0xF812FC34, 0x0257F740, 0xFF3FF890, 0xFB7EF8B6, 0xFEEBF802, 0x015CF6C1, 0x066AF7D4,
-0x03B0FBAE, 0x0170FB8D, 0x0316FA51, 0xFD6FFAAF, 0x03B8F996, 0xFA3CFE9D, 0xF8CCFDB7, 0x01A6F7C9,
-0x06BFF5E4, 0x08B4FBFB, 0x0589FC60, 0xFE84FB31, 0x0233FC54, 0x0714FA63, 0xFF09003C, 0x015D01D0,
-0xFD29FF7A, 0xFADCFEDB, 0xFD91F75C, 0xFD21FB6F, 0xFFC1FAA1, 0x004DFCBD, 0xFCF40229, 0xFFBCFCD0,
-0x018AF45E, 0x01FEFC28, 0xFE740371, 0xFBCCFCB7, 0xF913FEAD, 0xF700FC15, 0xFAF9FBF5, 0xF288FB11,
-0xF6C2FC68, 0xFA87F937, 0xF9C0F034, 0xF7CEF985, 0xFA01F75F, 0xF7BAEEA2, 0x04CDF17E, 0x0161F48F,
-0xFE67F3F1, 0xFBCEF416, 0xF993ECE7, 0x060FE91B, 0x0282EE99, 0x0382F22E, 0x036AEABA, 0x06F0EA62,
-0x08DCEB0D, 0x1043F103, 0x0EEBF557, 0x0BF6FA22, 0x0E3BF771, 0x09D6F92A, 0x0CFAF70F, 0x0D39FCDD,
-0x0E04FB9D, 0x0AA9FC14, 0x0B2E01AD, 0x082FFEFB, 0x05BEFD3C, 0x0968FB4B, 0x0C13FE9E, 0x0524044B,
-0x02E804B0, 0x07AAFC23, 0xFF4F046D, 0xFBD6F8E2, 0xFF50FA85, 0xFBA200D8, 0xFFFBFCE4, 0xFB31FDCD,
-0xFEFBF8FA, 0xFFAAF666, 0x0771FA08, 0x04D8FAC1, 0x030FFB5F, 0xFADEF807, 0x05E3F3B8, 0x043FF4BD,
-0x0536F317, 0xFE1EF575, 0xFF0FF0B3, 0x0334F351, 0x0218F427, 0x07A3F25D, 0x042AEFB5, 0x0648EFCB,
-0x11E6F295, 0x0D39F5FC, 0x0DAFF2B6, 0x0B3CF41D, 0x10C4FBCD, 0x0C32FFA2, 0x0C2902C8, 0x0B6A05F3,
-0x12BE0090, 0x0E0D01DF, 0x138000D2, 0x0E19024D, 0x0CA80C5C, 0x0A8509DA, 0x0BC410C2, 0x07B30C72,
-0x05AE0D5C, 0x01C71189, 0xFF2E1193, 0xF3FD0A4F, 0xF709059D, 0xF78B05CF, 0xF6E30941, 0xF72D0669,
-0xF58701AD, 0xF9550331, 0xF8D6FF65, 0xFB47FE6B, 0xF901F9FF, 0xF964FD51, 0xFBE9F8D4, 0xF908FC20,
-0xF524FA29, 0xFA07F620, 0xFE8DF95A, 0x0089F944, 0x00C5FD31, 0xFC62F0FB, 0xFE7AF3BD, 0x066DF793,
-0x03F4FD88, 0x00EAFA21, 0x02C9FE45, 0x01D7F9E6, 0xFF8BFCA0, 0x0539FF48, 0x0031FC68, 0xFF53F9EF,
-0x031BFBB2, 0x0303FC1B, 0xFB44FB62, 0xFF43FC5A, 0x0539FB70, 0xFD8903F3, 0xFC1CFD2B, 0xFB1601E5,
-0xFAA7FBCA, 0xFDC9FCB8, 0xF708FBAD, 0xF6A4FB0E, 0xF732F7FC, 0xF342F3F1, 0xFB91F336, 0xFCB2EF95,
-0xFCA4F397, 0xFE9DF866, 0xFD2DF7E9, 0xFF4CF745, 0xFB7FF1F6, 0x0025F489, 0xFF88F635, 0x01B6F002,
-0x0001F624, 0x038FEF3F, 0x01E2F00B, 0x0618EDDF, 0x09ADF5E6, 0x0617F5FF, 0x050BF571, 0x089FF045,
-0x06A2FA1A, 0x0865F5DA, 0x060BF6E3, 0x0797F84B, 0x025CF5FD, 0xFF71F787, 0x00A8F8B4, 0x0773F63B,
-0x0444FC4E, 0x0A8CFA46, 0x05E5FEDB, 0x05AEFCAC, 0x0595F8AB, 0x043DFD99, 0x06B802B4, 0x0CCC059D,
-0xFF440159, 0x03FBFAB0, 0x01CA00B9, 0xFEE9FCB4, 0x040AFA3F, 0x00A6F9A6, 0x0434FB9B, 0x0282FEEB,
-0x039EFBC0, 0xFE2DFB16, 0x05E7FEB0, 0xFF59FBFA, 0x0020FAD7, 0x0022FB54, 0xFE65F7BC, 0x0284F20E,
-0x04D0F8BB, 0x05C9F164, 0x02F1F398, 0x052EF61B, 0x054EF90D, 0x0774F0B6, 0x04FDF895, 0x09C4F82C,
-0x0B2DFAD1, 0x0087F78B, 0x08A9F6D7, 0x0507F454, 0x065EF617, 0x0E5EFAD8, 0x0A56F815, 0x0B63F9E9,
-0x0C90F9FA, 0x0CA7FD02, 0x0E2DFE2C, 0x0FA00456, 0x07C5023B, 0x0AAA029A, 0x07390507, 0x06620367,
-0x08D50791, 0x09BE0978, 0x018A0D75, 0x0793070E, 0x05BD06C8, 0x094F081A, 0x04480E95, 0xFA490E4D,
-0xF63D0513, 0xF3C206F2, 0xF56E0110, 0xF17E0631, 0xEF65FF30, 0xEAFDFD0D, 0xF194FC0D, 0xF53FF907,
-0xEF61F9ED, 0xFB09F297, 0xFA8EEFFB, 0xFFCBF24D, 0xF6B4F51E, 0xF3FAF56D, 0xF8DEED37, 0x0125F14A,
-0x02D6F16F, 0x0178F1E4, 0x00DEF2D6, 0x0356F13B, 0x0BD9ECE4, 0x0C5FF1C1, 0x0BB2FB6C, 0x0B22FE0F,
-0x0AEFF94B, 0x0AD3FEDB, 0x07BAFF43, 0x03D5FE91, 0x0C480067, 0x07D00168, 0x054902AA, 0xFD22FFF0,
-0x074203CE, 0xFE79FF6D, 0x0442028C, 0x01350020, 0xFDF808EF, 0x008606C4, 0xF6E20886, 0xF6B20184,
-0xFB1BFD82, 0xF758FF8F, 0xF65B0045, 0xF0150335, 0xEE0CF9FB, 0xF653F160, 0xF781F40A, 0xF7E9F5B4,
-0xF249F98B, 0xF47EF23B, 0xFC1CEDCC, 0xFBEEEACD, 0xFAE1EEDA, 0xFEE8EECE, 0xFDFCE950, 0xFE19ECEB,
-0x0277E5C8, 0x01C2E963, 0x06A2E7EC, 0x08BFEF64, 0x161BEB76, 0x0D16F010, 0x0A33F259, 0x1042F616,
-0xFC9D118B, 0xFE3708FF, 0xFB5107CB, 0xF72110D4, 0xF4E60FFC, 0xF8F000A3, 0xF80A030D, 0xF68C0575,
-0xF9070746, 0xF8F9FF89, 0xFA49FF50, 0xF94AFE4E, 0xFA4AFB07, 0xF960FE93, 0xFCE2F7DD, 0xFC24F775,
-0x062CF543, 0x0870FBDB, 0x0B10FC9C, 0x0BBB057E, 0x0A33019F, 0x137C03A2, 0x0E96081D, 0x0AAD08A0,
-0x00B20D85, 0x086C0CD0, 0x05430D7E, 0x06D30A95, 0x05D40EEA, 0xFEA90FB0, 0xFFA0128A, 0xFC0C170B,
-0xF64C1284, 0xF5941833, 0xF4430F56, 0xEFE60DC9, 0xF59D0D3B, 0xF4AD07A7, 0xF2E80B8E, 0xF3820935,
-0xF1070691, 0xF1290737, 0xF184045E, 0xEED5FCDD, 0xECE1028F, 0xE9F101A8, 0xEC25FF88, 0xF343F8D3,
-0xF66BFC19, 0xF0F5FB52, 0xF2B1F6A1, 0xF5F7F52F, 0xF68AF594, 0xF14AF05C, 0xFB6EF17C, 0xF33CF104,
-0xFA26EBA6, 0xFE61EB0E, 0x02FFEF52, 0x0594EC0D, 0x0BC5EC6F, 0x0D26EDAF, 0x1346F2B5, 0x1154F3DF,
-0x0F2FF7E7, 0x1093FABB, 0x1214FABC, 0x14ADFD59, 0x12D901E3, 0x0F3303AE, 0x1442089E, 0x11E5095B,
-0x0FAB0D58, 0x0E450CB4, 0x0AF0121F, 0xFFBE1048, 0x026A0C74, 0x038B0E1E, 0xFBD60F7A, 0xF99C073D,
-0xFAD60CB4, 0xF9FB06BE, 0xF5FB03EB, 0xF8800454, 0xF65D07EB, 0xF4C30149, 0xF495FECA, 0xF95EFA5B,
-0xF77FF4B1, 0xFD49F5E9, 0xFE38F76C, 0xFA4BF455, 0xFFA5F297, 0x0097F792, 0xFF25FB93, 0x0278F32D,
-0x03E5F1F1, 0x0AE9F583, 0x0424FA13, 0x08ECF5DA, 0x0DCEF33D, 0x1402F217, 0x0FE9F5E4, 0x1288F850,
-0x1219FA6E, 0x16C2FD56, 0x1352006B, 0x19D4FB8A, 0x16510304, 0x1B4D09A9, 0x17760DBC, 0x198D086A,
-0x18AA0F1B, 0x17531018, 0x135A1306, 0x10E518D4, 0x0C141D1F, 0x059116FD, 0x04F617B3, 0x07B61B44,
-0xFC391B01, 0xFD861AE0, 0xF9D1188D, 0xF53F171E, 0xF2DA13C7, 0xF3B8125C, 0xF0830B1A, 0xF1D908BD,
-0xF1DC09B5, 0xEDCF0782, 0xF3A101BF, 0xF56AF9A9, 0xF584FD21, 0xFA7E00C7, 0xFF15FC47, 0xFA92FBA1,
-0xF98FFBD4, 0xFF88F3EB, 0x004EF7A9, 0x01B4F85F, 0x0274F87A, 0x073DFB46, 0x06EA01DC, 0x0548FFD9,
-0x0B7B00D4, 0x03C6FE95, 0x0995FFF8, 0x01B702D9, 0x054100B9, 0x03E30222, 0x0410031D, 0x08880271,
-0x07E303ED, 0x09A807C9, 0x0B5608DC, 0x06800B51, 0x05060B52, 0x00E51119, 0x03920A46, 0x03C30DA4,
-0x085F133D, 0x00C91189, 0xFFA30CBF, 0xF8DC1266, 0xF8701296, 0xF1F61479, 0xF2AA154F, 0xEDA009FE,
-0xEE4A0860, 0xEFA80A4F, 0xEED8029F, 0xED5FFBC4, 0xEDFA0013, 0xF318FB40, 0xEDE8FD23, 0xEFD9F261,
-0xF707F790, 0xF3FFF6C6, 0xF67DEB8D, 0xF92DEAFD, 0x01C8F49D, 0x0139F5EF, 0xFD68F506, 0x06FEF328,
-0x06F4F1B2, 0x0611F8BE, 0x072FF62B, 0x0842FEBD, 0x0554FCE1, 0x0BD1FA63, 0x04DEF782, 0x0541F8F1,
-0x061DFBA9, 0x03F9FA85, 0x098AFA15, 0x0D13FC8D, 0x05B902FB, 0x065AFBFD, 0x0D2B0102, 0x0D320003,
-0x0C280411, 0x0AFB02F1, 0x0C4E0A6F, 0x0AC90508, 0x0ED1061E, 0x0E650B24, 0x07580F5F, 0x01CE1601,
-0x00140E8F, 0x00E3099A, 0x00700DA6, 0xF9AF09ED, 0xF76E0C95, 0xF64F08C4, 0xF1ED0765, 0xF4CE00A6,
-0xF729FDFA, 0xF7E8FAEC, 0xF918FB03, 0xF590F748, 0xFCEDF5CD, 0xFA53F7D5, 0xFD7EF0C6, 0x011EF022,
-0x0C53EDA8, 0x0B31FA76, 0x0A69FE10, 0x09BBF6B4, 0x0C30F53F, 0x0D1AFACF, 0x0D66FABB, 0x0DA4FE19,
-0x0DECFFC5, 0x0E59F9E0, 0x11FE003C, 0x12D304A3, 0x126C08A7, 0x0E480670, 0x0ED70911, 0x115106E6,
-0x0D850EA5, 0x0DD60C3B, 0x0C840771, 0x0F3A0C37, 0x0DAD125B, 0x0AFE1231, 0x0BC915EC, 0x08341504,
-0x024E16B4, 0x04C31380, 0x011212D8, 0xFCE30D7E, 0xFABA1197, 0xF8B70BE1, 0xFB1F09D6, 0xF4C20C7F,
-0xF3F40829, 0xF7060761, 0xF0250924, 0xF0C40182, 0xF888FDBA, 0xFF22FD6F, 0xF84D028F, 0xFD02FC5E,
-0x0017FB68, 0x0338FCE0, 0x0880040E, 0x03650041, 0x08370472, 0x0AE301B9, 0x0C25046E, 0x09140356,
-0x05690B0E, 0x085F0B71, 0x096205FE, 0x04170C41, 0x09BD07F5, 0x05420A4D, 0x001513B0, 0x022A13C1,
-0xFDA80CA7, 0xFFCF0DA2, 0xF8A50B21, 0x00360951, 0x016A0DD4, 0xFB8307C2, 0xFF9E0D4F, 0xFE6311F0,
-0xFD2E1548, 0xF3C20EAE, 0xF0290C9A, 0xEE5A0F5B, 0xF2C207B6, 0xF4190847, 0xF42F02B8, 0xEF90065D,
-0xF177012D, 0xF482FF77, 0xEF590545, 0xF175FE7E, 0xEF34FAD9, 0xF184FB9F, 0xF292F1FF, 0xF47AF40C,
-0xF89CF31C, 0xFDADF336, 0x0124F683, 0xFF1EF95F, 0xFE2CF754, 0x013DF7F5, 0x05BCF8E4, 0x01A8F921,
-0x047AFD08, 0xFF8DFF4B, 0xFD7DFDD2, 0xFFB2FA44, 0x007EFCC6, 0x018AFCD8, 0x05A2FECC, 0x01BD0314,
-0x00CB020E, 0x06AF0047, 0xFFEBFE02, 0x036EFC11, 0xFF43FB37, 0x0795FF19, 0x08D20115, 0x05D80017,
-0x05880087, 0x0A7C062A, 0x043DFF12, 0x0359FE81, 0x07870999, 0x02B7072E, 0xFF0405DC, 0xFD0600A5,
-0x023E0457, 0x03E60B0B, 0xFA300402, 0xF77A05F4, 0xF052FF3A, 0xF46AFE8D, 0xF729FD1C, 0xF290FAD7,
-0xF968F591, 0xF95CF1F9, 0xFA53F227, 0xFE1CF0BE, 0x01F4F371, 0x0193EF9C, 0xFFD2EAD7, 0x0358EE9F,
-0x08B8F1DF, 0x0E3FF4D2, 0x0B3BF80D, 0x0DEBF687, 0x1385F531, 0x0FD2FD38, 0x16CAF73C, 0x14F400E7,
-0x0C81FE0A, 0x13B2FD3C, 0x118E0317, 0x127C001E, 0x11C906CE, 0x0B5B0625, 0x0F9A0278, 0x12D80BA7,
-0x0DF80ED8, 0x0C7008CD, 0x11F8090D, 0x0FC60E8A, 0x0D96102C, 0x078A12A2, 0x06C71243, 0x05FA13F5,
-0x0A6F1108, 0x0DD91B05, 0x0336193F, 0x0600162B, 0xFB8013EE, 0xFA4C1829, 0xF52C1142, 0xF3330EE5,
-0xEE38123A, 0xEB6C09D5, 0xF24902A0, 0xF35702C9, 0xF4DFFD51, 0xEFC602C8, 0xF7E6FBC3, 0xF637F721,
-0xFC50FB1B, 0xFE1AFA4C, 0x003AF567, 0x01A1F0EC, 0x08B6F3CB, 0x0E1AF545, 0x12D5FBA5, 0x0B43FBD9,
-0x11AD0494, 0x100C026D, 0x0F21032A, 0x12C80B2A, 0x08E711C2, 0x0A7D0F94, 0x0C751081, 0x04E50FB9,
-0xF93EE851, 0xFCAFEC99, 0xFDFBE850, 0x022CF06A, 0x0569EF6A, 0x082CEF30, 0x012AEE1A, 0x0B09EEE9,
-0x0A04F0E9, 0x12CDF7D8, 0x142CF83C, 0x120A00A1, 0x138E067C, 0x0F9A0915, 0x0AC91168, 0x0B660FF6,
-0x050713F7, 0x042812BA, 0xFB541896, 0xF4AD11E3, 0xF7DA0C39, 0xF59A0ADC, 0xEE1F0C7D, 0xEE790839,
-0xE8E10935, 0xEBA701CC, 0xE3C5FF71, 0xE20BFF1C, 0xE5A3F68E, 0xE7B9F777, 0xE465F183, 0xE4C5F044,
-0xE97AE9E1, 0xF261DEEA, 0xF931E618, 0xF842E642, 0xF87AE382, 0x0254DFD0, 0x0828E606, 0x0041E548,
-0x09D6E549, 0x0D4DE6B2, 0x13D6E525, 0x137EE896, 0x139FE760, 0x150EE72F, 0x1D26EE03, 0x2185EEC3,
-0x1E9EF50A, 0x230FFE2B, 0x25E7FB78, 0x236EFEDA, 0x2568057E, 0x219D07D0, 0x1FC40DF0, 0x245A1145,
-0x1A9F1A50, 0x121F18DC, 0x12EC1690, 0x113A17E8, 0x0B9521FE, 0x03B91CED, 0x039F182F, 0x043016B8,
-0x01921A7F, 0xF0E0185E, 0xF2911590, 0xF3B90D97, 0xF51B13C8, 0xEDEE09C9, 0xF1E20676, 0xEE5601AB,
-0xF29BF6BD, 0xFB42FA87, 0xFCB7FA70, 0xFF33FAF4, 0x0012FB34, 0x00DDFCED, 0x00C1F9F5, 0x03CFFD47,
-0x008FFB21, 0x04C6FB1C, 0x096B0242, 0x060DFCDB, 0x0990FA70, 0x0C300019, 0x0B9B02BC, 0x107A04F2,
-0x0D9706D4, 0x0DB70D86, 0x0B890D97, 0x0C040ACF, 0x0FB107D9, 0x0C9811C6, 0x09A80EE5, 0x0B671480,
-0x08F81447, 0x040D171D, 0x02EF168E, 0x080E1797, 0x046713D5, 0xFF472002, 0xFC0E1D35, 0xFA7A1AC7,
-0xF8CF1D17, 0xEE6B1C36, 0xECBA1997, 0xE85B1D31, 0xE7011420, 0xE9561017, 0xE3640C37, 0xE4D00777,
-0xE8500791, 0xEF2804CB, 0xE64D03B7, 0xE81A06C9, 0xE6C90159, 0xE4D501EE, 0xEAE4013C, 0xE5470083,
-0xE72AF94F, 0xE895F7FA, 0xEAD9F6E4, 0xEBC7F38D, 0xF2AFF8CE, 0xF783F396, 0xF75FF378, 0xF721F8FC,
-0xF545F6EC, 0xF516F47D, 0xF95EF3C6, 0xFAF4F923, 0xF95AF34B, 0x000EEDA1, 0x028AF3E0, 0xFE4BF58A,
-0x06CEF569, 0x09A5F3E7, 0x0C5EF7B9, 0x0E49FA3A, 0x08D104DC, 0x07AE01FA, 0x053304C6, 0x0793FF7F,
-0x064E0A38, 0xFE440596, 0x022804BE, 0x0444085B, 0x0009081C, 0xFC4F0859, 0xF5520355, 0xF8370231,
-0xFF57049E, 0xF4CE084C, 0xF1C40302, 0xEFFBFA02, 0xF2DDFF85, 0xF51AFAEA, 0xEDF3F836, 0xF187F74E,
-0xF4BBFBEC, 0xF3C7F837, 0xF13FEDE7, 0xF442F02D, 0xFAC1EB66, 0x02EFEC28, 0xFFF4EC3F, 0x034FEF22,
-0xFE8DEC54, 0x020EEA1B, 0xFF87EAAD, 0x07B0F70D, 0x0BDBEAFD, 0x174AE5CE, 0x0BD3EC35, 0x123DEBEA,
-0x14C5EDA4, 0x1D68EDC1, 0x1DD5F6C2, 0x234EF8E7, 0x21CFFF87, 0x1C3E06F9, 0x1AE80156, 0x1CFF074E,
-0x1FC80A34, 0x1B7A0F81, 0x19730E14, 0x166B179E, 0x192D16B9, 0x14DA191E, 0x0F651952, 0x106013F9,
-0x09281BF0, 0x026A1DBC, 0xFC0E184F, 0xF8E5170C, 0xF9501453, 0xFB4D1B97, 0xF7BA1112, 0xF54612F6,
-0xF6BE0AFB, 0xF4340C6C, 0xF20A101C, 0xF6E90782, 0xF3A406F3, 0xF7A60338, 0xF124065F, 0xF1CF0349,
-0xF2E6FCD3, 0xF9EDFC96, 0xFB70FB8B, 0xFDF2FFA7, 0xFA4EF6E6, 0x0106F7EF, 0x0302F8FE, 0x0918F2CE,
-0x0679F4DF, 0x11F2F8C7, 0x1427FD14, 0x0FA90664, 0x12F507C6, 0x137F07F9, 0x14DF09D3, 0x111D0C1D,
-0x09280FE0, 0x0D2F13A0, 0x0FDA1274, 0x107419D8, 0x0D641A94, 0x041F1E7C, 0x0857220F, 0x018D2601,
-0xF96E2E93, 0xEEED22F9, 0xEDF122C5, 0xE8E612A6, 0xED9A1685, 0xEBF410E2, 0xE39A0D5D, 0xE6820B09,
-0xE70A0790, 0xE786048D, 0xE3C106EA, 0xE5F5FD26, 0xE155FD58, 0xEC17FDE0, 0xE941FBA3, 0xE938F410,
-0xEA95F9CB, 0xEE03F211, 0xF88EF467, 0xF46DF64D, 0xF972EEF5, 0xFAC0F4F3, 0xF819F2F9, 0xFC7CEFFC,
-0x008EF24C, 0x0568F104, 0x02DDF835, 0x0208F642, 0x017BFDA3, 0x0474FB4B, 0x03D100E0, 0xFE6DF9C6,
-0x0602FE30, 0x035BFC25, 0x07A7F9AE, 0x0906083A, 0x0AE90969, 0x057C06F6, 0xFFA60ABF, 0x002609A9,
-0xFE5A114B, 0xF8170B67, 0xF5750BD5, 0xF3EB0660, 0xEF4E04B6, 0xF0C201DD, 0xEFAB0027, 0xF265FBEA,
-0xEEA2FF23, 0xEFA3FBDC, 0xF3E00259, 0xECFE0201, 0xEA3DF558, 0xF2ABF1E7, 0xFA0CEF15, 0xEF19F241,
-0xF26BEE10, 0xF660E56C, 0xF8FDE7BF, 0x0149E38A, 0x0160E856, 0x032AED98, 0x0BCDEFE1, 0x0B31F1B6,
-0x05FAF194, 0x08B7EB2E, 0x13ADED8E, 0x0EFAF25E, 0x1112F34E, 0x134DEFE4, 0x1554F2FC, 0x14DFF67F,
-0x1989F8D3, 0x19F6FBDC, 0x161BFEE2, 0x192502C7, 0x1A6E076C, 0x1B0205ED, 0x137C0620, 0x16DE08BE,
-0x1678139A, 0x0E0715E8, 0x0E6A1705, 0x0CDA1335, 0x0AEF0DA6, 0x0D3713AC, 0x08121764, 0x035819FC,
-0xFE1E19C1, 0xFFC818D2, 0xF6EE18A2, 0xF3F21190, 0xF04413AA, 0xF1881017, 0xEF15071B, 0xE9C2003D,
-0xF238003E, 0xF4330088, 0xF654FD53, 0xF653FCE9, 0xFA26F87E, 0x0008F993, 0xF9F2F6C6, 0xF716FC2E,
-0xFE6BF20F, 0xFF55F1CB, 0x015FF741, 0x01F7F6DF, 0x063FF0E3, 0x0C6FF8E3, 0x139FF893, 0x15FE01E1,
-0x1515FF14, 0x17B90109, 0x16B103F8, 0x17720735, 0x17280831, 0x1C630EA2, 0x1678108A, 0x13EA11B6,
-0x129517E7, 0x11771F01, 0x0C8622CC, 0x063120C7, 0x057422A9, 0x0463288E, 0xFBCD29D0, 0xF4CF29E9,
-0xF0DE2ACD, 0xECAF2571, 0xE7562335, 0xE3411DBF, 0xD8AA1B67, 0xDCF812A2, 0xD8030FE6, 0xD69B0979,
-0xDB4E011D, 0xE081FF40, 0xDA72FD2C, 0xDF78FE51, 0xE178F4D8, 0xE573F211, 0xE350F16F, 0xE4FAED2A,
-0xE6A0E727, 0xF0B0E5F5, 0xF297E26A, 0xFA83EA3C, 0xFA17E8A5, 0xFB6EDF78, 0x04A7E4EC, 0x0D13EF6A,
-0x0885F3BF, 0x0A28F2F3, 0x1081F475, 0x04D3F6EB, 0x0BBAFB4D, 0x0696FAB0, 0x0EBBFCFE, 0x109BFFB7,
-0x0E050309, 0x0C9D0584, 0x0B78091B, 0x0A490DEC, 0x04F90EBB, 0x02F41577, 0xFD1213E8, 0xF7AF1205,
-0xF9660EC2, 0xF14D1376, 0xEBAF1039, 0xF12A0BAF, 0xF1240BF5, 0xEA9C0C10, 0xE67D0108, 0xE61DFFE0,
-0xFF6313FA, 0xFF541A0C, 0xFED818E8, 0xF9B71169, 0xFF5A1691, 0xFA5D1C69, 0xF88118F8, 0xF9501C79,
-0xF2B218C4, 0xEF0B1999, 0xEC9D185D, 0xECB91370, 0xE8131882, 0xE4660F2B, 0xEA8F0D4A, 0xEEFC0A0F,
-0xE46108A4, 0xE7CA0C1C, 0xE7610475, 0xEAD8F989, 0xF00AFC14, 0xF00AFD85, 0xF37FFC37, 0xF543F69D,
-0x000DF6F2, 0xFB6BFA94, 0xFFCEFFC8, 0xFCE102E7, 0xFEB9034C, 0x03CC0773, 0xFC0E047F, 0xFF830297,
-0x01B00441, 0xFB5E079C, 0x00830C93, 0xFBE90C09, 0xFD860DE7, 0xF6CD092C, 0xF1D40959, 0xFC500AA1,
-0xF2FB074B, 0xF701097F, 0xF5B3094C, 0xF18606EE, 0xF6C30095, 0xF7F30683, 0xF9740753, 0xF2080724,
-0xEE620B28, 0xEE67067D, 0xEFDE0468, 0xEB6B070F, 0xEA5E015E, 0xF2420379, 0xE7290345, 0xE41AFEEC,
-0xE8E3F837, 0xE2B8F621, 0xEB51F18E, 0xEA56EE19, 0xEE5FEF06, 0xE8ECE76D, 0xF51AE62D, 0xFB4DE82C,
-0xFDE3E231, 0x009EE06B, 0x09F0E6C7, 0x0B03E834, 0x0DF0EDDA, 0x0F7DEB2C, 0x179BF08C, 0x19DCF040,
-0x1AAAFA4F, 0x13500057, 0x15E7FFE8, 0x1A0405A5, 0x1760083F, 0x141F0C97, 0x0F250A66, 0x0EB70BE6,
-0x05220F29, 0x0579101D, 0x035B1035, 0x047F0A00, 0xFFBF0B0F, 0xFAF707F4, 0x00840783, 0x01810772,
-0x001306D0, 0xFB8307B8, 0xF992040E, 0xFC9A0766, 0x02120914, 0xFF2002D1, 0xFA1A04F4, 0xFC8AFE4A,
-0xFDF300D0, 0xFED604AB, 0x000005B3, 0xFDA4FFB8, 0xFC130510, 0x0117F9C9, 0x025AFDF7, 0x032BFB79,
-0x0466FF7A, 0x09DDFD7C, 0x09F60055, 0x0921FCE1, 0x07B9FD95, 0x0BE3FCC2, 0x09510037, 0x1236F97D,
-0x165302FB, 0x16C509B7, 0x15780C34, 0x13D1067C, 0x187E0C18, 0x13CA153F, 0x12F01B86, 0x07E92089,
-0x08B01B0C, 0x07C61E57, 0x00D21F88, 0xFA5C1D5D, 0xFBF01A3B, 0xFC021632, 0xF617196D, 0xF1D21367,
-0xF122162B, 0xF34A1126, 0xEF80105A, 0xF0640C08, 0xF1600C28, 0xF4E40C23, 0xF4920AE0, 0xF0E6077A,
-0xF74B0407, 0xFED40C13, 0xFA7B0DAE, 0xF439165A, 0xF2040CB4, 0xF7F70A43, 0xFB121109, 0xF9800DF1,
-0xEF041318, 0xEFCA0CDC, 0xF01409C4, 0xECD608C2, 0xEF3607DA, 0xF30608A4, 0xF2DB0447, 0xF2E9FF9D,
-0xF47C0186, 0xF2B6FEEB, 0xF1360154, 0xFA320176, 0xFD3CFF20, 0xFAE2FB17, 0xFDEF07CE, 0xFB51061C,
-0xFA5803FA, 0xFDD7056A, 0xFD0B0437, 0xFF490496, 0xFDCE05BB, 0xFBCE092E, 0xFB25037A, 0xF92509AE,
-0xF9880E77, 0xFDC3063A, 0xF5F805A4, 0xF4E203D8, 0xF89E05F9, 0xF38F0712, 0xF1E6083C, 0xEECB049B,
-0xEEE301B1, 0xFAFCFF64, 0xF62401EE, 0xF4B60621, 0xF5A90067, 0xF730FE5F, 0xF536F9F5, 0xF734FF49,
-0xF5720333, 0xF455FE9E, 0xEE7BFD8F, 0xFB93FAD9, 0xF907F8DA, 0xF2DFFD34, 0xF107F8EB, 0xF669F97B,
-0xF7B6F440, 0xF66DF65E, 0xF85CF30E, 0xF324ECAE, 0xFC08EDD6, 0x03AFF01C, 0x031AF494, 0x02F9F1BD,
-0x0882EEEA, 0x0A48F37F, 0x0E95F05D, 0x1427F172, 0x0F930021, 0x0D15FF92, 0x126FF9BF, 0x1250FDB1,
-0x1345000F, 0x13CF089A, 0x0F5C0B8B, 0x084C0D30, 0x0CB00C42, 0x0C851158, 0xFFE11339, 0x04470CD8,
-0x05250F61, 0x020B11CC, 0xFC1D0E7B, 0xF7C20F7D, 0x006A0D36, 0xFBE4045C, 0xFE9C0ADB, 0x01F91124,
-0xFA370D8F, 0xF76C021C, 0xFAC2FF19, 0xFBF40159, 0x03E9FEC9, 0xFE660457, 0xF6E90534, 0xFE27FE71,
-0x003400D1, 0x0299FD90, 0x00640296, 0xFE7EFF61, 0x0043FDF3, 0x02C1F9CA, 0x0C090027, 0x0B9E05D5,
-0x0CB4FF5A, 0x0CE80365, 0x0F950154, 0x150D0915, 0x141608A4, 0x0B8F0B40, 0x0C791097, 0x12BE0B35,
-0x0D4B1035, 0x09551441, 0x030B1919, 0x04D61950, 0x05D8172A, 0xFE611E67, 0xFF821B9C, 0xFB351C78,
-0xFA341B0D, 0xF7E717AA, 0xF44D106F, 0xF3AE17CB, 0xED841049, 0xEC74129F, 0xF0690DB1, 0xF5150A62,
-0xF8170D20, 0xF18C0E10, 0xF13B0AC4, 0xF2AD0471, 0xF63406C0, 0xF3510B07, 0xF44D0978, 0xF1580C12,
-0xF76F0479, 0xF4FE06D7, 0xF2AE068E, 0xEB210B8E, 0xECCF02DE, 0xF241040E, 0xF7AE01C0, 0xF74601A9,
-0xF927FF3B, 0xFC7701BF, 0xF713FFF6, 0xFF2C0018, 0xFB86FFC5, 0x02050098, 0xFB390910, 0xF7960A18,
-0xFC6405D0, 0xF8C106BC, 0xFB7608D3, 0xFAA80C0D, 0xF5A10FE4, 0xF53C10CC, 0xF19C1027, 0xFA870F04,
-0xEC2A0FC4, 0xE99D06A1, 0xEB8206CD, 0xE1C6099F, 0xE73C02B4, 0xE85BFCB0, 0xE382FCE0, 0xEB57FB6C,
-0xECF2FC0B, 0xEF0AF7C7, 0xF146F6F1, 0xEF09F4AE, 0xEE80F2AF, 0xF7C5EEBE, 0xFB9CF2DD, 0xFC8BF882,
-0xF885F593, 0xF95FF579, 0xF7B0F8CE, 0xFEB8F949, 0xF7C8FA59, 0xFAF7F582, 0xFF01F027, 0xFE94F4D0,
-0xFD68F161, 0x0215F177, 0x02BFEDA0, 0x042AF11B, 0x0624EDCF, 0x0379F737, 0x0481EE7D, 0x0575EF18,
-0x102EF5F4, 0x0EEEF09B, 0x10EAFC93, 0x0D9CFA9C, 0x123CFBD1, 0x0F8903C0, 0x0F600304, 0x1479091D,
-0x0D920332, 0x0B810B84, 0x052F0C6E, 0x05910696, 0x0AA40789, 0x0BC005DA, 0x04C109D4, 0x016D09C4,
-0xFFE80CE9, 0xFD4D0866, 0x077406D5, 0x02C704D5, 0xFC890315, 0x00810277, 0x0386FE1C, 0x027402AA,
-0x022F0208, 0x0472018B, 0x03660832, 0x06B9FDBB, 0x070F0520, 0x0603063E, 0x07C2034F, 0x05BFFF30,
-0x07E40251, 0x0A0503B1, 0x0884FE1E, 0x0A170594, 0x0B1301C2, 0x035505DF, 0x0C6001DF, 0x0B400326,
-0x0805006F, 0x0D86003E, 0x134E05C4, 0x11050A47, 0x0FEF0E5E, 0x11B61060, 0x12A9161B, 0x105C1356,
-0x11D91857, 0x13C11FCE, 0x0A74219D, 0x058A1B28, 0x06341916, 0x087121E9, 0x09DC2079, 0xFF6E23FB,
-0xF2321C03, 0xF3A91A28, 0xF15E2014, 0xF2E12175, 0xEDC61CAB, 0xE3B31575, 0xEE6A163F, 0xE7421668,
-0xE56D12CF, 0xE3C60D25, 0xEDF30D93, 0xEE4602E4, 0xE9F20645, 0xEEBB0171, 0xED6CFE29, 0xEF030236,
-0xF1BBFFB3, 0xF581F904, 0xF570FBCE, 0xFB4DFCEF, 0xF59205C3, 0xF9DFFC49, 0xF99F0060, 0xFC1E0001,
-0x0C1E04EE, 0x0A19025F, 0x06E70439, 0x0ACD0567, 0x0B5805A4, 0x0B990CF4, 0x078A13EA, 0xFDC50C9F,
-0x04090A99, 0x06940977, 0x01A70D56, 0xF87C0D0E, 0xFB5B0AC5, 0xF90A0BB8, 0xF367061E, 0xF1880544,
-0xF218FE11, 0x01C000B8, 0xFDBD021F, 0xF96506DE, 0xF758FE03, 0xFB61F604, 0xFC8FF9FF, 0xFF330218,
-0x01E3FE24, 0x0199FADE, 0x0604FBDD, 0x003EFD2C, 0x05C8FA41, 0x06A9FC04, 0x0894FB77, 0x07AAFE5A,
-0x0B2803B4, 0x060B048F, 0x0CD60201, 0x081A02B6, 0x073E09C6, 0x08F308CF, 0x08DD085B, 0x0A190B32,
-0x065B0C19, 0x0A0207F0, 0x09C50AF6, 0x09571054, 0x04C716D1, 0x00FC14C4, 0x03F210CB, 0x01CF1048,
-0x00021A8F, 0xF61418DA, 0xF6DD17BC, 0xF31615D1, 0xEFD61563, 0xF48613EB, 0xF1310D75, 0xEB640E34,
-0xEB320E90, 0xEE3C04A9, 0xE8E307CC, 0xEAD9085F, 0xE3C20658, 0xE9610031, 0xE799FCFA, 0xE62CFEF9,
-0xE947FBCF, 0xF1F3F4CE, 0xEEEBF59E, 0xF3BBF38C, 0xF31CF13B, 0xF3FCF085, 0xF629F572, 0xFDFEF3C1,
-0xFC33F47F, 0xF89CF46A, 0xF9ECF821, 0xFB5BF30D, 0xFF5BF820, 0x00EAFA94, 0xFFDB0188, 0x02A9FC82,
-0x02C0FAF2, 0xFF950069, 0x06D6FC2F, 0x031FFF9B, 0x07610689, 0xF9710D13, 0xF7F006E5, 0xF9780698,
-0xFF74049B, 0xF31B056E, 0xF5F3080F, 0xF67401A3, 0xF323FE99, 0xF058FEC1, 0xF5D40167, 0xF465FDA6,
-0xF79DFB4B, 0xFAB7FE59, 0xF317FD78, 0xF0F6FA44, 0xEF27F4E8, 0xF756F297, 0xF706F36A, 0xF584F683,
-0xF410F186, 0xF73FF462, 0xFFBAEA40, 0xFB68ECD6, 0xFD67F19D, 0xFDC5ED46, 0x0108F3E1, 0xFF2DF92D,
-0xFA9DF0D0, 0xFFF6F413, 0x067DECA6, 0x0720F5B8, 0x0DB4F057, 0x0682F07C, 0x0E24F01B, 0x0E4FF4DC,
-0x0BF2F50B, 0x111AF404, 0x139DF90A, 0x0DC2FBB6, 0x109EFDDD, 0x101BFBF9, 0x0F7B03C7, 0x0FFB06BA,
-0x104A0726, 0x0D8E0720, 0x0CBC0111, 0x07FE053F, 0x0715089C, 0x0C7F0B66, 0x0AAB0C6E, 0x00C209F7,
-0x04380774, 0x0B030AC1, 0x04A20C07, 0x054B0A89, 0xFFC40A72, 0xFF3808DE, 0x0082077F, 0x031700E8,
-0xFF040282, 0xFBF00A7F, 0xFB3605A4, 0xF83006A2, 0xFD4D06B8, 0xFB230740, 0xF99B0851, 0xFEEC0529,
-0xFB790634, 0xF7A3FF51, 0xF934005E, 0xFC79FB92, 0xFF700284, 0xFCE0019D, 0xFF3AFA7E, 0x0651FAC0,
-0x0482FF0A, 0x04DC0139, 0x06A6FC3C, 0x09ADFF6F, 0x0E7A054E, 0x022E0733, 0x0DE90038, 0x0FDF076E,
-0x0E050DEF, 0x0CB41543, 0x06EF161E, 0xFF641777, 0x058115C2, 0x01AF1C06, 0xFBFE1C98, 0xFBCA1850,
-0xF845157F, 0xF15915E3, 0xF06C167D, 0xEDB513ED, 0xEED71361, 0xF00A0D9D, 0xEB450EC6, 0xEAFA0CA7,
-0xE887077C, 0xEDEB0606, 0xEE92028C, 0xED050605, 0xEDB1057F, 0xEE7E0581, 0xE9E3068D, 0xED5FF90A,
-0xEA0AFD54, 0xEE84FF91, 0xEE69FE1C, 0xECD7FAA6, 0xEC16F798, 0xEFBCF605, 0xF3A8F9B9, 0xF37AF92F,
-0xF1C0F65B, 0xF3E3F37C, 0xEF5BFA70, 0xF7ACF111, 0xF1E9EF7C, 0xF692EDF7, 0xFAFFEEAD, 0xFE84EAC4,
-0x014AF3C3, 0xFDEFF769, 0x0721F5C9, 0x024EF290, 0x03A9F9F3, 0x00C2020E, 0xF9D500B5, 0xFEBCFF79,
-0xFCB3088D, 0xF93B0752, 0xF9640306, 0xF3A60311, 0xF5AC00EB, 0xF65CFFDB, 0xF6EBFF67, 0xF48C0329,
-0xF584FCC1, 0xEFBFFC76, 0xF159F83C, 0xF446F5B8, 0xF3ADF55A, 0xF42AF3DB, 0xF8C3F7AA, 0xF6D7F8C0,
-0xF9E3F36D, 0xF6C4F166, 0xF957F356, 0xFFCEF516, 0xFDAAF3BA, 0xF9D5F48C, 0x013EF0DA, 0x0301F145,
-0xFDF9F264, 0x02D0F4D4, 0x02C5F35B, 0x023FF4BC, 0x066EF1D0, 0x063CEBF5, 0x0684ED5A, 0x0AC0F465,
-0x0F2DF1D1, 0x0F5CF3CD, 0x0ACCF68D, 0x1305FC13, 0x138900BD, 0x12B603C9, 0x0AE50561, 0x0B28047D,
-0x0D6C03AB, 0x0AA00945, 0x0B1C0BA4, 0x0605105B, 0x06090B4A, 0x039A136C, 0xFE3D0B3D, 0xFC190EF2,
-0xF87E097D, 0xFAEF07AE, 0xF3F90858, 0xEE140881, 0xF132014F, 0xF7A003CB, 0xF6C101FA, 0xF1540172,
-0xF908FCA9, 0xF577F6A5, 0xFD2FF597, 0xFDEEFCE3, 0xF8BCF8C1, 0xFC97F982, 0xF94BF30A, 0xFBC3F7FD,
-0xFB6DF6E8, 0x0177F3BA, 0x036BF366, 0x042CFB26, 0x00D8FA96, 0x0197F395, 0x07FAF61C, 0x0FB2FCB0,
-0x0C7CFA6A, 0x0D99FC2C, 0x085EFDCA, 0x0B99000F, 0x0B1E01F8, 0x0AA20645, 0x0B9806F6, 0x09BC0B9E,
-0x05470A5B, 0x01810A9B, 0x07F50966, 0x038E0561, 0x06650E04, 0x03491089, 0xFE2A1020, 0xF8E60C7E,
-0xF97110A8, 0xF6590FFB, 0xF35C0A99, 0xF0F20CBA, 0xEB820724, 0xEE6204A7, 0xEC3EFCF7, 0xF580FF55,
-0xF691FD75, 0xF028FD1F, 0xF36D0020, 0xF3F2F71F, 0xF785F9D3, 0xF7E3F987, 0xF754F957, 0xFC51F932,
-0xFA2DFCD7, 0xF7E8FB34, 0xFB0CF1FD, 0x0167F8A6, 0xFDCBFE0D, 0xFEC5FAA6, 0x01F7FE1F, 0xFA2EF859,
-0xFE76F8E6, 0x041DFEB8, 0x0023FBBF, 0x0079FE5B, 0x0593FB38, 0x0557FBD7, 0x0224FA5F, 0x05B8FDB7,
-0x089E0309, 0x07FE0131, 0x07FD090F, 0x04C90324, 0x075505A7, 0x0BA10AE6, 0x02FA0BAB, 0xFDE50E89,
-0xFFF80BBC, 0xF9F20DA7, 0xFAF90DC9, 0xF8640A7A, 0xF92F0E00, 0xF5740ACD, 0xF1120F17, 0xEBCA067E,
-0xEEBF00D5, 0xEE4E05EB, 0xF0E9FDEF, 0xEE6504C5, 0xECF0FAD3, 0xF66CFAD5, 0xEDC0F4A7, 0xF273F4E9,
-0xEFA2F545, 0xF578F562, 0xF942F379, 0xF95FF490, 0xF55DF462, 0xFEB8ED72, 0x0121F5C5, 0x01AAF8CE,
-0xFD78F957, 0xF6DFF2ED, 0xF969F142, 0xFF6DF1A8, 0x0810F784, 0x03A2F957, 0x0983F64A, 0x0B8DF51D,
-0x0868F2E1, 0x0D37F5F5, 0x0F01F588, 0x0B32016F, 0x108C02BA, 0x0EEA054C, 0x0D570A27, 0x10B3036A,
-0x12A50AB5, 0x0DE20FC2, 0x05B31421, 0x07EC14D3, 0x032C125F, 0xFEF8111C, 0xF82811C6, 0xF8670CD5,
-0xF96C0D76, 0xF1400D9B, 0xF1EC07C5, 0xEC7D0522, 0xEA3C02F1, 0xEB040569, 0xEA95FB0E, 0xEC76FAC0,
-0xF0E6F7EA, 0xF4FBF785, 0xFE1AF489, 0x0194F342, 0xFFEAFA85, 0x0084F2A3, 0xFE99FA9D, 0x03B1FAF2
-
-output0 =
-0xFBF20264, 0xFB14007E, 0xFB2CFE4A, 0xFC4DFC44, 0xFE49FAE0, 0x00C8FA6A, 0x035DFB04, 0x05A0FC9A,
-0x073DFEFC, 0x07FE01E1, 0x07C604FB, 0x069407F9, 0x04780A90, 0x019E0C78, 0xFE460D7C, 0xFAC30D7F,
-0xF76D0C87, 0xF4920ABC, 0xF2660861, 0xF0F705C1, 0xF032031B, 0xEFF40096, 0xF018FE3A, 0xF089FC01,
-0xF149F9E3, 0xF265F7E6, 0xF3E8F626, 0xF5C7F4CE, 0xF7DFF402, 0xF9F6F3D2, 0xFBD1F42E, 0xFD45F4EA,
-0xFE45F5CF, 0xFEE4F6AE, 0xFF40F774, 0xFF73F824, 0xFF81F8CD, 0xFF55F976, 0xFED3FA07, 0xFDF1FA4E,
-0xFCC8FA07, 0xFBA1F900, 0xFAE5F731, 0xFAFDF4D4, 0xFC2CF259, 0xFE71F049, 0x0182EF1F, 0x04E1EF1F,
-0x0802F040, 0x0A77F239, 0x0C0FF499, 0x0CDBF6F3, 0x0D1EF903, 0x0D27FABC, 0x0D31FC43, 0x0D47FDD3,
-0x0D49FF9B, 0x0CF801A7, 0x0C1903D5, 0x0A8B05DE, 0x0859076F, 0x05BB0845, 0x0302083E, 0x00840762,
-0xFE8805DC, 0xFD3703EE, 0xFC9C01DD, 0xFCA7FFE4, 0xFD36FE2F, 0xFE24FCD6, 0xFF49FBE1, 0x0088FB4C,
-0x01CAFB0E, 0x0300FB1B, 0x0422FB6D, 0x0525FBFF, 0x05FBFCCF, 0x0690FDD6, 0x06CCFF02, 0x069B002F,
-0x05FB012F, 0x050101CC, 0x03E101E0, 0x02E0015D, 0x0248005E, 0x024CFF21, 0x02F8FDF7, 0x0431FD2C,
-0x05B5FCF1, 0x073AFD4B, 0x0886FE18, 0x0980FF22, 0x0A390037, 0x0AD70143, 0x0B84025A, 0x0C4F03AA,
-0x0D1C056B, 0x0DAA07BD, 0x0DA30A96, 0x0CBC0DB9, 0x0ACD10C4, 0x07E61348, 0x044714E9, 0x00511572,
-0xFC7014DE, 0xF9021355, 0xF6431119, 0xF4510E76, 0xF32C0BB2, 0xF2BC0908, 0xF2E306A0, 0xF3790495,
-0xF45A02F3, 0xF55F01BC, 0xF66B00E8, 0xF7650064, 0xF842001F, 0xF8FC0006, 0xF993000F, 0xFA080034,
-0xFA550071, 0xFA7100BD, 0xFA510108, 0xF9F20138, 0xF9620130, 0xF8BA00D8, 0xF8210028, 0xF7BEFF2B,
-0xF7AEFDFE, 0xF7FEFCC6, 0xF8A7FBA6, 0xF998FAB8, 0xFABCFA0A, 0xFBFFF99E, 0xFD56F976, 0xFEBAF997,
-0x001FFA08, 0x0171FAD5, 0x0292FBFE, 0x0363FD7A, 0x03C6FF2E, 0x03AC00F2, 0x0316029D, 0x021A040D,
-0x00D2052C, 0xFF5E05F4, 0xFDD4066B, 0xFC410698, 0xFAAA0684, 0xF911062E, 0xF77A0590, 0xF5EE04A2,
-0xF47F035C, 0xF34601BE, 0xF25DFFCF, 0xF1DFFDA3, 0xF1E2FB57, 0xF270F913, 0xF385F706, 0xF508F55A,
-0xF6CEF430, 0xF8A0F392, 0xFA46F370, 0xFB95F3A0, 0xFC80F3EA, 0xFD15F416, 0xFD7EF3FE, 0xFDF2F39A,
-0xFEA0F300, 0xFFA2F25B, 0x00F7F1D9, 0x0284F19F, 0x0426F1B8, 0x05BEF21D, 0x073BF2BA, 0x08A0F37E,
-0x09F7F463, 0x0B47F575, 0x0C8AF6C5, 0x0DAAF860, 0x0E85FA45, 0x0EFBFC5D, 0x0EFEFE84, 0x0E910090,
-0x0DCB0263, 0x0CCE03F1, 0x0BB50540, 0x0A8E0662, 0x09550767, 0x07FC0857, 0x066F0925, 0x04A809B8,
-0x02AF09F1, 0x009E09B4, 0xFE9D08F3, 0xFCDA07B2, 0xFB7D0607, 0xFAA70419, 0xFA650218, 0xFAB00036,
-0xFB6FFE9F, 0xFC79FD70, 0xFD9BFCB1, 0xFEA8FC50, 0xFF83FC29, 0x0026FC0E, 0x00A8FBD9, 0x0132FB77,
-0x01F3FAF7, 0x030AFA7F, 0x0478FA47, 0x061DFA82, 0x07BEFB48, 0x091CFC90, 0x0A05FE2E, 0x0A64FFE3,
-0x0A4C0175, 0x09E802BB, 0x096D03AE, 0x09050466, 0x08C40507, 0x08A305B8, 0x08870690, 0x08520790,
-0x07EA08A9, 0x074809C3, 0x066E0ACA, 0x05680BB0, 0x04400C72, 0x02FA0D0F, 0x01970D84, 0x00170DC5,
-0xFE840DC3, 0xFCEF0D73, 0xFB770CCF, 0xFA380BE6, 0xF94A0AD1, 0xF8B309B8, 0xF86408BE, 0xF83E07FB,
-0xF8190771, 0xF7D4070D, 0xF75D06A9, 0xF6BB061E, 0xF60F054A, 0xF5850426, 0xF54E02C4, 0xF58B0151,
-0xF6400009, 0xF74EFF25, 0xF87EFEC8, 0xF989FEF2, 0xFA31FF7F, 0xFA55002F, 0xF9F700BA, 0xF93F00E5,
-0xF86A0093, 0xF7BAFFC9, 0xF760FEAB, 0xF771FD69, 0xF7EBFC33, 0xF8B8FB28, 0xF9C2FA58, 0xFAF7F9C8,
-0xFC4EF97D, 0xFDBCF983, 0xFF31F9EB, 0x008BFAC2, 0x019DFC04, 0x023CFD92, 0x024EFF39, 0x01D700BF,
-0x00FA01F1, 0xFFED02BD, 0xFEDF0330, 0xFDEB036E, 0xFD09039D, 0xFC1803CE, 0xFAF503F0, 0xF99003D7,
-0xF7FE034B, 0xF677022B, 0xF549007A, 0xF4B1FE68, 0xF4CEFC42, 0xF58FFA56, 0xF6C0F8D9, 0xF821F7DC,
-0xF97EF749, 0xFAC2F702, 0xFBEFF6EC, 0xFD11F704, 0xFE26F75C, 0xFF11F803, 0xFFA1F8F0, 0xFFAAF9F6,
-0xFF1EFAC5, 0xFE22FB0A, 0xFD11FA8D, 0xFC5AF955, 0xFC5DF7AA, 0xFD3FF600, 0xFEDDF4CE, 0x00D7F460,
-0x02B7F4B8, 0x041FF594, 0x04F3F68F, 0x055CF74B, 0x05B5F7A1, 0x0658F7B0, 0x0775F7CD, 0x08F9F85F,
-0x0A8DF9AA, 0x0BC0FBB3, 0x0C30FE37, 0x0BB200C7, 0x0A6002F3, 0x088B0471, 0x06920532, 0x04C2055C,
-0x033B052B, 0x01ED04D4, 0x00B50465, 0xFF7803C8, 0xFE3C02D6, 0xFD2E016F, 0xFC8FFF97, 0xFC9CFD80,
-0xFD6FFB7A, 0xFEF1F9DB, 0x00E6F8E0, 0x02FBF89D, 0x04E7F8FE, 0x067DF9D2, 0x07B1FAE2, 0x0890FC07,
-0x0933FD2F, 0x09A9FE5B, 0x09F7FF90, 0x0A1500D1, 0x09FA0214, 0x09A3034A, 0x09140462, 0x08570550,
-0x077A060B, 0x06860690, 0x058706D7, 0x048C06D5, 0x03B20687, 0x031D05F7, 0x02F20547, 0x034004AF,
-0x03F50474, 0x04D604C8, 0x058F05BC, 0x05CA072B, 0x055008C3, 0x04210A1D, 0x02790AE4, 0x00BA0AF0,
-0xFF480A5C, 0xFE660976, 0xFE1A08A2, 0xFE2D0831, 0xFE440842, 0xFE0808B2, 0xFD470934, 0xFC0D096B,
-0xFA970917, 0xF93E0825, 0xF85106BC, 0xF7FB0524, 0xF83403AC, 0xF8D0028B, 0xF99201D3, 0xFA480173,
-0xFAD90149, 0xFB450135, 0xFB9C0127, 0xFBE9011F, 0xFC2F0125, 0xFC65013D, 0xFC80015E, 0xFC7B0178,
-0xFC610179, 0xFC480159, 0xFC460120, 0xFC6400E6, 0xFC9D00BF, 0xFCDF00B8, 0xFD1300CE, 0xFD3000F0,
-0xFD3C010E, 0xFD440123, 0xFD56013C, 0xFD6F0170, 0xFD7101D1, 0xFD340255, 0xFC9502D5, 0xFB8E030E,
-0xFA4702BB, 0xF91401B8, 0xF8580013, 0xF865FE16, 0xF95AFC33, 0xFB13FADD, 0xFD30FA65, 0xFF36FAD7,
-0xFA04FDBF, 0xFB68FC07, 0xFD74FB2D, 0xFF99FB6A, 0x0142FC9D, 0x0208FE5D, 0x01CA001D, 0x00B8015B,
-0xFF3801C5, 0xFDC50149, 0xFCCE0013, 0xFC98FE79, 0xFD3AFCE6, 0xFE96FBBE, 0x0063FB4E, 0x023EFBBA,
-0x03B7FCF1, 0x0471FEAC, 0x043B0077, 0x032801CC, 0x01960238, 0x001E018E, 0xFF66FFFB, 0xFFE8FE10,
-0x01BBFC92, 0x047CFC42, 0x0766FD91, 0x0987006D, 0x0A19043C, 0x08C6080B, 0x05CF0ADD, 0x01F30C00,
-0xFE2E0B49, 0xFB63091F, 0xFA0E0647, 0xFA24039A, 0xFB2D01B4, 0xFC8000C4, 0xFD8B008F, 0xFE12009B,
-0xFE340072, 0xFE55FFDC, 0xFEDFFEF6, 0x000DFE1F, 0x01C8FDCA, 0x03B8FE45, 0x0561FF97, 0x065B017E,
-0x067C0389, 0x05DD0549, 0x04CF0677, 0x03B2070A, 0x02D2072C, 0x024B0722, 0x020E072B, 0x01EF0768,
-0x01BC07D7, 0x01570859, 0x00B908C7, 0xFFF608FE, 0xFF3008EC, 0xFE900894, 0xFE3A0809, 0xFE4A0775,
-0xFEC9070D, 0xFFA30713, 0x00A007BF, 0x0165092D, 0x01850B45, 0x009E0DB0, 0xFE850FE1, 0xFB601136,
-0xF7AE112F, 0xF42D0F9D, 0xF1A50CC1, 0xF09C0943, 0xF12B0601, 0xF2EC03C4, 0xF51702FA, 0xF6C8038B,
-0xF75304E5, 0xF6840629, 0xF4AF0687, 0xF2930584, 0xF116032E, 0xF0ED0012, 0xF25AFD0F, 0xF51DFB01,
-0xF884FA7C, 0xFBAFFB9C, 0xFDD6FE03, 0xFE8500FF, 0xFDBA03C5, 0xFBD005B2, 0xF9630672, 0xF7100608,
-0xF55004C4, 0xF45B0317, 0xF424016F, 0xF4710014, 0xF4F7FF1F, 0xF578FE76, 0xF5DAFDEB, 0xF62DFD4F,
-0xF69CFC90, 0xF759FBC3, 0xF87DFB23, 0xF9F3FAF6, 0xFB78FB72, 0xFCAAFC9C, 0xFD2CFE3D, 0xFCCDFFE6,
-0xFBA3011B, 0xFA0E017E, 0xF89800F8, 0xF7C2FFCF, 0xF7C9FE88, 0xF88AFDBC, 0xF985FDD0, 0xFA0BFEC3,
-0xF989001E, 0xF7CF011E, 0xF53200F7, 0xF27BFF2E, 0xF0A6FBD0, 0xF088F781, 0xF279F346, 0xF633F034,
-0xFAE1EF0D, 0xFF69EFFF, 0x02CAF29C, 0x0470F602, 0x0458F934, 0x0304FB67, 0x013EFC43, 0xFFCDFBEE,
-0xFF32FAE8, 0xFF8BF9D2, 0x0099F934, 0x01EBF950, 0x0307FA1A, 0x0399FB4D, 0x0388FC86, 0x02EEFD6D,
-0x0211FDC8, 0x0141FD8A, 0x00CCFCCF, 0x00E5FBD3, 0x01A0FAE4, 0x02E3FA50, 0x0479FA4F, 0x0612FAF9,
-0x075FFC3A, 0x0827FDDC, 0x0857FF94, 0x0807011E, 0x076D0256, 0x06BE033F, 0x061B03FC, 0x057E04B6,
-0x04BD057E, 0x03AD063A, 0x023A06AB, 0x00880684, 0xFEEF0595, 0xFDE403EE, 0xFDC801E7, 0xFEBD000B,
-0x008FFEE9, 0x02BBFEDF, 0x049FFFEE, 0x05B401BF, 0x05BD03BC, 0x04DE054B, 0x038C0608, 0x025C05E7,
-0x01C70534, 0x02020474, 0x02E8042A, 0x041004AD, 0x04F20607, 0x051B07F4, 0x044D09FB, 0x02950B97,
-0x00420C5C, 0xFDCF0C15, 0xFBC00ACE, 0xFA8408D3, 0xFA56069D, 0xFB3404B0, 0xFCDA0382, 0xFED10358,
-0x00940433, 0x01AF05D0, 0x01E107BD, 0x01360978, 0xFFF90AA3, 0xFE9A0B1D, 0xFD7E0B10, 0xFCD90AD5,
-0xFC950ACE, 0xFC630B33, 0xFBDF0BF9, 0xFAC80CD0, 0xF91D0D4B, 0xF72D0D13, 0xF56E0C17, 0xF44D0A95,
-0xF3F60908, 0xF43D07EF, 0xF4AA078D, 0xF4B107CC, 0xF3F4083A, 0xF26F083B, 0xF086074C, 0xEEE30541,
-0xEE32025F, 0xEED8FF47, 0xF0CDFCC2, 0xF397FB71, 0xF673FB97, 0xF89BFD01, 0xF986FF1B, 0xF9120122,
-0xF78A0262, 0xF587026F, 0xF3BE013E, 0xF2CCFF21, 0xF30AFCAB, 0xF47DFA85, 0xF6D1F941, 0xF977F935,
-0xFBC7FA61, 0xFD2FFC70, 0xFD5CFECB, 0xFC5700C4, 0xFA8401C9, 0xF88C0196, 0xF7210050, 0xF6C6FE7C,
-0xF79AFCD5, 0xF94AFC08, 0xFB2AFC72, 0xFC75FDFD, 0xFC970022, 0xFB66021D, 0xF92F0337, 0xF6950309,
-0xF454019B, 0xF2F5FF5B, 0xF2A4FCE2, 0xF32FFAB4, 0xF42FF90F, 0xF541F7E0, 0xF63AF6E3, 0xF733F5D5,
-0xF872F4A5, 0xFA3AF387, 0xFC97F2DC, 0xFF4BF306, 0x01DEF430, 0x03CBF634, 0x04B6F8A0, 0x0496FAE3,
-0x03B7FC7F, 0x0298FD39, 0x01C0FD2C, 0x0188FCB2, 0x0205FC44, 0x0307FC49, 0x0431FCF9, 0x051EFE53,
-0x05790023, 0x05150216, 0x03EF03CD, 0x023004F0, 0x00270541, 0xFE3F04A6, 0xFCEC0341, 0xFC8F016C,
-0xFD53FFB5, 0xFF0FFEBD, 0x0143FF02, 0x033000AD, 0x040E0378, 0x035606B0, 0x00F4096C, 0xFD5A0AD5,
-0xF95F0A74, 0xF5FA085D, 0xF3E80524, 0xF36E01A3, 0xF44FFEAB, 0xF5EEFCB3, 0xF797FBBD, 0xF8CCFB65,
-0xF975FB1D, 0xF9DAFA78, 0xFA76F95A, 0xFBB6F805, 0xFDC0F6F6, 0x0060F6AB, 0x031DF767, 0x056DF91D,
-0x06EDFB72, 0x077FFDEC, 0x074F001E, 0x06B201D5, 0x06000318, 0x0569041F, 0x04EA0526, 0x04590654,
-0x037907A1, 0x022108DA, 0x004E09B8, 0xFE2A09F4, 0xFC040968, 0xFA3D0817, 0xF92C0639, 0xF9080429,
-0xF9D7025E, 0xFB660148, 0xFD4B0137, 0xFEF9023F, 0xFFE4042A, 0xFFA9067C, 0xFE31088F, 0xFBC209C4,
-0xF8F009B6, 0xF6730861, 0xF4E80626, 0xF49B03B0, 0xF56A01B5, 0xF6CF00B7, 0xF81400CE, 0xF89801A2,
-0xF80F028C, 0xF69E02D7, 0xF4D30206, 0xF36B0002, 0xF311FD2B, 0xF41EFA2F, 0xF67EF7D1, 0xF9B5F6A8,
-0xFD12F6F0, 0xFFE4F882, 0x01AEFAE8, 0x024AFD86, 0x01DEFFD2, 0x00CC0173, 0xFF840254, 0xFE650298,
-0xFDA00287, 0xFD34026A, 0xFCFC0275, 0xFCC002B3, 0xFC53030A, 0xFBA8034B, 0xFAD40345, 0xFA0B02E4,
-0xF986023B, 0xF969017E, 0xF9AB00F6, 0xFA1800D8, 0xFA5B012F, 0xFA2601C9, 0xF9550245, 0xF80D0239,
-0xF6B6015C, 0xF5DAFFB8, 0xF5ECFDAB, 0xF718FBD3, 0xF91CFAD7, 0xFB5DFB1F, 0xFD11FCA8, 0xFD8EFEF4,
-0xFC890134, 0xFA3C028D, 0xF7540265, 0xF4BA0098, 0xF343FD8B, 0xF36CFA02, 0xF535F6E0, 0xF82BF4DF,
-0xFB92F459, 0xFEAAF540, 0x00E1F729, 0x01F7F982, 0x01FAFBB7, 0x0137FD61, 0x0013FE4D, 0xFEF3FE81,
-0xFE24FE28, 0xFDD2FD88, 0xFE04FCE9, 0xFE9DFC8F, 0xFF67FCA3, 0x001DFD2F, 0x007DFE14, 0x0061FF15,
-0xFFCAFFE8, 0xFEE8004F, 0xFE030031, 0xFD69FFA6, 0xFD47FEEF, 0xFD9DFE5D, 0xFE39FE2E, 0xFECDFE73,
-0x05D2FCB5, 0x06AFFEB0, 0x067500D9, 0x0538028D, 0x03660351, 0x01A002FF, 0x007801D7, 0x00430058,
-0x00FBFF18, 0x024DFE89, 0x03BAFED3, 0x04CBFFD8, 0x05330140, 0x04E3029D, 0x04060392, 0x02F003E8,
-0x0201039B, 0x019002DA, 0x01D101F7, 0x02CB015A, 0x044D0167, 0x05F90262, 0x0750045B, 0x07D4071C,
-0x07300A34, 0x054F0D10, 0x026E0F25, 0xFF05101C, 0xFBA60FEB, 0xF8C80ED5, 0xF6A00D47, 0xF51C0BAD,
-0xF3F60A41, 0xF2E008FF, 0xF1AF07AD, 0xF077060A, 0xEF7D03F4, 0xEF12018A, 0xEF64FF21, 0xF05DFD22,
-0xF1A4FBD3, 0xF2C2FB33, 0xF35CFAF3, 0xF35CFA96, 0xF308F9AD, 0xF2E3F80E, 0xF374F5EE, 0xF507F3D9,
-0xF782F270, 0xFA66F22E, 0xFCFCF32B, 0xFE9FF50C, 0xFEF7F723, 0xFE24F8AF, 0xFCACF922, 0xFB50F851,
-0xFAC4F686, 0xFB72F45F, 0xFD60F297, 0x0030F1C9, 0x0348F244, 0x0601F3FF, 0x07DBF6A2, 0x0893F9AE,
-0x082EFC9D, 0x06E8FF08, 0x051D00B5, 0x032C019E, 0x016101E9, 0xFFE601D0, 0xFEBB0195, 0xFDC10166,
-0xFCC60153, 0xFB9A0148, 0xFA220113, 0xF8680077, 0xF69AFF45, 0xF500FD67, 0xF3E4FAF5, 0xF37CF825,
-0xF3E0F543, 0xF500F294, 0xF6B4F04A, 0xF8CBEE7B, 0xFB20ED27, 0xFD9CEC48, 0x0034EBDF, 0x02D9EBF6,
-0x0570EC9E, 0x07CAEDDF, 0x09ABEFA5, 0x0AE2F1BF, 0x0B58F3DD, 0x0B1DF5AC, 0x0A70F6E6, 0x09A9F76E,
-0x0923F755, 0x0928F6D9, 0x09D5F652, 0x0B1BF61D, 0x0CBDF680, 0x0E66F79D, 0x0FBAF969, 0x106BFBAA,
-0x1051FE09, 0x0F740022, 0x0E0D01A0, 0x0C7F0253, 0x0B3A0245, 0x0AA101BE, 0x0AE20138, 0x0BE4013A,
-0x0D430232, 0x0E61044B, 0x0E990754, 0x0D6F0AC5, 0x0ABB0DDE, 0x06C10FDD, 0x02221039, 0xFDB00ECA,
-0xFA380BD9, 0xF8460807, 0xF8010420, 0xF92800E3, 0xFB2BFECC, 0xFD5BFDFB, 0xFF1AFE35, 0x000CFF00,
-0x0021FFCE, 0xFF95002B, 0xFED3FFD6, 0xFE50FED8, 0xFE66FD70, 0xFF3BFC04, 0x00BCFAF9, 0x02A6FA9B,
-0x049AFB03, 0x063FFC1A, 0x0758FDA3, 0x07D4FF4E, 0x07C700D9, 0x0763021B, 0x06DA030E, 0x065303C4,
-0x05DA045A, 0x056B04E4, 0x04FC0567, 0x048905DB, 0x041E063D, 0x03D20695, 0x03AF0705, 0x03AA07BA,
-0x039208DA, 0x03190A6B, 0x01F00C3C, 0xFFE70DEF, 0xFD0A0F0B, 0xF9AA0F27, 0xF64D0E14, 0xF3810BEF,
-0xF1B40923, 0xF1070640, 0xF14703D2, 0xF1FF022E, 0xF2A50156, 0xF2C90100, 0xF23D00B1, 0xF123FFEE,
-0xEFD9FE66, 0xEEDDFC0B, 0xEE9DF913, 0xEF59F5E2, 0xF11AF2ED, 0xF3B0F099, 0xF6CBEF28, 0xFA0BEEB2,
-0xFD16EF29, 0xFFA5F060, 0x0185F218, 0x02A0F406, 0x02FCF5DE, 0x02BCF75E, 0x021CF854, 0x0167F8B1,
-0x00E6F887, 0x00D1F80B, 0x013DF784, 0x021DF738, 0x033FF75E, 0x0461F809, 0x0544F92C, 0x05B5FA9F,
-0x059FFC2B, 0x0503FD99, 0x03F9FEBA, 0x02A4FF6D, 0x012FFFA0, 0xFFCAFF51, 0xFEA4FE8B, 0xFDE6FD71,
-0xFDADFC32, 0xFDFEFB0F, 0xFEBEFA46, 0xFFB1FA07, 0x0089FA5D, 0x00F2FB29, 0x00B5FC20, 0xFFC5FCDE,
-0xFE50FD01, 0xFCB3FC48, 0xFB66FAAE, 0xFADAF86A, 0xFB54F5ED, 0xFCD6F3BC, 0xFF1FF250, 0x01B5F1ED,
-0x040DF291, 0x05B0F3EF, 0x0664F589, 0x063AF6D6, 0x058DF76B, 0x04E0F724, 0x04B6F627, 0x0567F4DF,
-0x0702F3D5, 0x0949F385, 0x0BC3F432, 0x0DECF5D5, 0x0F58F821, 0x0FDCFAA1, 0x0F8FFCE2, 0x0EC3FE97,
-0x0DDBFFB3, 0x0D28005F, 0x0CCC00E6, 0x0CB40192, 0x0CAA028A, 0x0C6C03C8, 0x0BD00524, 0x0AD00663,
-0x098A075A, 0x082A07FD, 0x06D7085E, 0x059A08A0, 0x045E08E0, 0x02FA091E, 0x01500936, 0xFF5E08ED,
-0xFD4C0808, 0xFB680669, 0xFA0F0422, 0xF98C017A, 0xF9FCFED6, 0xFB45FCA3, 0xFD16FB31, 0xFF03FA9B,
-0x00A3FABE, 0x01B1FB49, 0x0220FBD4, 0x021EFC01, 0x0206FB9E, 0x0241FAB2, 0x0326F981, 0x04DDF878,
-0x074AF80E, 0x0A15F8A2, 0x0CB9FA59, 0x0EACFD0D, 0x0F850056, 0x0F1F03A1, 0x0DA5065B, 0x0B88081B,
-0x095E08C4, 0x07B4088D, 0x06DF07EF, 0x06E5077A, 0x077C07A8, 0x082408B2, 0x08550A7F, 0x07B10CB4,
-0x061A0ED2, 0x03BE1067, 0x00F91132, 0xFE30112F, 0xFBAF108F, 0xF98C0F96, 0xF7B60E77, 0xF6040D42,
-0xF45A0BDC, 0xF2C20A1B, 0xF16F07E3, 0xF0A80542, 0xF0A70278, 0xF179FFE6, 0xF2EEFDE9, 0xF4A6FCB6,
-0xF631FC40, 0xF73EFC3A, 0xF7BAFC38, 0xF7DDFBD7, 0xF80EFAED, 0xF8C0F99F, 0xFA3BF854, 0xFC78F793,
-0xFF21F7CF, 0x01A3F938, 0x0363FBA7, 0x03F2FEA5, 0x032C018E, 0x014703C8, 0xFEBF04EA, 0xFC2A04DA,
-0xFA1303CB, 0xF8D00228, 0xF876006E, 0xF8DCFF0D, 0xF9ACFE48, 0xFA81FE31, 0xFB02FEA7, 0xFAF5FF61,
-0xFA490008, 0xF91D0047, 0xF7B7FFE4, 0xF673FECE, 0xF5ACFD28, 0xF5A1FB41, 0xF663F981, 0xF7C4F850,
-0xF965F7F0, 0xFACEF866, 0xFB92F978, 0xFB76FAB4, 0xFA83FB9C, 0xF907FBC9, 0xF777FB10, 0xF64AF98D,
-0xF5D3F794, 0xF624F58F, 0xF716F3DC, 0xF85BF2A9, 0xF9A6F1EF, 0xFAC4F182, 0xFBB1F129, 0xFC88F0BF,
-0xFD74F040, 0xFE90EFC9, 0xFFDBEF83, 0x0133EF8A, 0x0268EFDD, 0x0355F057, 0x03F6F0C1, 0x046BF0EB,
-0x04F3F0C0, 0x05D0F058, 0x072EEFF2, 0x090FEFE2, 0x0B41F076, 0x0D6EF1D8, 0x0F2DF400, 0x1025F6AD,
-0x1027F979, 0x0F3FFBEC, 0x0DB4FDA4, 0x0BF9FE70, 0x0A8EFE61, 0x09D8FDCD, 0x0A01FD35, 0x0AE0FD21,
-0x0C08FDF3, 0x0CDCFFBD, 0x0CCB0235, 0x0B8204C5, 0x090B06BD, 0x05D60786, 0x029506E0, 0x000304F7,
-0xFEA30253, 0xFE96FFAB, 0xFF96FDA2, 0x0114FC90, 0x0277FC6D, 0x0351FCE0, 0x0384FD6B, 0x0340FDA8,
-0x02E4FD6B, 0x02C7FCCD, 0x0316FC12, 0x03C5FB84, 0x04A0FB4A, 0x0570FB5C, 0x0618FB92, 0x06A8FBC1,
-0x074AFBDE, 0x0827FC07, 0x0944FC79, 0x0A78FD6B, 0x0B74FEF2, 0x0BE700EF, 0x0BA10311, 0x0AA504FE,
-0x09290670, 0x077B0752, 0x05D907BA, 0x045B07D9, 0x02F507D3, 0x018607AB, 0xFFFF0740, 0xFE740667,
-0xFFB4FF1B, 0xFEF80021, 0xFDCE00CD, 0xFC7500FA, 0xFB3200AF, 0xFA35001D, 0xF981FF7F, 0xF8F3FF04,
-0xF851FEB3, 0xF768FE6B, 0xF625FDEA, 0xF4A2FCEA, 0xF323FB3B, 0xF200F8D6, 0xF18BF5E4, 0xF1FFF2B0,
-0xF36AEF99, 0xF5B4ECF8, 0xF8A3EB14, 0xFBE9EA15, 0xFF32EA01, 0x0231EABF, 0x04AAEC1D, 0x067EEDD7,
-0x07ABEFA6, 0x084FF14C, 0x089CF2A3, 0x08CDF3A5, 0x0916F46A, 0x0991F520, 0x0A38F5F9, 0x0AEAF71B,
-0x0B78F892, 0x0BAFFA4F, 0x0B70FC28, 0x0AB2FDEB, 0x0985FF6A, 0x08080083, 0x06640126, 0x04C10151,
-0x0343010E, 0x020A0072, 0x012EFF9E, 0x00BFFEB9, 0x00B6FDF5, 0x00F9FD81, 0x0150FD7D, 0x0176FDEA,
-0x0127FEA1, 0x0039FF55, 0xFEAFFFA6, 0xFCC2FF3B, 0xFADCFDE0, 0xF979FB9E, 0xF905F8BF, 0xF9BFF5C2,
-0xFB9BF336, 0xFE47F194, 0x013DF11F, 0x03EBF1C8, 0x05DAF33B, 0x06D4F4F5, 0x06EEF66D, 0x0686F73F,
-0x061BF74B, 0x0628F6BE, 0x06FCF603, 0x089AF59E, 0x0ABEF602, 0x0CECF76B, 0x0E9CF9CB, 0x0F61FCD0,
-0x0F07FFFE, 0x0D9F02D4, 0x0B7304F0, 0x08E90624, 0x06670679, 0x0434061C, 0x0277054B, 0x0135043E,
-0x0063031E, 0xFFF50205, 0xFFDD0106, 0x0013003A, 0x007FFFBA, 0x00FDFF9B, 0x015BFFDC, 0x01660061,
-0x010100F0, 0x00350143, 0xFF330121, 0xFE4A0077, 0xFDCAFF65, 0xFDE5FE36, 0xFE99FD47, 0xFFADFCE8,
-0x00C3FD3C, 0x0179FE2E, 0x0187FF74, 0x00D700AA, 0xFF8B0171, 0xFDED018D, 0xFC5A00EF, 0xFB25FFB3,
-0xFA83FE18, 0xFA8AFC66, 0xFB2EFAE4, 0xFC4BF9CA, 0xFDACF93C, 0xFF11F949, 0x003BF9E6, 0x00EDFAEB,
-0x0104FC18, 0x007AFD1C, 0xFF76FDAB, 0xFE43FD90, 0xFD42FCC6, 0xFCCCFB7E, 0xFD18FA14, 0xFE1EF8F5,
-0xFF9FF87F, 0x0131F8DC, 0x0260F9FA, 0x02D7FB88, 0x0279FD16, 0x0167FE3A, 0xFFF7FEAC, 0xFE91FE5E,
-0xFD91FD78, 0xFD2BFC4A, 0xFD66FB2C, 0xFE1AFA65, 0xFF07FA1C, 0xFFEEFA56, 0x0097FAF9, 0x00E3FBDE,
-0x00C4FCDE, 0x003BFDD1, 0xFF4FFE97, 0xFE10FF0F, 0xFC97FF1E, 0xFB07FEAB, 0xF994FDAC, 0xF875FC2E,
-0xF7DDFA59, 0xF7E6F86E, 0xF888F6B6, 0xF997F56E, 0xFACAF4B3, 0xFBD3F477, 0xFC76F482, 0xFCA5F483,
-0xFC80F42B, 0xFC54F34D, 0xFC7CF1EC, 0xFD46F042, 0xFED8EEAD, 0x011CED94, 0x03CCED43, 0x0681EDDB,
-0x08D9EF42, 0x0A8EF135, 0x0B85F35D, 0x0BD3F56B, 0x0BA7F72C, 0x0B39F890, 0x0AB9F9A1, 0x0A40FA77,
-0x09D8FB2D, 0x097CFBD5, 0x0928FC79, 0x08D4FD21, 0x0878FDD7, 0x0802FE9F, 0x075DFF76, 0x066F0045,
-0x052E00E7, 0x03A6012A, 0x020200E6, 0x0087000C, 0xFF79FEB9, 0xFF0AFD2B, 0xFF40FBB8, 0xFFF2FAAA,
-0x00D5FA28, 0x0197FA29, 0x01FCFA78, 0x01F4FACE, 0x019BFAE9, 0x0125FAAC, 0x00CAFA1C, 0x00ABF95A,
-0x00CBF88B, 0x011AF7C4, 0x0186F700, 0x0213F62E, 0x02DAF545, 0x0406F455, 0x05B3F394, 0x07D9F34D,
-0x0A3EF3C6, 0x0C80F51C, 0x0E37F72D, 0x0F17F9A1, 0x0F15FBFF, 0x0E6EFDE0, 0x0D8DFF10, 0x0CEAFFA9,
-0x0CD00006, 0x0D46009F, 0x0E0401DD, 0x0E9203E8, 0x0E6E069C, 0x0D40098E, 0x0AF60C34, 0x07C90E0F,
-0x042B0ED0, 0x009B0E6D, 0xFD870D19, 0xFB300B2A, 0xF9A108FD, 0xF8C106DC, 0xF86104F2, 0xF854034F,
-0xF87801ED, 0xF8B700C4, 0xF905FFCB, 0xF957FEFC, 0xF9A3FE4D, 0xF9E0FDB3, 0xFA0CFD1A, 0xFA33FC6F,
-0xFA6CFBA7, 0xFAD3FACB, 0xFB7FF9F3, 0xFC74F946, 0xFDA2F8EB, 0xFEE1F8FC, 0xFFFFF97E, 0x00CDFA5A,
-0x012BFB63, 0x0114FC65, 0x009DFD30, 0xFFEEFDA4, 0xFF35FDBB, 0xFE9DFD83, 0xFE41FD1C, 0xFE2DFCAD,
-0xFE56FC5B, 0xFEA3FC43, 0xFEF0FC74, 0xFF14FCEC, 0xFEE9FD93, 0xFE53FE42, 0xFD4AFEC1, 0xFBE2FED7,
-0xFA4EFE52, 0xF8D8FD1D, 0xF7D3FB4A, 0xF785F914, 0xF80FF6D8, 0xF961F4F9, 0xFB3AF3CB, 0xFD32F372,
-0xFEE1F3DA, 0xFFF8F4BA, 0x005BF5AC, 0x002DF64F, 0xFFBAF666, 0xFF64F5E9, 0xFF7AF508, 0x0024F415,
-0x0155F365, 0x02D6F334, 0x045BF397, 0x059FF479, 0x0679F5A8, 0x06DFF6EC, 0x06E0F816, 0x069BF90D,
-0x062DF9C9, 0x05A9FA4B, 0x051FFA96, 0x049BFAAB, 0x042FFA89, 0x03F0FA39, 0x03F7F9D2, 0x044DF978,
-0x04EBF955, 0x05ACF990, 0x065DFA38, 0x06C3FB3E, 0x06B2FC76, 0x0618FD9E, 0x0507FE76, 0x03B2FEC9,
-0x025FFE86, 0x0155FDBF, 0x00C7FCA8, 0x00CBFB88, 0x014DFAA5, 0x0219FA36, 0x02E8FA4C, 0x0370FAD0,
-0x0381FB8A, 0x030DFC2C, 0x0234FC6E, 0x0139FC21, 0x0070FB41, 0x0020F9F9, 0x0073F892, 0x0165F762,
-0x02C7F6AD, 0x044DF696, 0x05ABF711, 0x06A8F7F2, 0x072CF8F9, 0x0741F9EB, 0x070AFA9D, 0x06B4FAFD,
-0x0669FB0F, 0x0649FAE5, 0x0669FA98, 0x06D6FA46, 0x0795FA11, 0x089CFA1F, 0x09D0FA96, 0x0B01FB8E,
-0x0BF1FD08, 0x0C66FEE0, 0x0C3B00D9, 0x0B7302A4, 0x0A3A03FE, 0x08DC04C9, 0x07AA0517, 0x06D90525,
-0x06710546, 0x064705C0, 0x060A06B3, 0x0566080D, 0x041E098B, 0x021F0AD5, 0xFF890B96, 0xFC9B0B95,
-0xF9A30ABA, 0xF6EE0910, 0xF4B806BA, 0xF32E03E7, 0xF26C00D0, 0xF27DFDB5, 0xF357FADA, 0xF4D6F87F,
-0xF6BAF6D3, 0xF8AEF5E3, 0xFA64F590, 0xFBA7F593, 0xFC72F596, 0xFCF6F550, 0xFD86F4A3, 0xFE79F3AA,
-0x0004F2B5, 0x0227F225, 0x04A6F24D, 0x0720F353, 0x0930F523, 0x0A8CF779, 0x0B1CF9FD, 0x0AEFFC60,
-0x0A35FE6B, 0x09220009, 0x07E2013B, 0x06940209, 0x05510282, 0x042C02B1, 0x033C02AD, 0x028C0297,
-0x0216029A, 0x01B802D9, 0x013D0361, 0x006B041A, 0xFF1D04CB, 0xFD550527, 0xFB4104F0, 0xF92E040B,
-0xF7690287, 0xF624009A, 0xF56EFE85, 0xF531FC7A, 0xF54AFA90, 0xF59EF8C3, 0xF62AF706, 0xF6F9F559,
-0xF817F3D1, 0xF97CF28D, 0xFB04F1A9, 0xFC7DF11F, 0xFDC1F0C5, 0xFED4F05A, 0xFFECEFAD, 0x0161EEBD,
-0x0387EDD0, 0x0678ED62, 0x09F7EDFF, 0x0D73EFFF, 0x102DF35C, 0x1180F7A2, 0x1119FC0C, 0x0F1FFFC4,
-0x09F7080F, 0x07C60A68, 0x04E00BB1, 0x01E00BBC, 0xFF5E0AB7, 0xFDB80917, 0xFCF8076B, 0xFCD2061F,
-0xFCD40555, 0xFC9804D9, 0xFBF90445, 0xFB27032F, 0xFA930165, 0xFAC2FF0C, 0xFC13FC9D, 0xFE89FABE,
-0x01CAFA06, 0x052CFAC5, 0x07F4FCE1, 0x098FFFDF, 0x09C6030E, 0x08C805BE, 0x0717077E, 0x0556083D,
-0x04070843, 0x03650811, 0x03500829, 0x036108D9, 0x03190A1F, 0x02150BA8, 0x00360CF2, 0xFDB40D81,
-0xFB040D0C, 0xF8B60B9B, 0xF7370986, 0xF6B50750, 0xF709057D, 0xF7CF0461, 0xF8890406, 0xF8D10430,
-0xF8790476, 0xF7990472, 0xF67C03E0, 0xF58202BA, 0xF4F70131, 0xF4FAFF95, 0xF570FE33, 0xF61DFD3A,
-0xF6B5FCA6, 0xF700FC4B, 0xF6EAFBE1, 0xF68CFB25, 0xF622F9EA, 0xF5F7F828, 0xF652F5FD, 0xF765F3A8,
-0xF942F178, 0xFBD8EFBF, 0xFEF3EEC2, 0x0244EEA9, 0x0570EF79, 0x0826F10C, 0x0A2CF31A, 0x0B77F54B,
-0x0C28F751, 0x0C84F902, 0x0CD6FA64, 0x0D52FBAC, 0x0DFCFD25, 0x0E9FFF11, 0x0EE2017E, 0x0E690441,
-0x0D0006F5, 0x0AB20921, 0x07D20A61, 0x04DC0A8F, 0x024D09CF, 0x00740880, 0xFF5C0716, 0xFECE05ED,
-0xFE6D0526, 0xFDE604A0, 0xFD130410, 0xFC0C0326, 0xFB1C01B3, 0xFA9CFFC4, 0xFACFFD9E, 0xFBC4FBA2,
-0xFD4EFA28, 0xFF1AF962, 0x00C7F949, 0x0211F9A7, 0x02DAFA2D, 0x0336FA90, 0x0359FAA1, 0x0383FA58,
-0x03E8F9CB, 0x04A6F926, 0x05BFF897, 0x0723F847, 0x08B2F84C, 0x0A4BF8AD, 0x0BD0F961, 0x0D2EFA58,
-0x0E5FFB7C, 0x0F66FCBA, 0x1051FE0D, 0x112FFF7A, 0x12030116, 0x12BF02F7, 0x1342052E, 0x136007B4,
-0x12ED0A6B, 0x11D10D1C, 0x10130F87, 0x0DD51178, 0x0B5112D4, 0x08BE139E, 0x064213F5, 0x03E813FC,
-0x01A313CC, 0xFF5C1365, 0xFD0712AF, 0xFAB21185, 0xF8870FCF, 0xF6C30D8D, 0xF5A10AE4, 0xF5450816,
-0xF5AE0573, 0xF6B6033F, 0xF81A01A3, 0xF99300A1, 0xFAE50019, 0xFBF1FFD7, 0xFCBDFFA5, 0xFD67FF5D,
-0xFE1FFEF7, 0xFF0CFE8B, 0x0041FE4A, 0x01ABFE6A, 0x0315FF14, 0x0433004C, 0x04BA01E6, 0x047D038D,
-0x038804D8, 0x021E056E, 0x00B10526, 0xFFBE041F, 0xFF9B02B9, 0x005F017B, 0x01CC00DE, 0x036B0125,
-0x04B40240, 0x054803D5, 0x05130564, 0x04500683, 0x036F0709, 0x02DB0721, 0x02C60732, 0x030D07AE,
-0x034608D8, 0x02E80A9B, 0x018F0C8D, 0xFF290E12, 0xFC070E9D, 0xF8BF0DE4, 0xF5F10C02, 0xF4130963,
-0xF3430698, 0xF34A041C, 0xF3C4022A, 0xF44A00B2, 0xF4A6FF6F, 0xF4E2FE16, 0xF537FC7D, 0xF5ECFAAF,
-0xF72DF8E9, 0xF8F9F777, 0xFB20F696, 0xFD5BF65D, 0xFF68F6BE, 0x011DF78E, 0x026BF8A3, 0x0351F9DB,
-0x03D3FB1F, 0x03EFFC5B, 0x03A3FD70, 0x02FAFE35, 0x021AFE7F, 0x013EFE3C, 0x00AFFD78, 0x00A3FC6B,
-0x012BFB5F, 0x022BFA9B, 0x0369FA48, 0x04A4FA61, 0x05B2FABF, 0x0692FB34, 0x0765FBA0, 0x0854FC0F,
-0x0978FCAC, 0x0ABFFDB3, 0x0BEEFF4C, 0x0CB30177, 0x0CC40403, 0x0BF80699, 0x0A5B08DB, 0x08220A7E,
-0x05980B5F, 0x030A0B80, 0x00AF0AFD, 0xFEA50A00, 0xFCF708AB, 0xFBA40719, 0xFAAC0559, 0xFA100377,
-0xF9D4017F, 0xF9FBFF7D, 0xFA8EFD82, 0xFB92FBA0, 0xFD0EF9F5, 0xFEFDF8AA, 0x0148F7ED, 0x03B9F7E8,
-0x0601F8A9, 0x07CAFA13, 0x08D2FBD7, 0x0909FD89, 0x08A5FEC0, 0x080CFF42, 0x07BAFF21, 0x0806FEB5,
-0x08FDFE7D, 0x0A5AFEE5, 0x0B9D0018, 0x0C4701E0, 0x0C1603C2, 0x0B270530, 0x09EE05CF, 0x090405A3,
-0x08DE0512, 0x099504BD, 0x0AD50532, 0x0BFF06AF, 0x0C6D0901, 0x0BB90B98, 0x09EA0DC6, 0x076C0F07,
-0x04DB0F36, 0x02C20E93, 0x015C0D97, 0x008B0CBB, 0xFFF20C39, 0xFF2F0BFB, 0xFE110BAF, 0xFCAF0AF6,
-0xFB60099C, 0xFA8B07B1, 0xFA780582, 0xFB310375, 0xFC8801DF, 0xFE3100E5, 0xFFEA007F, 0x018B008E,
-0x030E00F8, 0x047101B8, 0x05A702D9, 0x0687045C, 0x06E00624, 0x069707EE, 0x05BC096D, 0x04920A65,
-0x03730AD7, 0x02A50AFF, 0x022F0B38, 0x01D10BCC, 0x01210CC0, 0xFFC60DC4, 0xFDB30E50, 0xFB430DE6,
-0xF91F0C57, 0xF7F709F1, 0xF832076D, 0xF9AA05A8, 0xFBB60546, 0xFD5E0663, 0xFDCA087A, 0xFC980A9B,
-0xFA0E0BCB, 0xF6FD0B69, 0xF4680976, 0xF318068C, 0xF34C039A, 0xF4A60179, 0xF65F0093, 0xF7A200C0,
-0xF7EC0161, 0xF73E01AF, 0xF6120118, 0xF51DFF77, 0xF501FD21, 0xF607FAB0, 0xF810F8C8, 0xFAAFF7D4,
-0xFD58F7EE, 0xFF99F8E5, 0x0133FA65, 0x021FFC1B, 0x026EFDCB, 0x023EFF50, 0x01A50094, 0x00B9017E,
-0xFF9C01F5, 0xFE8001EF, 0xFD9B017B, 0xFD1700CC, 0xFCF40022, 0xFD0BFFAF, 0xFD1BFF7F, 0xFCEDFF67,
-0xFC78FF20, 0xFBEDFE66, 0xFBAAFD28, 0xFC0AFB9C, 0xFD39FA30, 0xFF11F95F, 0x0124F978, 0x02E8FA75,
-0x03F2FC02, 0x0423FD98, 0x03B7FEC5, 0x031EFF5B, 0x02C3FF85, 0x02D5FFA9, 0x0324002F, 0x03420146,
-0x02B402BA, 0x0136040B, 0xFEEB049D, 0xFC500402, 0xFA16022E, 0xF8D3FF7A, 0xF8CBFC86, 0xF9DDF9F3,
-0xFB98F825, 0xFD75F727, 0xFF18F6B6, 0x006AF676, 0x0198F623, 0x02EBF5B3, 0x0495F55D, 0x0692F56B,
-0x08A4F617, 0x0A74F763, 0x0BBAF919, 0x0C60FAE6, 0x0C85FC7F, 0x0C68FDC2, 0x0C45FEBC, 0x0C37FF98,
-0x0C30007C, 0x0C0D016F, 0x0BB40256, 0x0B2D0305, 0x0AA5035F, 0x0A580372, 0x0A6C0374, 0x0ADD03AD,
-0x0B740453, 0x0BE3056B, 0x0BEC06C7, 0x0B810818, 0x0ACE0922, 0x0A1F09D8, 0x09B40A6D, 0x09930B3B,
-0x09790C92, 0x08EE0E85, 0x077910CC, 0x04DE12D8, 0x01411400, 0xFD2813C8, 0xF94D1210, 0xF65C0F26,
-0xF4B90BA4, 0xF45D0838, 0xF4EE055F, 0xF5E60344, 0xF6D701BD, 0xF7940070, 0xF836FF0B, 0xF908FD6A,
-0xFA58FBAB, 0xFC50FA1D, 0xFEE0F91B, 0x01C8F8EA, 0x04B0F9A2, 0x0747FB35, 0x0950FD7A, 0x0AA2003F,
-0x0B240358, 0x0AB8068F, 0x094A09A0, 0x06D80C30, 0x038D0DD5, 0xFFC90E37, 0xFC1C0D2C, 0xF9230AD9,
-0xF8490132, 0xF8E1FDFD, 0xFA6EFB73, 0xFC76F9C2, 0xFE90F8CC, 0x0093F849, 0x0295F805, 0x04CAF7FF,
-0x0752F877, 0x0A0FF9C6, 0x0C98FC31, 0x0E58FFB2, 0x0EC603E6, 0x0D9E0828, 0x0AFE0BBE, 0x075F0E1D,
-0x036A0F0D, 0xFFBF0EB8, 0xFCC50D86, 0xFA930BF3, 0xF9000A60, 0xF7C508F8, 0xF69E07B3, 0xF5680667,
-0xF42504E6, 0xF2EE0312, 0xF1E700DE, 0xF134FE51, 0xF0F5FB76, 0xF149F864, 0xF250F540, 0xF41FF240,
-0xF6B4EFAD, 0xF9EAEDD4, 0xFD70ECEE, 0x00DFED05, 0x03D2EDEE, 0x0609EF4E, 0x0780F0B7, 0x086DF1CF,
-0x092EF26C, 0x0A21F2A4, 0x0B80F2BC, 0x0D51F307, 0x0F69F3C9, 0x1185F51F, 0x1365F6F7, 0x14E4F928,
-0x1601FB88, 0x16CBFE00, 0x17550093, 0x179A0350, 0x177E0645, 0x16D70963, 0x157F0C7D, 0x136C0F50,
-0x10BA1193, 0x0DA71317, 0x0A8413CD, 0x079713D4, 0x050A1363, 0x02DF12BB, 0x00F7120A, 0xFF1F115A,
-0xFD2B108F, 0xFB0C0F71, 0xF8E10DC1, 0xF6F00B52, 0xF59E0827, 0xF54D047A, 0xF63F00BB, 0xF877FD7A,
-0xFBADFB3F, 0xFF5BFA62, 0x02DDFAF0, 0x059AFCA1, 0x0738FEEC, 0x07B0012F, 0x074E02E6, 0x069803D1,
-0x06120407, 0x061803E2, 0x06B803DC, 0x07B70458, 0x08AC057E, 0x092F072E, 0x09040912, 0x082D0AC5,
-0x06E80BFE, 0x05890CA7, 0x045A0CE1, 0x037B0CEC, 0x02DD0D04, 0x02530D45, 0x01AF0DA6, 0x00DF0E01,
-0xFFF30E2F, 0xFF160E27, 0xFE6D0E05, 0xFE010E00, 0xFDAE0E4E, 0xFD290F03, 0xFC1F0FFE, 0xFA5A10E8,
-0xF7DE114E, 0xF4F510C7, 0xF21E0F21, 0xEFE80C73, 0xEEC8091E, 0xEEEE05B7, 0xF03E02D4, 0xF24E00EC,
-0xF48F002C, 0xF66F0077, 0xF783016B, 0xF7A40285, 0xF6F10342, 0xF5C5034B, 0xF4960281, 0xF3D3010A,
-0xF3C8FF3C, 0xF484FD86, 0xF5DCFC4E, 0xF774FBCF, 0xF8E4FC0E, 0xF9CDFCD9, 0xF9FAFDD2, 0xF96FFE8F,
-0xF864FEB6, 0xF736FE14, 0xF650FCAB, 0xF60FFAB3, 0xF6A9F885, 0xF827F68C, 0xFA5DF528, 0xFCFAF49B,
-0xFF9CF4FB, 0x01E0F631, 0x037CF7FD, 0x0449FA06, 0x0452FBEF, 0x03C7FD70, 0x02F3FE63, 0x0224FECE,
-0x0195FEDB, 0x015BFECB, 0x0165FED9, 0x0182FF27, 0x017AFFB0, 0x0126004F, 0x008000CD, 0xFFA400FC,
-0xFEC600CB, 0xFE18004A, 0xFDB4FFA8, 0xFD91FF12, 0xFD89FEA5, 0xFD6EFE59, 0xFD26FE05, 0xFCBAFD76,
-0xFC5BFC89, 0xFC4EFB42, 0xFCCAF9D7, 0xFDDEF89B, 0xFF5FF7E0, 0x00F5F7D4, 0x0235F865, 0x02D3F943,
-0x02BCF9F8, 0x0229FA18, 0x018BF965, 0x016AF7ED, 0x0230F60A, 0x0407F447, 0x06C9F32E, 0x0A0CF323,
-0x0D45F440, 0x0FF4F659, 0x11CAF90B, 0x12B6FBE2, 0x12E2FE7E, 0x129A00AD, 0x122C026C, 0x11D203E2,
-0x119E0548, 0x118106CE, 0x11500891, 0x10DB0A90, 0x0FF80CAE, 0x0E910EC0, 0x0CA6108E, 0x0A4F11E9,
-0x07B612AB, 0x051512C5, 0x02A8123F, 0x00A4113C, 0xFF270FF2, 0xFE360EA3, 0xFDB30D87, 0xFD680CC0,
-0xFD190C4A, 0xFC950C05, 0xFBCB0BB8, 0xFACE0B30, 0xF9CB0A4E, 0xF8F60916, 0xF87407AA, 0xF84B0636,
-0xF86404DB, 0xF89C039C, 0xF8DE025E, 0xF93800FB, 0xF9DEFF5D, 0xFB13FD9E, 0xFD0DFC0A, 0xFFC7FB15,
-0x02F4FB29, 0x060BFC7D, 0x086AFEF1, 0x09980208, 0x09720511, 0x08460763, 0x06B308A0, 0x057708DD,
-0x051908A0, 0x05B608AB, 0x06EA09B0, 0x07EC0C04, 0x07E00F74, 0x0624134D, 0x02961696, 0xFDA51864,
-0xF831182E, 0xF33F15F4, 0xEFA5123F, 0xEDCC0DEB, 0xED9C09D8, 0xEE9006A8, 0xEFF80494, 0xF136036D,
-0xF1F202C2, 0xF22B0216, 0xF2230115, 0xF23BFFAB, 0xF2C2FE03, 0xF3D5FC6E, 0xF55EFB3B, 0xF718FA96,
-0xF8B9FA7F, 0xFA07FAC7, 0xFAF3FB2D, 0xFB95FB78, 0xFC26FB90, 0xFCDAFB86, 0xFDD0FB8F, 0xFEF6FBEA,
-0x0015FCC1, 0x00DAFE11, 0x00FEFFA2, 0x00670112, 0xFF3701F9, 0xFDD00211, 0xFCB40155, 0xFC550011,
-0xFCECFECD, 0xFE57FE20, 0x001EFE7B, 0x019AFFF7, 0x0229024C, 0x016A04DD, 0xFF6206F2, 0xFC7707F0,
-0xF951078D, 0xF6A005E1, 0xF4E5035A, 0xF450008D, 0xF4C2FE04, 0xF5E0FC1C, 0xF73EFAEF, 0xF87FFA64,
-0xF968FA3D, 0xF9E8FA38, 0xFA08FA16, 0xF9E9F9A8, 0xF9BBF8CE, 0xF9BCF77C, 0xFA30F5C2, 0xFB5AF3D7,
-0xFD5CF218, 0x0025F0F3, 0x0363F0CD, 0x0693F1D1, 0x0923F3E0, 0x0AA2F688, 0x0AF4F92B, 0x0A55FB34,
-0x094DFC4D, 0x0875FC7D, 0x0841FC24, 0x08D0FBC8, 0x09EBFBDF, 0x0B26FC9E, 0x0C17FDEA, 0x0C85FF70,
-0x0C7E00D7, 0x0C4401F0, 0x0C2002CA, 0x0C3703A4, 0x0C6E04C7, 0x0C7A0650, 0x0C08081D, 0x0AF109D4,
-0x09530B13, 0x078E0B9D, 0x06140B85, 0x05350B29, 0x04F10B07, 0x04EE0B85, 0x04A00CBA, 0x03810E5D,
-0x01520FD9, 0xFE361086, 0xFAAE0FED, 0xF76C0DEF, 0xF5120AD2, 0xF4080720, 0xF45C037E, 0xF5CE0078,
-0xF7EEFE60, 0xFA42FD47, 0xFC60FD0C, 0xFE02FD68, 0xFF08FE07, 0xFF7BFE93, 0xFF87FEC6, 0xFF78FE75,
-0xFFA6FD9E, 0x0067FC75, 0x01E8FB55, 0x0421FAAF, 0x06C6FAE0, 0x0961FC0E, 0x0B79FE17, 0x0CC00098,
-0x0D30031A, 0x0D08053E, 0x0CB006E8, 0x0C820845, 0x0C9E09AF, 0x0CDB0B7F, 0x0CDE0DD9, 0x0C43109E,
-0x0AD51373, 0x08A015F1, 0x05E917D5, 0x0309191B, 0x003519F4, 0xFD661AA3, 0xFA5F1B44, 0xF6D61BB1,
-0xF2AC1B84, 0xEE111A42, 0xE9861798, 0xE5B8138B, 0xE33F0E83, 0xE261092B, 0xE300043B, 0xE4A7002F,
-0xE6BDFD2E, 0xE8C3FB08, 0xEA78F95E, 0xEBE2F7D2, 0xED34F62B, 0xEEABF463, 0xF070F294, 0xF293F0E3,
-0xF511EF6A, 0xF7E8EE40, 0xFB1DED81, 0xFEAAED5A, 0x026EEE0B, 0x0616EFC6, 0x0928F28F, 0x0B2AF61E,
-0x0BCFF9E5, 0x0B2AFD36, 0x09AFFF84, 0x0814009E, 0x070800CB, 0x06EE00AA, 0x07B000F5, 0x08C80230,
-0x097E046E, 0x0936074E, 0x07B00A26, 0x051F0C4F, 0x02040D69, 0xFEEF0D76, 0xFC3E0CC2, 0xF9FF0BAB,
-0xF8020A64, 0xF61208D9, 0xF42A06BF, 0xF29903D2, 0xF1EB000F, 0xF2A9FBDC, 0xF517F7F6, 0xF8FEF532,
-0x09A104D6, 0x092507A7, 0x080A09FC, 0x06A60BCC, 0x05330D3F, 0x03B50E88, 0x02090FC2, 0x000110D7,
-0xFD8C118D, 0xFAC9119D, 0xF80610E1, 0xF59D0F67, 0xF3D20D70, 0xF2B10B54, 0xF2100957, 0xF1AC078C,
-0xF15205D0, 0xF10003E1, 0xF0F1018F, 0xF184FEE4, 0xF309FC30, 0xF595F9F7, 0xF8E5F8C2, 0xFC6DF8E2,
-0xFF81FA4E, 0x0198FC9F, 0x0279FF33, 0x024D0171, 0x018A02F6, 0x00B803BC, 0x003D040E, 0x0032045A,
-0x006304FF, 0x006A0618, 0xFFE70778, 0xFEB108B6, 0xFCE80963, 0xFAF10937, 0xF9490834, 0xF85806A4,
-0xF84804FE, 0xF8FB03BC, 0xFA16032C, 0xFB2C0360, 0xFBDC042A, 0xFBF5053B, 0xFB790641, 0xFA8F0703,
-0xF969076C, 0xF82F0788, 0xF6EE076A, 0xF59A0721, 0xF42506A0, 0xF28705CA, 0xF0D50474, 0xEF3E0280,
-0xEE05FFEA, 0xED6BFCCE, 0xEDA2F964, 0xEEBFF5F6, 0xF0B7F2CD, 0xF368F021, 0xF6A5EE1A, 0xFA3DECCB,
-0xFE05EC3B, 0x01D6EC69, 0x058CED54, 0x0903EEF4, 0x0C14F139, 0x0E9BF409, 0x107EF73E, 0x11AFFAAD,
-0x122DFE2D, 0x1205019D, 0x114104E5, 0x0FE907F0, 0x0E020AA6, 0x0B920CE6, 0x08AE0E84, 0x05830F55,
-0x02570F3F, 0xFF7C0E49, 0xFD430CA3, 0xFBDB0A9F, 0xFB47089E, 0xFB5B06F3, 0xFBCA05C8, 0xFC42051B,
-0xFC8C04BC, 0xFC9A0470, 0xFC850406, 0xFC7C036F, 0xFCA702C1, 0xFD0F022A, 0xFD9B01D0, 0xFE1901BD,
-0xFE5C01D6, 0xFE5201E2, 0xFE1701AA, 0xFDE60110, 0xFE040027, 0xFE9AFF2A, 0xFFA8FE62, 0x00FAFE0B,
-0x0245FE31, 0x0349FEAB, 0x03EDFF30, 0x0455FF77, 0x04D0FF60, 0x05B8FF09, 0x0745FEC9, 0x0971FF13,
-0x0BF1004D, 0x0E4302A6, 0x0FDD0600, 0x105109FC, 0x0F710E12, 0x0D5311B8, 0x0A451486, 0x06B11647,
-0x030016F9, 0xFF8416BE, 0xFC7115CD, 0xF9DD145C, 0xF7CB1298, 0xF63610A3, 0xF5110E94, 0xF4540C79,
-0xF3F70A5A, 0xF3FC083C, 0xF46C0629, 0xF5520433, 0xF6B9027D, 0xF89A0138, 0xFAD50098, 0xFD2B00C7,
-0xFF4A01CD, 0x00DC038A, 0x01A005B7, 0x018007F6, 0x009109EC, 0xFF100B58, 0xFD450C1F, 0xFB750C4B,
-0xF9C90BFE, 0xF8510B58, 0xF70C0A6F, 0xF5FA0947, 0xF52907DD, 0xF4B20639, 0xF4B40475, 0xF53F02C2,
-0xF6490159, 0xF7A80068, 0xF91F0002, 0xFA72001B, 0xFB780088, 0xFC270118, 0xFC8F01A2, 0xFCCD0213,
-0xFCFC026F, 0xFD2802C4, 0xFD4F0320, 0xFD630388, 0xFD5C03F5, 0xFD38045A, 0xFCFE04AF, 0xFCB504F3,
-0xFC62052A, 0xFBFD0558, 0xFB7D0571, 0xFAE30563, 0xFA3E0516, 0xF9B2047E, 0xF96A03A7, 0xF98802BA,
-0xFA1201F0, 0xFAE90182, 0xFBD2018E, 0xFC8B020A, 0xFCE002CD, 0xFCC40396, 0xFC4C042F, 0xFBA6047C,
-0xFAFE0484, 0xFA6E0463, 0xF9EE043B, 0xF9630416, 0xF8AE03E4, 0xF7C4037A, 0xF6BD02A9, 0xF5CF0156,
-0xF53CFF84, 0xF53EFD60, 0xF5F1FB2C, 0xF74EF92E, 0xF930F79C, 0xFB64F693, 0xFDBBF615, 0x000FF618,
-0x0249F68B, 0x045BF75E, 0x0638F886, 0x07D6F9F5, 0x092DFB9E, 0x0A39FD73, 0x0AFAFF68, 0x0B71017A,
-0x0B9703A8, 0x0B5805EF, 0x0A9C083B, 0x094C0A62, 0x076C0C29, 0x051F0D53, 0x02AC0DB8, 0x006B0D5B,
-0xFEA80C6D, 0xFD880B42, 0xFCF90A33, 0xFCBD0979, 0xFC840919, 0xFC1008E8, 0xFB53089C, 0xFA7307F6,
-0xF9BB06E2, 0xF9710581, 0xF9B80420, 0xFA7A0312, 0xFB6E028C, 0xFC3A0288, 0xFC9B02CA, 0xFC8102F7,
-0xFC1B02BC, 0xFBBE01F7, 0xFBC900BF, 0xFC76FF5E, 0xFDCFFE32, 0xFFA5FD89, 0x01ACFD8B, 0x039BFE31,
-0x053AFF54, 0x067800C3, 0x07590259, 0x07E90404, 0x083305BD, 0x08330783, 0x07DF094B, 0x07340B00,
-0x06390C8B, 0x04FF0DDB, 0x039B0EEE, 0x021A0FC9, 0x007A1073, 0xFEB210E8, 0xFCBB110F, 0xFAA210C7,
-0xF88E0FF1, 0xF6BC0E85, 0xF56C0CA1, 0xF4C80A82, 0xF4D80874, 0xF57B06BD, 0xF6750582, 0xF78604C7,
-0xF8810470, 0xF9560458, 0xFA0A0467, 0xFAAA0496, 0xFB3704F1, 0xFB9F0585, 0xFBBD064D, 0xFB6E0726,
-0xFAA407D5, 0xF9790818, 0xF82A07C0, 0xF70C06C3, 0xF66F0548, 0xF685039C, 0xF754021A, 0xF8B10113,
-0xFA5400B6, 0xFBE8010B, 0xFD2601EE, 0xFDE50324, 0xFE1D046B, 0xFDE8058D, 0xFD72066C, 0xFCEB0709,
-0xFC760780, 0xFC1C07FC, 0xFBC308A5, 0xFB3B098E, 0xFA450AA3, 0xF8B40BAA, 0xF67C0C4C, 0xF3C90C2E,
-0xF0F50B13, 0xEE7708F3, 0xECBE0605, 0xEC0B02B3, 0xEC64FF75, 0xED8EFCAF, 0xEF2DFA8F, 0xF0E9F908,
-0xF292F7E6, 0xF42AF6ED, 0xF5DCF605, 0xF7D7F547, 0xFA29F4F4, 0xFCA6F555, 0xFEEDF691, 0x008AF888,
-0x0125FAD7, 0x00AEFCF1, 0xFF65FE51, 0xFDCCFEAE, 0xFC74FE13, 0xFBCDFCD8, 0xFBF8FB7D, 0xFCCCFA75,
-0xFDE8F9F9, 0xFEE8F9FB, 0xFF91FA34, 0xFFEAFA4D, 0x0031FA0C, 0x00BDF975, 0x01D4F8C4, 0x0385F85A,
-0x05A1F893, 0x07CBF9A4, 0x0994FB84, 0x0AA6FDF3, 0x0AD6008F, 0x0A3202F6, 0x08EF04DC, 0x075B061F,
-0x05BE06C1, 0x045306E5, 0x033606BC, 0x02680678, 0x01D4063D, 0x0157061E, 0x00CC0611, 0x001C05FB,
-0xFF4A05B0, 0xFE74050D, 0xFDD00404, 0xFD9A02AC, 0xFDFF0142, 0xFF010016, 0x0072FF76, 0x01FFFF89,
-0x03460043, 0x0401015F, 0x041A0280, 0x03B9034F, 0x032E039F, 0x02D00380, 0x02D40333, 0x03370308,
-0x03C10339, 0x042303C7, 0x041E047C, 0x03A804FF, 0x02F70500, 0x02700462, 0x027D034F, 0x035F022C,
-0x05110178, 0x0744019E, 0x097B02C9, 0x0B3A04DD, 0x0C2A0783, 0x0C310A4C, 0x0B730CD8, 0x0A350EF2,
-0x08BF1099, 0x073E11E9, 0x05BE130C, 0x042E141C, 0x0271151B, 0x007615F4, 0xFE381689, 0xFBCB16BE,
-0xF9481684, 0xF6CB15D8, 0xF46C14BC, 0xF2401339, 0xF05B1156, 0xEED20F21, 0xEDB90CAD, 0xED200A17,
-0xED0B0782, 0xED6E050F, 0xEE3702D6, 0xEF4E00E5, 0xF0A0FF3D, 0xF222FDE2, 0xF3CAFCD8, 0xF58DFC2C,
-0xF752FBE7, 0xF8FBFC0C, 0xFA65FC8B, 0xFB73FD44, 0xFC22FE0C, 0xFC7FFEBC, 0xFCADFF3E, 0xFCCEFF93,
-0x0429FC0A, 0x0619FD70, 0x0767FF76, 0x07EC01C0, 0x07B103F8, 0x06E305E6, 0x05B60773, 0x044F08A6,
-0x02BA0988, 0x00F70A17, 0xFF0B0A3B, 0xFD1009D7, 0xFB3A08DA, 0xF9C80751, 0xF8F1056D, 0xF8CC0378,
-0xF94701BD, 0xFA2A0071, 0xFB34FFA1, 0xFC28FF36, 0xFCECFF04, 0xFD83FEDC, 0xFE07FEA3, 0xFE99FE59,
-0xFF4EFE0D, 0x002BFDD9, 0x0127FDD1, 0x0231FE00, 0x033AFE68, 0x0435FF08, 0x0514FFE0, 0x05C700EB,
-0x063D021D, 0x0666035F, 0x06400490, 0x05DD058F, 0x05620646, 0x04FC06BA, 0x04D1070A, 0x04EE076A,
-0x0540080B, 0x05990910, 0x05C00A79, 0x05840C2D, 0x04CA0DFE, 0x038E0FBA, 0x01E01139, 0xFFD81263,
-0xFD8F1325, 0xFB1D1374, 0xF89C1344, 0xF6301290, 0xF4031160, 0xF23C0FD4, 0xF0F00E1F, 0xF0140C7A,
-0xEF7D0B0D, 0xEEEE09DE, 0xEE3408CA, 0xED3E078E, 0xEC2D05EA, 0xEB4B03BA, 0xEAEE0112, 0xEB59FE36,
-0xEC9BFB8C, 0xEE88F96E, 0xF0CDF811, 0xF30CF774, 0xF501F766, 0xF691F7A3, 0xF7CCF7F3, 0xF8D8F83A,
-0xF9D7F87E, 0xFAD2F8D5, 0xFBC0F94E, 0xFC89F9E6, 0xFD27FA88, 0xFDA7FB1D, 0xFE26FB9F, 0xFEC2FC28,
-0xFF7FFCE8, 0x0037FE0D, 0x00A2FFA8, 0x00730197, 0xFF750387, 0xFDAC050D, 0xFB5905C9, 0xF8E9058F,
-0xF6D00473, 0xF56402C2, 0xF4C000E3, 0xF4C8FF33, 0xF53BFDEC, 0xF5CDFD17, 0xF646FC99, 0xF68AFC47,
-0xF699FBF8, 0xF680FB90, 0xF652FAFD, 0xF623FA35, 0xF60BF92F, 0xF629F7EC, 0xF6A4F67D, 0xF79AF50D,
-0xF911F3DB, 0xFAE8F328, 0xFCD6F31F, 0xFE82F3B8, 0xFF9DF4B9, 0x0009F5C1, 0xFFE5F66A, 0xFF87F673,
-0xFF5BF5D9, 0xFFBBF4D7, 0x00CBF3D1, 0x0272F328, 0x0465F317, 0x064FF3A5, 0x07EEF4A7, 0x092FF5E1,
-0x0A25F721, 0x0AF5F85B, 0x0BB9F9A1, 0x0C6EFB12, 0x0CF0FCBF, 0x0D13FE9A, 0x0CBB0071, 0x0BF00207,
-0x0AE0032D, 0x09D103D7, 0x08FD0427, 0x087F0459, 0x084604A9, 0x08230539, 0x07DD0604, 0x074F06E3,
-0x067707A5, 0x05710820, 0x046A084B, 0x038A0836, 0x02E20805, 0x026D07D9, 0x021407C7, 0x01C007CF,
-0x016107E9, 0x00F2080A, 0x0071082D, 0xFFD8084D, 0xFF1F0864, 0xFE3C085D, 0xFD310818, 0xFC180774,
-0xFB21065F, 0xFA8704E3, 0xFA7E032F, 0xFB160188, 0xFC3A0036, 0xFDB0FF66, 0xFF35FF1C, 0x0096FF38,
-0x01C1FF86, 0x02D0FFDC, 0x03F00032, 0x054A00AA, 0x06E30183, 0x089302FC, 0x0A060537, 0x0ADD081F,
-0x0AC80B6E, 0x09A70EBA, 0x07911197, 0x04CF13B5, 0x01BD14F5, 0xFEB21567, 0xFBE9153B, 0xF97314AB,
-0xF74613DF, 0xF54C12EB, 0xF37311C8, 0xF1BF1064, 0xF0480EB6, 0xEF330CC6, 0xEE9D0AB8, 0xEE9308C1,
-0xEEFE071C, 0xEFAE05F2, 0xF05D0552, 0xF0C9051F, 0xF0C30521, 0xF045050B, 0xEF72049B, 0xEE8E03AC,
-0xEDE60245, 0xEDB60098, 0xEE12FEF1, 0xEEDDFD9C, 0xEFD5FCC4, 0xF0A5FC65, 0xF10EFC48, 0xF0FAFC17,
-0xF08EFB7C, 0xF01AFA44, 0xF006F871, 0xF0A7F641, 0xF22CF416, 0xF487F261, 0xF777F17A, 0xFA99F191,
-0xFD86F2A3, 0xFFE5F485, 0x017EF6F1, 0x0239F995, 0x021BFC27, 0x0142FE65, 0xFFDB001D, 0xFE200132,
-0xFC51019E, 0xFAAA0174, 0xF95500E0, 0xF8600015, 0xF7BFFF43, 0xF74DFE85, 0xF6E5FDD5, 0xF674FD18,
-0xF604FC28, 0xF5BBFAF2, 0xF5CDF985, 0xF65BF810, 0xF766F6D7, 0xF8C0F614, 0xFA20F5DD, 0xFB3EF615,
-0xFBF2F67D, 0xFC43F6CA, 0xFC67F6CB, 0xFCA4F67E, 0xFD2BF611, 0xFE01F5CA, 0xFEF5F5DA, 0xFFBCF647,
-0x001AF6D9, 0x0002F737, 0xFFAFF70C, 0xFF8EF636, 0x0014F4E3, 0x018BF386, 0x03ECF2B0, 0x06D9F2DD,
-0x09BDF43B, 0x0C03F6A1, 0x0D47F999, 0x0D7DFC94, 0x0CE5FF1F, 0x0BED010B, 0x0AF80273, 0x0A3A03A1,
-0x09A204E5, 0x08F2066B, 0x07DC0823, 0x062F09CC, 0x03ED0B10, 0x014B0BAC, 0xFE980B82, 0xFC220AA8,
-0xFA19094D, 0xF88A07A8, 0xF76B05DF, 0xF6AC0404, 0xF649021A, 0xF64D002C, 0xF6C3FE53, 0xF7A8FCB9,
-0xF8E1FB87, 0xFA37FAD7, 0xFB6CFA9C, 0xFC51FAAB, 0xFCDDFAC4, 0xFD2BFAB0, 0xFD72FA56, 0xFDEAF9C2,
-0xFEB6F923, 0xFFD4F8AE, 0x0123F887, 0x0278F8B7, 0x03B2F92C, 0x04CBF9C8, 0x05D1FA79, 0x06D8FB48,
-0x07E8FC51, 0x08E6FDB5, 0x099FFF7F, 0x09D50195, 0x096403B5, 0x0851058B, 0x06D606D1, 0x054D076F,
-0x04130787, 0x035B076C, 0x031D0785, 0x0311081E, 0x02CA094B, 0x01E20AD8, 0x001D0C5B, 0xFD860D53,
-0xFA6F0D57, 0xF7570C39, 0xF4C30A10, 0xF31A0733, 0xF285041B, 0xF2F0013D, 0xF416FEF1, 0xF59CFD59,
-0xF72CFC6D, 0xF88CFBFE, 0xF9A4FBD5, 0xFA7DFBC2, 0xFB33FBA9, 0xFBE3FB86, 0xFCA1FB67, 0xFD71FB62,
-0xFE48FB89, 0xFF0FFBE3, 0xFFB0FC69, 0x0019FD07, 0x0047FDA3, 0x0042FE24, 0x001DFE78, 0xFFF3FE99,
-0xFFD9FE8B, 0xFFE3FE5A, 0x001FFE19, 0x0093FDDD, 0x013DFDBB, 0x0219FDCA, 0x0318FE22, 0x0421FED4,
-0x0510FFED, 0x05BE0166, 0x06030328, 0x05C60509, 0x050206D8, 0x03C90866, 0x023F0997, 0x008E0A62,
-0xFED40AD5, 0xFD210B04, 0xFB6F0B01, 0xF9B00ACC, 0xF7DF0A51, 0xF6060977, 0xF4480827, 0xF2D60664,
-0xF1DD044E, 0xF174021A, 0xF1920002, 0xF212FE2C, 0xF2C3FCA4, 0xF382FB53, 0xF448FA18, 0xF52AF8DB,
-0xF64EF7A5, 0xF7CDF69C, 0xF99DF5FD, 0xFB85F5FA, 0xFD32F69A, 0xFE50F7AE, 0xFEB1F8D9, 0xFE65F9AA,
-0xFDC0F9CC, 0xFD38F926, 0xFD40F7E9, 0xFE1AF67F, 0xFFC3F561, 0x01F5F4EE, 0x0444F54A, 0x0651F659,
-0x07E6F7D0, 0x0907F965, 0x09E4FAEB, 0x0AB5FC6A, 0x0B94FE14, 0x0C690025, 0x0CED02C0, 0x0CC505CE,
-0x0BAA0902, 0x098C0BE9, 0x069C0E17, 0x033B0F48, 0xFFDD0F7A, 0xFCD90EE1, 0xFA570DD0, 0xF8420C92,
-0xF6690B47, 0xF49709DB, 0xF2BE0817, 0xF10505C0, 0xEFBE02B9, 0xEF51FF22, 0xF00EFB56, 0xF20EF7DC,
-0xF523F53C, 0xF8DDF3DC, 0xFCAAF3E2, 0xFFF9F529, 0x025EF752, 0x03AAF9DF, 0x03EDFC55, 0x0368FE5A
-
-
-in_sequence_size =
-408
-
-in_leading_padding =
-0
-
-out_sequence_size =
-408
-
-out_leading_depadding =
-0
-
-window_index =
-2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-
-cs_bitmap =
-1
-
-num_antennas_log2 =
-3
-
-ifft_log2 =
-9
-
-fft_log2 =
-9
-
-cs_time_adjustment =
-0
-
-ifft_shift =
-4
-
-fft_shift =
-5
-
-ncs_reciprocal =
-5461
-
-op_flags =
-RTE_BBDEV_FFT_CS_ADJUSTMENT, RTE_BBDEV_FFT_WINDOWING
-
-expected_status =
-OK
diff --git a/app/test-bbdev/test_vectors/fft_byp_28.data b/app/test-bbdev/test_vectors/fft_byp_28.data
index bc875fcd81..7b7ca7a740 100644
--- a/app/test-bbdev/test_vectors/fft_byp_28.data
+++ b/app/test-bbdev/test_vectors/fft_byp_28.data
@@ -30,30 +30,30 @@ input0 =
 0xF7B50127, 0x0C83E9D9, 0x046B181F, 0x08B612A4, 0x024E0B91, 0x01000207, 0xFC97F83A, 0xF8B40DD4
 
 output0 =
-0xFFF0FE8A, 0x01B3FE2F, 0x020EFFF3, 0x000C005A, 0x0040012B, 0xFF70015F, 0xFF40FD66, 0x0120FCAD,
-0x01DAFE8E, 0xFF05FFC8, 0x00EE0080, 0x00350269, 0x0094FCA0, 0x0398FD13, 0x03240016, 0xFF7AFEFE,
-0x006401AB, 0xFDB70295, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0xFB2C034A, 0xFC8F0175, 0xFE6402D8, 0x00810097, 0x015C007D, 0x01760158, 0xFAB702B3, 0xFBC0008C,
-0xFDE80195, 0x0050FFB2, 0x012BFFF2, 0x00EB00CD, 0xFAB30041, 0xFCDDFFFF, 0xFD200228, 0xFFD70030,
-0x004A0030, 0x004A00A4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0x0157004F, 0x01B2FFA3, 0x025EFFFE, 0xFE5D048C, 0xFAC301F3, 0xFD5BFE59, 0xFFE10181, 0x0151FF78,
-0x035B00E8, 0xFE3C030C, 0xFB1CFFA5, 0xFE84FC85, 0xFDB80124, 0x0063FF8B, 0x01FC0236, 0xFEEE01EE,
-0xFD31FF7F, 0xFFA1FDC2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0x034202FC, 0xFFFF0471, 0xFE8B012F, 0x002B0237, 0x00A10164, 0x017301DA, 0x029803A6, 0xFE8A03A1,
-0xFE8EFF93, 0xFECC031E, 0xFF180338, 0xFEFE0385, 0x0199041C, 0xFE1B02C8, 0xFF6EFF4A, 0xFEAE0180,
-0xFE6A0189, 0xFE610144, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0x0143FD7B, 0x03030124, 0xFF5B02E4, 0x00A6FFE1, 0x001901AD, 0xFE4D0120, 0x0109FD68, 0x01A90075,
-0xFE9C0115, 0x01AB0028, 0xFF9D0119, 0xFEACFF0B, 0x01C2FCFD, 0x0211000C, 0xFF02005C, 0x00D600A9,
-0xFFAD0038, 0x001EFF0E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0x0180FE7E, 0x0186FED1, 0x0133FED6, 0xFE52FFE6, 0xFFCB00C9, 0xFEE70242, 0x00ACFE85, 0x019DFF6D,
-0x00B5005F, 0xFF0501FC, 0xFE9100E4, 0xFFA90070, 0x00D0FDE8, 0x017DFEDA, 0x008AFF87, 0xFDF101B9,
-0xFE30001D, 0xFFCD005C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0x032A0018, 0x0472FEFA, 0x05900042, 0x0034FE3D, 0x00AEFF8E, 0xFF5D0008, 0x031F0119, 0x055100BB,
-0x05AE02EC, 0x0036FE6A, 0x00100002, 0xFE78FFDC, 0x03D40175, 0x04410261, 0x035502CE, 0x00A0FE4E,
-0x001EFFCF, 0xFE9DFF4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
-0xFF8AFE0D, 0x01F3FFD6, 0x002A023F, 0x005FFF16, 0x020C003C, 0x00E601EA, 0x003DFE48, 0x025A00FD,
-0xFFA5031A, 0x004C0068, 0x011500DC, 0x00A101A5, 0x0087FD60, 0x01BC01B5, 0xFD6602EA, 0x006A01B3,
-0x00090192, 0x002A0131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+0xFFF0FE8A, 0x01B3FE2F, 0x020EFFF3, 0xFC0901D2, 0x027501DE, 0xFF660279, 0x00ADFA89, 0xFE72FF52,
+0x0450FD29, 0xFB34FF92, 0x032C0136, 0xFE780346, 0x01BFFAC9, 0x00DDFF9A, 0x068FFF1F, 0xFB6DFF18,
+0x02D9034F, 0xFCFF0289, 0x0101FEA7, 0xFD2D016A, 0x02E40068, 0x00000000, 0x00000000, 0x00000000,
+0xFB2C034A, 0xFC8F0175, 0xFE6402D8, 0x0054FD1C, 0xFFA403AA, 0x02E1000F, 0xFBBE06CD, 0xFB8FFDEA,
+0xFF910362, 0x0031FCA4, 0x00BA02DD, 0x0138FE72, 0xFBC80412, 0xFC67FD73, 0xFEDA0415, 0x00D3FD1C,
+0xFDCA02DA, 0x0260FF7E, 0x0055046F, 0x0033FCD9, 0x0115029F, 0x00000000, 0x00000000, 0x00000000,
+0x0157004F, 0x01B2FFA3, 0x025EFFFE, 0xFF090623, 0xFAA8024A, 0xFF63FD71, 0xFD3DFEE3, 0x025000C5,
+0x010A0140, 0xFEFA0575, 0xFA6BFF7D, 0x0177FCA0, 0xFC05FF1E, 0x01D500C8, 0xFFC20139, 0xFE1A0397,
+0xFD29003C, 0x020FFDE0, 0xFE3FFCB4, 0x00740264, 0xFEA4FEEA, 0x00000000, 0x00000000, 0x00000000,
+0x034202FC, 0xFFFF0471, 0xFE8B012F, 0xFF440324, 0x0224032D, 0x02A6FF74, 0x04D00629, 0xFC86FEE6,
+0xFE59041B, 0xFD140405, 0x00830542, 0x008401C8, 0x034707AB, 0xFCCEFCE1, 0xFE6304CE, 0xFD2A022A,
+0xFF88041C, 0x0080FF16, 0x005502F2, 0x0006FB55, 0xFE420451, 0x00000000, 0x00000000, 0x00000000,
+0x0143FD7B, 0x03030124, 0xFF5B02E4, 0x0064FE8F, 0xFDE7013A, 0xFEBA0406, 0x01DFFF4B, 0x023F00C1,
+0x0035FF5C, 0x01D9FF2E, 0xFD26FFAA, 0xFEB902C3, 0x020FFF39, 0x02F600F7, 0x0144FE3F, 0x00DEFE9B,
+0xFE25FE61, 0xFDC20265, 0xFFA00261, 0x00D00119, 0x02A9FE77, 0x00000000, 0x00000000, 0x00000000,
+0x0180FE7E, 0x0186FED1, 0x0133FED6, 0xFF9B01B2, 0xFD94FF7A, 0x019B0480, 0xFD99FFDF, 0x02210198,
+0x03B600C2, 0xFFE6037E, 0xFC71FF70, 0x01D90323, 0xFDA0FE73, 0x00DE01A8, 0x04810088, 0xFE5A033B,
+0xFBEDFDBF, 0x01340495, 0xFC67FFF8, 0xFE9A0247, 0x03A402B8, 0x00000000, 0x00000000, 0x00000000,
+0x032A0018, 0x0472FEFA, 0x05900042, 0xFEF6FE6B, 0x0155FDD4, 0xFD290258, 0x02FE0438, 0x077BFE5F,
+0x0447033F, 0xFEC5FC97, 0xFF6EFFE3, 0xFD27020C, 0x03810467, 0x05140185, 0x0498032B, 0x0001FE27,
+0x014EFE85, 0xFBFD0004, 0xFE8E0309, 0x018BFE07, 0xFF8601E0, 0x00000000, 0x00000000, 0x00000000,
+0xFF8AFE0D, 0x01F3FFD6, 0x002A023F, 0x0341029B, 0x01F2FC54, 0x009D030A, 0xFE5FFE5B, 0x039B01AC,
+0xFF260308, 0x023404C9, 0x01D3FCFC, 0x006402DF, 0x0043FC95, 0x02E90289, 0xFC41012D, 0x020E070B,
+0x01D0FD78, 0xFFA001E1, 0xFEA900C2, 0x022801E2, 0x007CFD4D, 0x00000000, 0x00000000, 0x00000000
 
 
 in_sequence_size =
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.438395279 +0000
+++ 0011-test-bbdev-update-FFT-test-vectors.patch	2025-03-07 12:23:38.002838176 +0000
@@ -1 +1 @@
-From 283591f1781c7c409393c0ade76ac8acfbd0bd5f Mon Sep 17 00:00:00 2001
+From ac026a011e956958b0b078af7d53f89d3d51af51 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 283591f1781c7c409393c0ade76ac8acfbd0bd5f ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org

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

* patch 'test/event: fix number of queues in eventdev conf' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (9 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/bbdev: update FFT test vectors' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/e1000: fix crashes in secondary processes' " luca.boccassi
                       ` (15 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Shijith Thotton; +Cc: Pavan Nikhilesh, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From a112fa2be633bcc4192a26657410005ccb91f646 Mon Sep 17 00:00:00 2001
From: Shijith Thotton <sthotton@marvell.com>
Date: Thu, 6 Feb 2025 20:02:44 +0530
Subject: [PATCH] test/event: fix number of queues in eventdev conf

[ upstream commit baa3cc13c1df10eb36a158c45a921ede2e806f75 ]

The unit test adapter_pollq_instance_get requires three event queues,
but the test suite was only configuring a single queue. This patch
updates the test suite setup function to configure max available queues.

Fixes: a1793ee8aba0 ("eventdev/eth_rx: add adapter instance get API")

Signed-off-by: Shijith Thotton <sthotton@marvell.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 app/test/test_event_eth_rx_adapter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_event_eth_rx_adapter.c b/app/test/test_event_eth_rx_adapter.c
index 1da7782560..addacc0329 100644
--- a/app/test/test_event_eth_rx_adapter.c
+++ b/app/test/test_event_eth_rx_adapter.c
@@ -230,7 +230,6 @@ testsuite_setup(void)
 	}
 
 	struct rte_event_dev_config config = {
-			.nb_event_queues = 1,
 			.nb_event_ports = 1,
 	};
 
@@ -242,6 +241,7 @@ testsuite_setup(void)
 			dev_info.max_event_port_enqueue_depth;
 	config.nb_events_limit =
 			dev_info.max_num_events;
+	config.nb_event_queues = dev_info.max_event_queues;
 	err = rte_event_dev_configure(TEST_DEV_ID, &config);
 	TEST_ASSERT(err == 0, "Event device initialization failed err %d\n",
 			err);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.472412609 +0000
+++ 0012-test-event-fix-number-of-queues-in-eventdev-conf.patch	2025-03-07 12:23:38.002838176 +0000
@@ -1 +1 @@
-From baa3cc13c1df10eb36a158c45a921ede2e806f75 Mon Sep 17 00:00:00 2001
+From a112fa2be633bcc4192a26657410005ccb91f646 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit baa3cc13c1df10eb36a158c45a921ede2e806f75 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 0233c87779..9a60e34352 100644
+index 1da7782560..addacc0329 100644

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

* patch 'net/e1000: fix crashes in secondary processes' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (10 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/event: fix number of queues in eventdev conf' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/ixgbe: " luca.boccassi
                       ` (14 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ce45f96ea2efb031223e66b22f134ef2e53c7b36 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Mon, 17 Feb 2025 13:54:05 +0000
Subject: [PATCH] net/e1000: fix crashes in secondary processes

[ upstream commit b0ef6e7a970bc745537c5b5140d838431f118c5e ]

Currently, the architecture of e1000 base driver is such that it uses
function pointers internally. These are not guaranteed to be valid in
secondary processes, which can lead to crashes. This patch prevents EM,
IGB and IGC ethdev drivers from calling into these functions from
secondary processes

Fixes: af75078fece3 ("first public release")
Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")
Fixes: 4f09bc55ac3d ("net/igc: implement device base operations")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/e1000em.rst    |   5 +
 doc/guides/nics/igb.rst        |  12 +++
 doc/guides/nics/igc.rst        |   5 +
 drivers/net/e1000/em_ethdev.c  |  80 +++++++++++++++
 drivers/net/e1000/igb_ethdev.c | 176 +++++++++++++++++++++++++++++++++
 drivers/net/igc/igc_ethdev.c   |  81 +++++++++++++++
 6 files changed, 359 insertions(+)

diff --git a/doc/guides/nics/e1000em.rst b/doc/guides/nics/e1000em.rst
index 5e752a29e5..ed4f57e9c6 100644
--- a/doc/guides/nics/e1000em.rst
+++ b/doc/guides/nics/e1000em.rst
@@ -153,3 +153,8 @@ The following are known limitations:
 #.  Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive.
 
 #.  Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up.
+
+Secondary Process Support
+-------------------------
+
+Control plane operations are currently not supported in secondary processes.
diff --git a/doc/guides/nics/igb.rst b/doc/guides/nics/igb.rst
index 8231f9eef4..76314f809b 100644
--- a/doc/guides/nics/igb.rst
+++ b/doc/guides/nics/igb.rst
@@ -23,6 +23,18 @@ Features of the IGB PMD are:
 * TCP segmentation offload
 * Jumbo frames supported
 
+Secondary Process Support
+-------------------------
+
+IGB Physical Function Driver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Control plane operations are currently not supported in secondary processes.
+
+IGB Virtual Function Driver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Control plane operations are currently not supported in secondary processes.
 
 Limitations or Known issues
 ---------------------------
diff --git a/doc/guides/nics/igc.rst b/doc/guides/nics/igc.rst
index 399d2d650c..e23dc46ea7 100644
--- a/doc/guides/nics/igc.rst
+++ b/doc/guides/nics/igc.rst
@@ -104,3 +104,8 @@ Add a rule to enable ipv4-udp RSS:
 .. code-block:: console
 
    testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end / end
+
+Secondary Process Support
+-------------------------
+
+Control plane operations are currently not supported in secondary processes.
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index efe3665cec..e74a58fbcf 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -532,6 +532,14 @@ eth_em_start(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	ret = eth_em_stop(dev);
 	if (ret != 0)
 		return ret;
@@ -716,6 +724,14 @@ eth_em_stop(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	dev->data->dev_started = 0;
 
 	eth_em_rxtx_control(dev, false);
@@ -1003,6 +1019,10 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	em_rxq_intr_enable(hw);
 	rte_intr_ack(intr_handle);
 
@@ -1014,6 +1034,10 @@ eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __rte_unused uint16_t queu
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	em_rxq_intr_disable(hw);
 
 	return 0;
@@ -1639,6 +1663,14 @@ eth_em_led_on(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return e1000_led_on(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -1648,6 +1680,14 @@ eth_em_led_off(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return e1000_led_off(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -1709,6 +1749,14 @@ eth_em_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	uint32_t max_high_water;
 	uint32_t rctl;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	if (fc_conf->autoneg != hw->mac.autoneg)
 		return -ENOTSUP;
@@ -1760,6 +1808,14 @@ eth_em_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	return e1000_rar_set(hw, mac_addr->addr_bytes, index);
 }
 
@@ -1769,6 +1825,14 @@ eth_em_rar_clear(struct rte_eth_dev *dev, uint32_t index)
 	uint8_t addr[RTE_ETHER_ADDR_LEN];
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return;
+
 	memset(addr, 0, sizeof(addr));
 
 	e1000_rar_set(hw, addr, index);
@@ -1778,6 +1842,14 @@ static int
 eth_em_default_mac_addr_set(struct rte_eth_dev *dev,
 			    struct rte_ether_addr *addr)
 {
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	eth_em_rar_clear(dev, 0);
 
 	return eth_em_rar_set(dev, (void *)addr, 0, 0);
@@ -1822,6 +1894,14 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	e1000_update_mc_addr_list(hw, (u8 *)mc_addr_set, nb_mc_addr);
 	return 0;
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index e9ad558c82..79d001e69a 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1206,6 +1206,14 @@ eth_igb_start(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* disable uio/vfio intr/eventfd mapping */
 	rte_intr_disable(intr_handle);
 
@@ -1421,6 +1429,14 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (adapter->stopped)
 		return 0;
 
@@ -1474,6 +1490,14 @@ eth_igb_dev_set_link_up(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->phy.media_type == e1000_media_type_copper)
 		e1000_power_up_phy(hw);
 	else
@@ -1487,6 +1511,14 @@ eth_igb_dev_set_link_down(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->phy.media_type == e1000_media_type_copper)
 		e1000_power_down_phy(hw);
 	else
@@ -2108,6 +2140,14 @@ eth_igb_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
 	struct e1000_fw_version fw;
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	e1000_get_fw_version(hw, &fw);
 
 	switch (hw->mac.type) {
@@ -2355,6 +2395,14 @@ eth_igb_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 	struct rte_eth_link link;
 	int link_check, count;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	link_check = 0;
 	hw->mac.get_link_status = 1;
 
@@ -2977,6 +3025,14 @@ eth_igb_led_on(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return e1000_led_on(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -2986,6 +3042,14 @@ eth_igb_led_off(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return e1000_led_off(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -3048,6 +3112,14 @@ eth_igb_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	uint32_t rctl;
 	uint32_t ctrl;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	if (fc_conf->autoneg != hw->mac.autoneg)
 		return -ENOTSUP;
@@ -3134,6 +3206,14 @@ eth_igb_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t rah;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	e1000_rar_set(hw, mac_addr->addr_bytes, index);
 	rah = E1000_READ_REG(hw, E1000_RAH(index));
 	rah |= (0x1 << (E1000_RAH_POOLSEL_SHIFT + pool));
@@ -3147,6 +3227,14 @@ eth_igb_rar_clear(struct rte_eth_dev *dev, uint32_t index)
 	uint8_t addr[RTE_ETHER_ADDR_LEN];
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return;
+
 	memset(addr, 0, sizeof(addr));
 
 	e1000_rar_set(hw, addr, index);
@@ -3156,6 +3244,14 @@ static int
 eth_igb_default_mac_addr_set(struct rte_eth_dev *dev,
 				struct rte_ether_addr *addr)
 {
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	eth_igb_rar_clear(dev, 0);
 	eth_igb_rar_set(dev, (void *)addr, 0, 0);
 
@@ -3289,6 +3385,14 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 	int ret;
 	uint32_t intr_vector = 0;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	hw->mac.ops.reset_hw(hw);
@@ -3345,6 +3449,14 @@ igbvf_dev_stop(struct rte_eth_dev *dev)
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (adapter->stopped)
 		return 0;
 
@@ -3417,6 +3529,14 @@ igbvf_promiscuous_enable(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* Set both unicast and multicast promisc */
 	e1000_promisc_set_vf(hw, e1000_promisc_enabled);
 
@@ -3428,6 +3548,14 @@ igbvf_promiscuous_disable(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* If in allmulticast mode leave multicast promisc */
 	if (dev->data->all_multicast == 1)
 		e1000_promisc_set_vf(hw, e1000_promisc_multicast);
@@ -3442,6 +3570,14 @@ igbvf_allmulticast_enable(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* In promiscuous mode multicast promisc already set */
 	if (dev->data->promiscuous == 0)
 		e1000_promisc_set_vf(hw, e1000_promisc_multicast);
@@ -3454,6 +3590,14 @@ igbvf_allmulticast_disable(struct rte_eth_dev *dev)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* In promiscuous mode leave multicast promisc enabled */
 	if (dev->data->promiscuous == 0)
 		e1000_promisc_set_vf(hw, e1000_promisc_disabled);
@@ -4557,6 +4701,14 @@ eth_igb_set_mc_addr_list(struct rte_eth_dev *dev,
 {
 	struct e1000_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	e1000_update_mc_addr_list(hw, (u8 *)mc_addr_set, nb_mc_addr);
 	return 0;
@@ -4986,6 +5138,14 @@ eth_igb_get_eeprom(struct rte_eth_dev *dev,
 	uint16_t *data = in_eeprom->data;
 	int first, length;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	first = in_eeprom->offset >> 1;
 	length = in_eeprom->length >> 1;
 	if ((first >= hw->nvm.word_size) ||
@@ -5010,6 +5170,14 @@ eth_igb_set_eeprom(struct rte_eth_dev *dev,
 	uint16_t *data = in_eeprom->data;
 	int first, length;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	first = in_eeprom->offset >> 1;
 	length = in_eeprom->length >> 1;
 	if ((first >= hw->nvm.word_size) ||
@@ -5110,6 +5278,10 @@ eth_igb_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	uint32_t vec = E1000_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = E1000_RX_VEC_START;
 
@@ -5130,6 +5302,10 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	uint32_t vec = E1000_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = E1000_RX_VEC_START;
 
diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
index dcd262f0cf..ce1f425eaf 100644
--- a/drivers/net/igc/igc_ethdev.c
+++ b/drivers/net/igc/igc_ethdev.c
@@ -12,6 +12,7 @@
 #include <ethdev_pci.h>
 #include <rte_malloc.h>
 #include <rte_alarm.h>
+#include <rte_errno.h>
 
 #include "igc_logs.h"
 #include "igc_txrx.h"
@@ -357,6 +358,14 @@ eth_igc_set_link_up(struct rte_eth_dev *dev)
 {
 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->phy.media_type == igc_media_type_copper)
 		igc_power_up_phy(hw);
 	else
@@ -369,6 +378,14 @@ eth_igc_set_link_down(struct rte_eth_dev *dev)
 {
 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->phy.media_type == igc_media_type_copper)
 		igc_power_down_phy(hw);
 	else
@@ -442,6 +459,14 @@ eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 	struct rte_eth_link link;
 	int link_check, count;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	link_check = 0;
 	hw->mac.get_link_status = 1;
 
@@ -619,6 +644,14 @@ eth_igc_stop(struct rte_eth_dev *dev)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	struct rte_eth_link link;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	dev->data->dev_started = 0;
 	adapter->stopped = 1;
 
@@ -925,6 +958,14 @@ eth_igc_start(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* disable all MSI-X interrupts */
 	IGC_WRITE_REG(hw, IGC_EIMC, 0x1f);
 	IGC_WRITE_FLUSH(hw);
@@ -1459,6 +1500,14 @@ eth_igc_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
 	struct igc_fw_version fw;
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	igc_get_fw_version(hw, &fw);
 
 	/* if option rom is valid, display its version too */
@@ -1549,6 +1598,14 @@ eth_igc_led_on(struct rte_eth_dev *dev)
 {
 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	return igc_led_on(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
 }
 
@@ -1557,6 +1614,14 @@ eth_igc_led_off(struct rte_eth_dev *dev)
 {
 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	return igc_led_off(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
 }
 
@@ -2099,6 +2164,10 @@ eth_igc_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	uint32_t vec = IGC_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = IGC_RX_VEC_START;
 
@@ -2118,6 +2187,10 @@ eth_igc_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	uint32_t vec = IGC_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = IGC_RX_VEC_START;
 
@@ -2181,6 +2254,14 @@ eth_igc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	uint32_t rctl;
 	int err;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (fc_conf->autoneg != hw->mac.autoneg)
 		return -ENOTSUP;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.506248723 +0000
+++ 0013-net-e1000-fix-crashes-in-secondary-processes.patch	2025-03-07 12:23:38.006838293 +0000
@@ -1 +1 @@
-From b0ef6e7a970bc745537c5b5140d838431f118c5e Mon Sep 17 00:00:00 2001
+From ce45f96ea2efb031223e66b22f134ef2e53c7b36 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b0ef6e7a970bc745537c5b5140d838431f118c5e ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -20,7 +21,7 @@
- doc/guides/nics/e1000em.rst          |   5 +
- doc/guides/nics/igb.rst              |  13 ++
- doc/guides/nics/igc.rst              |   5 +
- drivers/net/intel/e1000/em_ethdev.c  |  80 ++++++++++++
- drivers/net/intel/e1000/igb_ethdev.c | 176 +++++++++++++++++++++++++++
- drivers/net/intel/e1000/igc_ethdev.c |  97 +++++++++++++++
- 6 files changed, 376 insertions(+)
+ doc/guides/nics/e1000em.rst    |   5 +
+ doc/guides/nics/igb.rst        |  12 +++
+ doc/guides/nics/igc.rst        |   5 +
+ drivers/net/e1000/em_ethdev.c  |  80 +++++++++++++++
+ drivers/net/e1000/igb_ethdev.c | 176 +++++++++++++++++++++++++++++++++
+ drivers/net/igc/igc_ethdev.c   |  81 +++++++++++++++
+ 6 files changed, 359 insertions(+)
@@ -42 +43 @@
-index e3a91c316b..3f7a4156ff 100644
+index 8231f9eef4..76314f809b 100644
@@ -45,2 +46 @@
-@@ -31,3 +31,16 @@ Features of the IGB PMD are:
- * Checksum offload
+@@ -23,6 +23,18 @@ Features of the IGB PMD are:
@@ -49 +49 @@
-+
+ 
@@ -61,0 +62,3 @@
+ 
+ Limitations or Known issues
+ ---------------------------
@@ -63 +66 @@
-index c267431c5f..9790b58102 100644
+index 399d2d650c..e23dc46ea7 100644
@@ -75,5 +78,5 @@
-diff --git a/drivers/net/intel/e1000/em_ethdev.c b/drivers/net/intel/e1000/em_ethdev.c
-index bd3f7e44df..39dddf3384 100644
---- a/drivers/net/intel/e1000/em_ethdev.c
-+++ b/drivers/net/intel/e1000/em_ethdev.c
-@@ -573,6 +573,14 @@ eth_em_start(struct rte_eth_dev *dev)
+diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
+index efe3665cec..e74a58fbcf 100644
+--- a/drivers/net/e1000/em_ethdev.c
++++ b/drivers/net/e1000/em_ethdev.c
+@@ -532,6 +532,14 @@ eth_em_start(struct rte_eth_dev *dev)
@@ -94 +97 @@
-@@ -757,6 +765,14 @@ eth_em_stop(struct rte_eth_dev *dev)
+@@ -716,6 +724,14 @@ eth_em_stop(struct rte_eth_dev *dev)
@@ -109 +112 @@
-@@ -1048,6 +1064,10 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue
+@@ -1003,6 +1019,10 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue
@@ -120 +123 @@
-@@ -1059,6 +1079,10 @@ eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __rte_unused uint16_t queu
+@@ -1014,6 +1034,10 @@ eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __rte_unused uint16_t queu
@@ -131 +134 @@
-@@ -1688,6 +1712,14 @@ eth_em_led_on(struct rte_eth_dev *dev)
+@@ -1639,6 +1663,14 @@ eth_em_led_on(struct rte_eth_dev *dev)
@@ -146 +149 @@
-@@ -1697,6 +1729,14 @@ eth_em_led_off(struct rte_eth_dev *dev)
+@@ -1648,6 +1680,14 @@ eth_em_led_off(struct rte_eth_dev *dev)
@@ -161 +164 @@
-@@ -1758,6 +1798,14 @@ eth_em_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -1709,6 +1749,14 @@ eth_em_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -176 +179 @@
-@@ -1809,6 +1857,14 @@ eth_em_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -1760,6 +1808,14 @@ eth_em_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -191 +194 @@
-@@ -1818,6 +1874,14 @@ eth_em_rar_clear(struct rte_eth_dev *dev, uint32_t index)
+@@ -1769,6 +1825,14 @@ eth_em_rar_clear(struct rte_eth_dev *dev, uint32_t index)
@@ -206 +209 @@
-@@ -1827,6 +1891,14 @@ static int
+@@ -1778,6 +1842,14 @@ static int
@@ -221 +224 @@
-@@ -1871,6 +1943,14 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
+@@ -1822,6 +1894,14 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -236,5 +239,5 @@
-diff --git a/drivers/net/intel/e1000/igb_ethdev.c b/drivers/net/intel/e1000/igb_ethdev.c
-index be3123572f..cbd2f15f5f 100644
---- a/drivers/net/intel/e1000/igb_ethdev.c
-+++ b/drivers/net/intel/e1000/igb_ethdev.c
-@@ -1248,6 +1248,14 @@ eth_igb_start(struct rte_eth_dev *dev)
+diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
+index e9ad558c82..79d001e69a 100644
+--- a/drivers/net/e1000/igb_ethdev.c
++++ b/drivers/net/e1000/igb_ethdev.c
+@@ -1206,6 +1206,14 @@ eth_igb_start(struct rte_eth_dev *dev)
@@ -255 +258 @@
-@@ -1471,6 +1479,14 @@ eth_igb_stop(struct rte_eth_dev *dev)
+@@ -1421,6 +1429,14 @@ eth_igb_stop(struct rte_eth_dev *dev)
@@ -270 +273 @@
-@@ -1524,6 +1540,14 @@ eth_igb_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -1474,6 +1490,14 @@ eth_igb_dev_set_link_up(struct rte_eth_dev *dev)
@@ -285 +288 @@
-@@ -1537,6 +1561,14 @@ eth_igb_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -1487,6 +1511,14 @@ eth_igb_dev_set_link_down(struct rte_eth_dev *dev)
@@ -300 +303 @@
-@@ -2158,6 +2190,14 @@ eth_igb_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
+@@ -2108,6 +2140,14 @@ eth_igb_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
@@ -315 +318 @@
-@@ -2406,6 +2446,14 @@ eth_igb_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -2355,6 +2395,14 @@ eth_igb_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -330 +333 @@
-@@ -3028,6 +3076,14 @@ eth_igb_led_on(struct rte_eth_dev *dev)
+@@ -2977,6 +3025,14 @@ eth_igb_led_on(struct rte_eth_dev *dev)
@@ -345 +348 @@
-@@ -3037,6 +3093,14 @@ eth_igb_led_off(struct rte_eth_dev *dev)
+@@ -2986,6 +3042,14 @@ eth_igb_led_off(struct rte_eth_dev *dev)
@@ -360 +363 @@
-@@ -3099,6 +3163,14 @@ eth_igb_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -3048,6 +3112,14 @@ eth_igb_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -375 +378 @@
-@@ -3185,6 +3257,14 @@ eth_igb_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -3134,6 +3206,14 @@ eth_igb_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -390 +393 @@
-@@ -3198,6 +3278,14 @@ eth_igb_rar_clear(struct rte_eth_dev *dev, uint32_t index)
+@@ -3147,6 +3227,14 @@ eth_igb_rar_clear(struct rte_eth_dev *dev, uint32_t index)
@@ -405 +408 @@
-@@ -3207,6 +3295,14 @@ static int
+@@ -3156,6 +3244,14 @@ static int
@@ -420 +423 @@
-@@ -3340,6 +3436,14 @@ igbvf_dev_start(struct rte_eth_dev *dev)
+@@ -3289,6 +3385,14 @@ igbvf_dev_start(struct rte_eth_dev *dev)
@@ -435 +438 @@
-@@ -3396,6 +3500,14 @@ igbvf_dev_stop(struct rte_eth_dev *dev)
+@@ -3345,6 +3449,14 @@ igbvf_dev_stop(struct rte_eth_dev *dev)
@@ -450 +453 @@
-@@ -3468,6 +3580,14 @@ igbvf_promiscuous_enable(struct rte_eth_dev *dev)
+@@ -3417,6 +3529,14 @@ igbvf_promiscuous_enable(struct rte_eth_dev *dev)
@@ -465 +468 @@
-@@ -3479,6 +3599,14 @@ igbvf_promiscuous_disable(struct rte_eth_dev *dev)
+@@ -3428,6 +3548,14 @@ igbvf_promiscuous_disable(struct rte_eth_dev *dev)
@@ -480 +483 @@
-@@ -3493,6 +3621,14 @@ igbvf_allmulticast_enable(struct rte_eth_dev *dev)
+@@ -3442,6 +3570,14 @@ igbvf_allmulticast_enable(struct rte_eth_dev *dev)
@@ -495 +498 @@
-@@ -3505,6 +3641,14 @@ igbvf_allmulticast_disable(struct rte_eth_dev *dev)
+@@ -3454,6 +3590,14 @@ igbvf_allmulticast_disable(struct rte_eth_dev *dev)
@@ -510 +513 @@
-@@ -4608,6 +4752,14 @@ eth_igb_set_mc_addr_list(struct rte_eth_dev *dev,
+@@ -4557,6 +4701,14 @@ eth_igb_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -525 +528 @@
-@@ -5056,6 +5208,14 @@ eth_igb_get_eeprom(struct rte_eth_dev *dev,
+@@ -4986,6 +5138,14 @@ eth_igb_get_eeprom(struct rte_eth_dev *dev,
@@ -540 +543 @@
-@@ -5080,6 +5240,14 @@ eth_igb_set_eeprom(struct rte_eth_dev *dev,
+@@ -5010,6 +5170,14 @@ eth_igb_set_eeprom(struct rte_eth_dev *dev,
@@ -555 +558 @@
-@@ -5180,6 +5348,10 @@ eth_igb_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5110,6 +5278,10 @@ eth_igb_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -566 +569 @@
-@@ -5200,6 +5372,10 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5130,6 +5302,10 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -577,4 +580,4 @@
-diff --git a/drivers/net/intel/e1000/igc_ethdev.c b/drivers/net/intel/e1000/igc_ethdev.c
-index 136f5af2a0..e712cfcf7c 100644
---- a/drivers/net/intel/e1000/igc_ethdev.c
-+++ b/drivers/net/intel/e1000/igc_ethdev.c
+diff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c
+index dcd262f0cf..ce1f425eaf 100644
+--- a/drivers/net/igc/igc_ethdev.c
++++ b/drivers/net/igc/igc_ethdev.c
@@ -587 +590 @@
- #include "e1000_logs.h"
+ #include "igc_logs.h"
@@ -589 +592 @@
-@@ -397,6 +398,14 @@ eth_igc_set_link_up(struct rte_eth_dev *dev)
+@@ -357,6 +358,14 @@ eth_igc_set_link_up(struct rte_eth_dev *dev)
@@ -591 +594 @@
- 	struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -601,2 +604,2 @@
- 	if (hw->phy.media_type == e1000_media_type_copper)
- 		e1000_power_up_phy(hw);
+ 	if (hw->phy.media_type == igc_media_type_copper)
+ 		igc_power_up_phy(hw);
@@ -604 +607 @@
-@@ -409,6 +418,14 @@ eth_igc_set_link_down(struct rte_eth_dev *dev)
+@@ -369,6 +378,14 @@ eth_igc_set_link_down(struct rte_eth_dev *dev)
@@ -606 +609 @@
- 	struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -616,2 +619,2 @@
- 	if (hw->phy.media_type == e1000_media_type_copper)
- 		e1000_power_down_phy(hw);
+ 	if (hw->phy.media_type == igc_media_type_copper)
+ 		igc_power_down_phy(hw);
@@ -619 +622 @@
-@@ -482,6 +499,14 @@ eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -442,6 +459,14 @@ eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -634 +637 @@
-@@ -659,6 +684,14 @@ eth_igc_stop(struct rte_eth_dev *dev)
+@@ -619,6 +644,14 @@ eth_igc_stop(struct rte_eth_dev *dev)
@@ -649 +652 @@
-@@ -970,6 +1003,14 @@ eth_igc_start(struct rte_eth_dev *dev)
+@@ -925,6 +958,14 @@ eth_igc_start(struct rte_eth_dev *dev)
@@ -662,4 +665,4 @@
- 	E1000_WRITE_REG(hw, E1000_EIMC, 0x1f);
- 	E1000_WRITE_FLUSH(hw);
-@@ -1553,6 +1594,14 @@ eth_igc_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
- 	struct e1000_fw_version fw;
+ 	IGC_WRITE_REG(hw, IGC_EIMC, 0x1f);
+ 	IGC_WRITE_FLUSH(hw);
+@@ -1459,6 +1500,14 @@ eth_igc_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
+ 	struct igc_fw_version fw;
@@ -676 +679 @@
- 	e1000_get_fw_version(hw, &fw);
+ 	igc_get_fw_version(hw, &fw);
@@ -679 +682 @@
-@@ -1643,6 +1692,14 @@ eth_igc_led_on(struct rte_eth_dev *dev)
+@@ -1549,6 +1598,14 @@ eth_igc_led_on(struct rte_eth_dev *dev)
@@ -681 +684 @@
- 	struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -691 +694 @@
- 	return e1000_led_on(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
+ 	return igc_led_on(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
@@ -694 +697 @@
-@@ -1651,6 +1708,14 @@ eth_igc_led_off(struct rte_eth_dev *dev)
+@@ -1557,6 +1614,14 @@ eth_igc_led_off(struct rte_eth_dev *dev)
@@ -696 +699 @@
- 	struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ 	struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -706 +709 @@
- 	return e1000_led_off(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
+ 	return igc_led_off(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
@@ -709 +712 @@
-@@ -2194,6 +2259,10 @@ eth_igc_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -2099,6 +2164,10 @@ eth_igc_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -720 +723 @@
-@@ -2213,6 +2282,10 @@ eth_igc_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -2118,6 +2187,10 @@ eth_igc_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -731 +734 @@
-@@ -2276,6 +2349,14 @@ eth_igc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -2181,6 +2254,14 @@ eth_igc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -746,30 +748,0 @@
-@@ -2777,6 +2858,14 @@ eth_igc_timesync_read_rx_timestamp(__rte_unused struct rte_eth_dev *dev,
- 	struct igc_rx_queue *rxq;
- 	uint64_t rx_timestamp;
- 
-+	/*
-+	 * This function calls into the base driver, which in turn will use
-+	 * function pointers, which are not guaranteed to be valid in secondary
-+	 * processes, so avoid using this function in secondary processes.
-+	 */
-+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-+		return -E_RTE_SECONDARY;
-+
- 	/* Get current link speed. */
- 	eth_igc_link_update(dev, 1);
- 	rte_eth_linkstatus_get(dev, &link);
-@@ -2813,6 +2902,14 @@ eth_igc_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
- 	uint64_t tx_timestamp;
- 	int adjust = 0;
- 
-+	/*
-+	 * This function calls into the base driver, which in turn will use
-+	 * function pointers, which are not guaranteed to be valid in secondary
-+	 * processes, so avoid using this function in secondary processes.
-+	 */
-+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-+		return -E_RTE_SECONDARY;
-+
- 	val = E1000_READ_REG(hw, E1000_TSYNCTXCTL);
- 	if (!(val & E1000_TSYNCTXCTL_VALID))
- 		return -EINVAL;

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

* patch 'net/ixgbe: fix crashes in secondary processes' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (11 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/e1000: fix crashes in secondary processes' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " luca.boccassi
                       ` (13 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 4ce53784b3b30f8f48f798cdb6cf8bb578206638 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Mon, 17 Feb 2025 13:54:08 +0000
Subject: [PATCH] net/ixgbe: fix crashes in secondary processes

[ upstream commit c092ecb6d1d4cc27eebbcaf43c2ad35c4cfed4e1 ]

Currently, the architecture of IXGBE base driver is such that it uses
function pointers internally. These are not guaranteed to be valid in
secondary processes, which can lead to crashes. This patch prevents IXGBE
ethdev driver from calling into these functions.

Bugzilla ID: 1575
Fixes: af75078fece3 ("first public release")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/ixgbe.rst        |  14 ++
 drivers/net/ixgbe/ixgbe_ethdev.c | 242 +++++++++++++++++++++++++++++++
 2 files changed, 256 insertions(+)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index a3a19a0f49..f8eedb4c7f 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -459,3 +459,17 @@ show bypass config
 Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
 
    testpmd> show bypass config (port_id)
+
+
+Secondary Process Support
+-------------------------
+
+IXGBE Physical Function Driver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Control plane operations are currently not supported in secondary processes.
+
+IXGBE Virtual Function Driver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Control plane operations are currently not supported in secondary processes.
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 99986aa1d4..c1211c2e59 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2621,6 +2621,14 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_macsec_setting *macsec_setting =
 		IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	/* Stop the link setup handler before resetting the HW. */
@@ -2909,6 +2917,14 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 
 	PMD_INIT_FUNC_TRACE();
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	ixgbe_dev_wait_setup_link_complete(dev, 0);
 
 	/* disable interrupts */
@@ -2971,6 +2987,15 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->mac.type == ixgbe_mac_82599EB) {
 #ifdef RTE_LIBRTE_IXGBE_BYPASS
 		if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) {
@@ -3002,6 +3027,15 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->mac.type == ixgbe_mac_82599EB) {
 #ifdef RTE_LIBRTE_IXGBE_BYPASS
 		if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) {
@@ -3864,6 +3898,14 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
 	struct ixgbe_nvm_version nvm_ver;
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	ixgbe_get_oem_prod_version(hw, &nvm_ver);
 	if (nvm_ver.oem_valid) {
 		snprintf(fw_version, fw_size, "%x.%x.%x",
@@ -4762,6 +4804,14 @@ ixgbe_dev_led_on(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return ixgbe_led_on(hw, 0) == IXGBE_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -4771,6 +4821,14 @@ ixgbe_dev_led_off(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	return ixgbe_led_off(hw, 0) == IXGBE_SUCCESS ? 0 : -ENOTSUP;
 }
@@ -4844,6 +4902,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 		ixgbe_fc_full
 	};
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -5049,6 +5115,14 @@ ixgbe_priority_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_pfc_conf *p
 		ixgbe_fc_full
 	};
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	ixgbe_dcb_unpack_map_cee(dcb_config, IXGBE_DCB_RX_CONFIG, map);
@@ -5197,6 +5271,14 @@ ixgbe_add_rar(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t enable_addr = 1;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	return ixgbe_set_rar(hw, index, mac_addr->addr_bytes,
 			     pool, enable_addr);
 }
@@ -5206,6 +5288,14 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return;
+
 	ixgbe_clear_rar(hw, index);
 }
 
@@ -5214,6 +5304,14 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
 {
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	ixgbe_remove_rar(dev, 0);
 	ixgbe_add_rar(dev, addr, 0, pci_dev->max_vfs);
 
@@ -5373,6 +5471,14 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
 
 	int err, mask = 0;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	/* Stop the link setup handler before resetting the HW. */
@@ -5476,6 +5582,14 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (hw->adapter_stopped)
 		return 0;
 
@@ -5591,6 +5705,14 @@ ixgbevf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	uint32_t vid_bit = 0;
 	int ret = 0;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	PMD_INIT_FUNC_TRACE();
 
 	/* vind is not used in VF driver, set to 0, check ixgbe_set_vfta_vf */
@@ -5819,6 +5941,10 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t vec = IXGBE_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = IXGBE_RX_VEC_START;
 	intr->mask |= (1 << vec);
@@ -5841,6 +5967,10 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	uint32_t vec = IXGBE_MISC_VEC_ID;
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (rte_intr_allow_others(intr_handle))
 		vec = IXGBE_RX_VEC_START;
 	intr->mask &= ~(1 << vec);
@@ -5861,6 +5991,10 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (queue_id < 16) {
 		ixgbe_disable_intr(hw);
 		intr->mask |= (1 << queue_id);
@@ -5888,6 +6022,10 @@ ixgbe_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
 
+	/* device interrupts are only subscribed to in primary processes */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (queue_id < 16) {
 		ixgbe_disable_intr(hw);
 		intr->mask &= ~(1 << queue_id);
@@ -6164,6 +6302,14 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	int diag;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/*
 	 * On a 82599 VF, adding again the same MAC addr is not an idempotent
 	 * operation. Trap this case to avoid exhausting the [very limited]
@@ -6190,6 +6336,14 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)
 	uint32_t i;
 	int diag;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return;
+
 	/*
 	 * The IXGBE_VF_SET_MACVLAN command of the ixgbe-pf driver does
 	 * not support the deletion of a given MAC address.
@@ -6230,6 +6384,14 @@ ixgbevf_set_default_mac_addr(struct rte_eth_dev *dev,
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw->mac.ops.set_rar(hw, 0, (void *)addr, 0, 0);
 
 	return 0;
@@ -6416,6 +6578,14 @@ ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
 	uint32_t max_frame = mtu + IXGBE_ETH_OVERHEAD;
 	struct rte_eth_dev_data *dev_data = dev->data;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	if (mtu < RTE_ETHER_MIN_MTU || max_frame > RTE_ETHER_MAX_JUMBO_FRAME_LEN)
@@ -6707,6 +6877,14 @@ ixgbe_dev_set_mc_addr_list(struct rte_eth_dev *dev,
 	struct ixgbe_hw *hw;
 	u8 *mc_addr_list;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	mc_addr_list = (u8 *)mc_addr_set;
 	return ixgbe_update_mc_addr_list(hw, mc_addr_list, nb_mc_addr,
@@ -7114,6 +7292,14 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
 	uint16_t *data = in_eeprom->data;
 	int first, length;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	first = in_eeprom->offset >> 1;
 	length = in_eeprom->length >> 1;
 	if ((first > hw->eeprom.word_size) ||
@@ -7134,6 +7320,14 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
 	uint16_t *data = in_eeprom->data;
 	int first, length;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	first = in_eeprom->offset >> 1;
 	length = in_eeprom->length >> 1;
 	if ((first > hw->eeprom.word_size) ||
@@ -7154,6 +7348,14 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
 	uint8_t sff8472_rev, addr_mode;
 	bool page_swap = false;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	/* Check whether we support SFF-8472 or not */
 	status = hw->phy.ops.read_i2c_eeprom(hw,
 					     IXGBE_SFF_SFF_8472_COMP,
@@ -7199,6 +7401,14 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
 	uint8_t *data = info->data;
 	uint32_t i = 0;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	for (i = info->offset; i < info->offset + info->length; i++) {
 		if (i < RTE_ETH_MODULE_SFF_8079_LEN)
 			status = hw->phy.ops.read_i2c_eeprom(hw, i, &databyte);
@@ -7790,6 +8000,14 @@ ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev)
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	switch (hw->mac.ops.update_xcast_mode(hw, IXGBEVF_XCAST_MODE_PROMISC)) {
 	case IXGBE_SUCCESS:
 		ret = 0;
@@ -7812,6 +8030,14 @@ ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev)
 	int mode = IXGBEVF_XCAST_MODE_NONE;
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (dev->data->all_multicast)
 		mode = IXGBEVF_XCAST_MODE_ALLMULTI;
 
@@ -7837,6 +8063,14 @@ ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)
 	int ret;
 	int mode = IXGBEVF_XCAST_MODE_ALLMULTI;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (dev->data->promiscuous)
 		return 0;
 
@@ -7861,6 +8095,14 @@ ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev)
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	int ret;
 
+	/*
+	 * This function calls into the base driver, which in turn will use
+	 * function pointers, which are not guaranteed to be valid in secondary
+	 * processes, so avoid using this function in secondary processes.
+	 */
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return -E_RTE_SECONDARY;
+
 	if (dev->data->promiscuous)
 		return 0;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.545091525 +0000
+++ 0014-net-ixgbe-fix-crashes-in-secondary-processes.patch	2025-03-07 12:23:38.010838410 +0000
@@ -1 +1 @@
-From c092ecb6d1d4cc27eebbcaf43c2ad35c4cfed4e1 Mon Sep 17 00:00:00 2001
+From 4ce53784b3b30f8f48f798cdb6cf8bb578206638 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c092ecb6d1d4cc27eebbcaf43c2ad35c4cfed4e1 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +19,2 @@
- doc/guides/nics/ixgbe.rst              |  14 ++
- drivers/net/intel/ixgbe/ixgbe_ethdev.c | 242 +++++++++++++++++++++++++
+ doc/guides/nics/ixgbe.rst        |  14 ++
+ drivers/net/ixgbe/ixgbe_ethdev.c | 242 +++++++++++++++++++++++++++++++
@@ -23 +24 @@
-index c5c6a6c34b..8dcde7ae1c 100644
+index a3a19a0f49..f8eedb4c7f 100644
@@ -44,5 +45,5 @@
-diff --git a/drivers/net/intel/ixgbe/ixgbe_ethdev.c b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
-index 6cb25778cc..b80d5894f8 100644
---- a/drivers/net/intel/ixgbe/ixgbe_ethdev.c
-+++ b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
-@@ -2630,6 +2630,14 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
+index 99986aa1d4..c1211c2e59 100644
+--- a/drivers/net/ixgbe/ixgbe_ethdev.c
++++ b/drivers/net/ixgbe/ixgbe_ethdev.c
+@@ -2621,6 +2621,14 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
@@ -63 +64 @@
-@@ -2918,6 +2926,14 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2909,6 +2917,14 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -78 +79 @@
-@@ -2980,6 +2996,15 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -2971,6 +2987,15 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
@@ -94 +95 @@
-@@ -3011,6 +3036,15 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -3002,6 +3027,15 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
@@ -110 +111 @@
-@@ -3879,6 +3913,14 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
+@@ -3864,6 +3898,14 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
@@ -125 +126 @@
-@@ -4789,6 +4831,14 @@ ixgbe_dev_led_on(struct rte_eth_dev *dev)
+@@ -4762,6 +4804,14 @@ ixgbe_dev_led_on(struct rte_eth_dev *dev)
@@ -140 +141 @@
-@@ -4798,6 +4848,14 @@ ixgbe_dev_led_off(struct rte_eth_dev *dev)
+@@ -4771,6 +4821,14 @@ ixgbe_dev_led_off(struct rte_eth_dev *dev)
@@ -155 +156 @@
-@@ -4871,6 +4929,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -4844,6 +4902,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -170 +171 @@
-@@ -5076,6 +5142,14 @@ ixgbe_priority_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_pfc_conf *p
+@@ -5049,6 +5115,14 @@ ixgbe_priority_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_pfc_conf *p
@@ -185 +186 @@
-@@ -5224,6 +5298,14 @@ ixgbe_add_rar(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -5197,6 +5271,14 @@ ixgbe_add_rar(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -200 +201 @@
-@@ -5233,6 +5315,14 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
+@@ -5206,6 +5288,14 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
@@ -215 +216 @@
-@@ -5241,6 +5331,14 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
+@@ -5214,6 +5304,14 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
@@ -230 +231 @@
-@@ -5400,6 +5498,14 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
+@@ -5373,6 +5471,14 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
@@ -245 +246 @@
-@@ -5503,6 +5609,14 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
+@@ -5476,6 +5582,14 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
@@ -260 +261 @@
-@@ -5618,6 +5732,14 @@ ixgbevf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -5591,6 +5705,14 @@ ixgbevf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -275 +276 @@
-@@ -5846,6 +5968,10 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5819,6 +5941,10 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -286 +287 @@
-@@ -5868,6 +5994,10 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5841,6 +5967,10 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -297 +298 @@
-@@ -5888,6 +6018,10 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5861,6 +5991,10 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -308 +309 @@
-@@ -5915,6 +6049,10 @@ ixgbe_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5888,6 +6022,10 @@ ixgbe_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -319 +320 @@
-@@ -6194,6 +6332,14 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -6164,6 +6302,14 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -334 +335 @@
-@@ -6220,6 +6366,14 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)
+@@ -6190,6 +6336,14 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)
@@ -349 +350 @@
-@@ -6260,6 +6414,14 @@ ixgbevf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -6230,6 +6384,14 @@ ixgbevf_set_default_mac_addr(struct rte_eth_dev *dev,
@@ -364 +365 @@
-@@ -6446,6 +6608,14 @@ ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -6416,6 +6578,14 @@ ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
@@ -379 +380 @@
-@@ -6737,6 +6907,14 @@ ixgbe_dev_set_mc_addr_list(struct rte_eth_dev *dev,
+@@ -6707,6 +6877,14 @@ ixgbe_dev_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -394 +395 @@
-@@ -7157,6 +7335,14 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
+@@ -7114,6 +7292,14 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
@@ -409 +410 @@
-@@ -7177,6 +7363,14 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
+@@ -7134,6 +7320,14 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
@@ -424 +425 @@
-@@ -7197,6 +7391,14 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
+@@ -7154,6 +7348,14 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
@@ -439 +440 @@
-@@ -7242,6 +7444,14 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
+@@ -7199,6 +7401,14 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
@@ -454 +455 @@
-@@ -7837,6 +8047,14 @@ ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev)
+@@ -7790,6 +8000,14 @@ ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev)
@@ -469 +470 @@
-@@ -7859,6 +8077,14 @@ ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev)
+@@ -7812,6 +8030,14 @@ ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev)
@@ -484 +485 @@
-@@ -7884,6 +8110,14 @@ ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)
+@@ -7837,6 +8063,14 @@ ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)
@@ -499 +500 @@
-@@ -7908,6 +8142,14 @@ ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev)
+@@ -7861,6 +8095,14 @@ ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev)

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

* patch 'net/ixgbe: fix minimum Rx/Tx descriptors' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (12 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/ixgbe: " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/mlx5: fix leak in HWS flow counter action' " luca.boccassi
                       ` (12 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From a1cc0b5adae53f811a6d25ff9758c5c7e9c7cdff Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Tue, 25 Feb 2025 09:12:36 +0000
Subject: [PATCH] net/ixgbe: fix minimum Rx/Tx descriptors

[ upstream commit 6808ee1ceddc76846f80ae3d05aad374a34a1754 ]

The minimum free packet threshold (tx_free_thresh) and the minimum RS bit
threshold (tx_rs_thresh) both have a default value of 32. Therefore, the
default minimum number of ring descriptors value is 64.

For reference, see "Configuration of Transmit Queues" in
doc/guides/prog_guide/ethdev/ethdev.rst

Fixes: dee5f1fd5fc7 ("ixgbe: get queue info and descriptor limits")

Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/ixgbe.rst      | 8 +++-----
 drivers/net/ixgbe/ixgbe_rxtx.h | 2 +-
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index f8eedb4c7f..dc9049f150 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -37,14 +37,12 @@ Ensure that the following pre-conditions are satisfied:
 
 *   (rxq->nb_rx_desc % rxq->rx_free_thresh) == 0
 
-*   rxq->nb_rx_desc  < (IXGBE_MAX_RING_DESC - RTE_PMD_IXGBE_RX_MAX_BURST)
+*   rxq->nb_rx_desc >= IXGBE_MIN_RING_DESC
+
+*   rxq->nb_rx_desc <= IXGBE_MAX_RING_DESC
 
 These conditions are checked in the code.
 
-Scattered packets are not supported in this mode.
-If an incoming packet is greater than the maximum acceptable length of one "mbuf" data size (by default, the size is 2 KB),
-vPMD for RX would be disabled.
-
 By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.
 
 Windows Prerequisites and Pre-conditions
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
index 668a5b9814..3af83b693c 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.h
+++ b/drivers/net/ixgbe/ixgbe_rxtx.h
@@ -24,7 +24,7 @@
  * descriptors should meet the following condition:
  *      (num_ring_desc * sizeof(rx/tx descriptor)) % 128 == 0
  */
-#define	IXGBE_MIN_RING_DESC	32
+#define	IXGBE_MIN_RING_DESC	64
 #define	IXGBE_MAX_RING_DESC	4096
 
 #define RTE_PMD_IXGBE_TX_MAX_BURST 32
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.581612404 +0000
+++ 0015-net-ixgbe-fix-minimum-Rx-Tx-descriptors.patch	2025-03-07 12:23:38.014838527 +0000
@@ -1 +1 @@
-From 6808ee1ceddc76846f80ae3d05aad374a34a1754 Mon Sep 17 00:00:00 2001
+From a1cc0b5adae53f811a6d25ff9758c5c7e9c7cdff Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6808ee1ceddc76846f80ae3d05aad374a34a1754 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +20,2 @@
- doc/guides/nics/ixgbe.rst            | 8 +++-----
- drivers/net/intel/ixgbe/ixgbe_rxtx.h | 2 +-
+ doc/guides/nics/ixgbe.rst      | 8 +++-----
+ drivers/net/ixgbe/ixgbe_rxtx.h | 2 +-
@@ -24 +25 @@
-index 8dcde7ae1c..a03ec7a7e8 100644
+index f8eedb4c7f..dc9049f150 100644
@@ -27 +28 @@
-@@ -68,14 +68,12 @@ Ensure that the following pre-conditions are satisfied:
+@@ -37,14 +37,12 @@ Ensure that the following pre-conditions are satisfied:
@@ -42 +43 @@
- By default, IXGBE_MAX_RING_DESC is set to 8192 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.
+ By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.
@@ -45,5 +46,5 @@
-diff --git a/drivers/net/intel/ixgbe/ixgbe_rxtx.h b/drivers/net/intel/ixgbe/ixgbe_rxtx.h
-index 278f665108..54569c7ade 100644
---- a/drivers/net/intel/ixgbe/ixgbe_rxtx.h
-+++ b/drivers/net/intel/ixgbe/ixgbe_rxtx.h
-@@ -26,7 +26,7 @@
+diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
+index 668a5b9814..3af83b693c 100644
+--- a/drivers/net/ixgbe/ixgbe_rxtx.h
++++ b/drivers/net/ixgbe/ixgbe_rxtx.h
+@@ -24,7 +24,7 @@
@@ -55 +56 @@
- #define	IXGBE_MAX_RING_DESC	8192
+ #define	IXGBE_MAX_RING_DESC	4096

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

* patch 'net/mlx5: fix leak in HWS flow counter action' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (13 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/mlx5: fix actions translation error overwrite' " luca.boccassi
                       ` (11 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: David Marchand; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From d653878d18bd406c2b7b983cb09121e68894b645 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 27 Jan 2025 11:53:47 +0100
Subject: [PATCH] net/mlx5: fix leak in HWS flow counter action

[ upstream commit 9e34fcc81c005a60c919c572ef83c10ebb0201af ]

This was caught by our internal covscan.
mp_name can be leaked in case of errors.

Fixes: 4d368e1da3a4 ("net/mlx5: support flow counter action for HWS")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_hws_cnt.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c
index 3250255727..cec0710efe 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.c
+++ b/drivers/net/mlx5/mlx5_hws_cnt.c
@@ -658,7 +658,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct mlx5_hws_cache_param cparam = {0};
 	struct mlx5_hws_cnt_pool_cfg pcfg = {0};
-	char *mp_name;
+	char *mp_name = NULL;
 	int ret = 0;
 	size_t sz;
 
@@ -666,7 +666,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
 	if (priv->sh->cnt_svc == NULL) {
 		ret = mlx5_hws_cnt_svc_init(priv->sh);
 		if (ret != 0)
-			return NULL;
+			goto error;
 	}
 	cparam.fetch_sz = HWS_CNT_CACHE_FETCH_DEFAULT;
 	cparam.preload_sz = HWS_CNT_CACHE_PRELOAD_DEFAULT;
@@ -711,6 +711,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
 	return cpool;
 error:
 	mlx5_hws_cnt_pool_destroy(priv->sh, cpool);
+	mlx5_free(mp_name);
 	return NULL;
 }
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.613481872 +0000
+++ 0016-net-mlx5-fix-leak-in-HWS-flow-counter-action.patch	2025-03-07 12:23:38.014838527 +0000
@@ -1 +1 @@
-From 9e34fcc81c005a60c919c572ef83c10ebb0201af Mon Sep 17 00:00:00 2001
+From d653878d18bd406c2b7b983cb09121e68894b645 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9e34fcc81c005a60c919c572ef83c10ebb0201af ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +16,2 @@
- drivers/net/mlx5/mlx5_hws_cnt.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ drivers/net/mlx5/mlx5_hws_cnt.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
@@ -19 +20 @@
-index 0197c098f6..eaceedd5ba 100644
+index 3250255727..cec0710efe 100644
@@ -22 +23,10 @@
-@@ -723,7 +723,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+@@ -658,7 +658,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+ 	struct mlx5_priv *priv = dev->data->dev_private;
+ 	struct mlx5_hws_cache_param cparam = {0};
+ 	struct mlx5_hws_cnt_pool_cfg pcfg = {0};
+-	char *mp_name;
++	char *mp_name = NULL;
+ 	int ret = 0;
+ 	size_t sz;
+ 
+@@ -666,7 +666,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
@@ -24,3 +34,3 @@
- 		ret = mlx5_hws_cnt_svc_init(priv->sh, error);
- 		if (ret)
--			return ret;
+ 		ret = mlx5_hws_cnt_svc_init(priv->sh);
+ 		if (ret != 0)
+-			return NULL;
@@ -31,2 +41,3 @@
-@@ -767,6 +767,7 @@ error:
- 	MLX5_ASSERT(ret);
+@@ -711,6 +711,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+ 	return cpool;
+ error:
@@ -34 +44,0 @@
- 	priv->hws_cpool = NULL;
@@ -36 +46 @@
- 	return ret;
+ 	return NULL;

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

* patch 'net/mlx5: fix actions translation error overwrite' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (14 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/mlx5: fix leak in HWS flow counter action' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'net/mlx5: fix hardware packet type translation' " luca.boccassi
                       ` (10 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Junfeng Guo; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 6bb59454b04bc43a601efa0389165afa148db421 Mon Sep 17 00:00:00 2001
From: Junfeng Guo <junfengg@nvidia.com>
Date: Thu, 20 Feb 2025 09:08:50 +0200
Subject: [PATCH] net/mlx5: fix actions translation error overwrite

[ upstream commit 494da70e289c6a603185c890111f95568eb1fd63 ]

Function __flow_hw_translate_actions_template contains several
encapsulated functions that already have internal error handling
process via rte_flow_error_set for each case.

Thus the one (rte_flow_error_set) within the goto statement `err`
at the end of __flow_hw_translate_actions_template function may be
redundant for those failed cases. As a result, the error messages
would all be overwritten as "fail to create rte table", making it
displayed at quite large granularity.

To prevent above error messages overwrite, this patch add a local
variable `struct rte_flow_error sub_error` to the function and pass
this `sub_error` instead of `error` to each sub-function. Under error
handling process (`err` label), if `sub_error` was updated, copy its
contents to `error` and return. If it was not updated, return default
error message (`fail to create rte table`).

Also refactor the logic for SEND_TO_KERNEL, COUNT and AGE actions in
above function to align the error handling process.

Fixes: f13fab23922b ("net/mlx5: add flow jump action")

Signed-off-by: Junfeng Guo <junfengg@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 .mailmap                        |  2 +-
 drivers/net/mlx5/mlx5_flow_hw.c | 41 +++++++++++++++++++++------------
 2 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/.mailmap b/.mailmap
index dc7a465822..ee6eb01cf6 100644
--- a/.mailmap
+++ b/.mailmap
@@ -692,7 +692,7 @@ Julien Cretin <julien.cretin@trust-in-soft.com>
 Julien Massonneau <julien.massonneau@6wind.com>
 Julien Meunier <julien.meunier@nokia.com> <julien.meunier@6wind.com>
 Július Milan <jmilan.dev@gmail.com>
-Junfeng Guo <junfeng.guo@intel.com>
+Junfeng Guo <junfengg@nvidia.com> <junfeng.guo@intel.com>
 Junjie Chen <junjie.j.chen@intel.com>
 Junjie Wan <wanjunjie@bytedance.com>
 Jun Qiu <jun.qiu@jaguarmicro.com>
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index a19342a25d..0f36700143 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -1368,6 +1368,11 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 	uint8_t *encap_data = NULL, *encap_data_m = NULL;
 	size_t data_size = 0;
 	struct mlx5_hw_modify_header_action mhdr = { 0 };
+	struct rte_flow_error sub_error = {
+		.type = RTE_FLOW_ERROR_TYPE_NONE,
+		.cause = NULL,
+		.message = NULL,
+	};
 	bool actions_end = false;
 	uint32_t type;
 	bool reformat_used = false;
@@ -1459,7 +1464,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 					((const struct rte_flow_action_jump *)
 					actions->conf)->group;
 				acts->jump = flow_hw_jump_action_register
-						(dev, cfg, jump_group, error);
+						(dev, cfg, jump_group, &sub_error);
 				if (!acts->jump)
 					goto err;
 				acts->rule_acts[action_pos].action = (!!attr->group) ?
@@ -1568,7 +1573,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 		case RTE_FLOW_ACTION_TYPE_MODIFY_FIELD:
 			err = flow_hw_modify_field_compile(dev, attr, action_start,
 							   actions, masks, acts, &mhdr,
-							   error);
+							   &sub_error);
 			if (err)
 				goto err;
 			/*
@@ -1586,7 +1591,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 			action_pos = at->actions_off[actions - at->actions];
 			if (flow_hw_represented_port_compile
 					(dev, attr, action_start, actions,
-					 masks, acts, action_pos, error))
+					 masks, acts, action_pos, &sub_error))
 				goto err;
 			break;
 		case RTE_FLOW_ACTION_TYPE_METER:
@@ -1601,7 +1606,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 			    ((const struct rte_flow_action_meter *)
 			     masks->conf)->mtr_id) {
 				err = flow_hw_meter_compile(dev, cfg,
-						action_pos, jump_pos, actions, acts, error);
+						action_pos, jump_pos, actions, acts, &sub_error);
 				if (err)
 					goto err;
 			} else if (__flow_hw_act_data_general_append(priv, acts,
@@ -1612,13 +1617,14 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 			break;
 		case RTE_FLOW_ACTION_TYPE_AGE:
 			flow_hw_translate_group(dev, cfg, attr->group,
-						&target_grp, error);
+						&target_grp, &sub_error);
 			if (target_grp == 0) {
 				__flow_hw_action_template_destroy(dev, acts);
-				return rte_flow_error_set(error, ENOTSUP,
-						RTE_FLOW_ERROR_TYPE_ACTION,
-						NULL,
-						"Age action on root table is not supported in HW steering mode");
+				rte_flow_error_set(&sub_error, ENOTSUP,
+					RTE_FLOW_ERROR_TYPE_ACTION,
+					NULL,
+					"Age action on root table is not supported in HW steering mode");
+				goto err;
 			}
 			action_pos = at->actions_off[actions - at->actions];
 			if (__flow_hw_act_data_general_append(priv, acts,
@@ -1629,13 +1635,14 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 			break;
 		case RTE_FLOW_ACTION_TYPE_COUNT:
 			flow_hw_translate_group(dev, cfg, attr->group,
-						&target_grp, error);
+						&target_grp, &sub_error);
 			if (target_grp == 0) {
 				__flow_hw_action_template_destroy(dev, acts);
-				return rte_flow_error_set(error, ENOTSUP,
-						RTE_FLOW_ERROR_TYPE_ACTION,
-						NULL,
-						"Counter action on root table is not supported in HW steering mode");
+				rte_flow_error_set(&sub_error, ENOTSUP,
+					RTE_FLOW_ERROR_TYPE_ACTION,
+					NULL,
+					"Counter action on root table is not supported in HW steering mode");
+				goto err;
 			}
 			if ((at->action_flags & MLX5_FLOW_ACTION_AGE) ||
 			    (at->action_flags & MLX5_FLOW_ACTION_INDIRECT_AGE))
@@ -1739,7 +1746,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
 		MLX5_ASSERT(at->reformat_off != UINT16_MAX);
 		if (enc_item) {
 			MLX5_ASSERT(!encap_data);
-			if (flow_dv_convert_encap_data(enc_item, buf, &data_size, error))
+			if (flow_dv_convert_encap_data(enc_item, buf, &data_size, &sub_error))
 				goto err;
 			encap_data = buf;
 			if (!enc_item_m)
@@ -1782,6 +1789,10 @@ err:
 		rte_errno = EINVAL;
 	err = rte_errno;
 	__flow_hw_action_template_destroy(dev, acts);
+	if (error != NULL && sub_error.type != RTE_FLOW_ERROR_TYPE_NONE) {
+		rte_memcpy(error, &sub_error, sizeof(sub_error));
+		return -EINVAL;
+	}
 	return rte_flow_error_set(error, err,
 				  RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
 				  "fail to create rte table");
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.646188034 +0000
+++ 0017-net-mlx5-fix-actions-translation-error-overwrite.patch	2025-03-07 12:23:38.018838643 +0000
@@ -1 +1 @@
-From 494da70e289c6a603185c890111f95568eb1fd63 Mon Sep 17 00:00:00 2001
+From 6bb59454b04bc43a601efa0389165afa148db421 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 494da70e289c6a603185c890111f95568eb1fd63 ]
+
@@ -27 +28,0 @@
-Cc: stable@dpdk.org
@@ -33,2 +34,2 @@
- drivers/net/mlx5/mlx5_flow_hw.c | 65 ++++++++++++++++++++-------------
- 2 files changed, 40 insertions(+), 27 deletions(-)
+ drivers/net/mlx5/mlx5_flow_hw.c | 41 +++++++++++++++++++++------------
+ 2 files changed, 27 insertions(+), 16 deletions(-)
@@ -37 +38 @@
-index 2a3f1b1bd4..e9896a2e5b 100644
+index dc7a465822..ee6eb01cf6 100644
@@ -40 +41 @@
-@@ -760,7 +760,7 @@ Julien Hascoet <ju.hascoet@gmail.com>
+@@ -692,7 +692,7 @@ Julien Cretin <julien.cretin@trust-in-soft.com>
@@ -48 +49 @@
- Junlong Wang <wang.junlong1@zte.com.cn>
+ Jun Qiu <jun.qiu@jaguarmicro.com>
@@ -50 +51 @@
-index 501bf33f94..e72b87d70f 100644
+index a19342a25d..0f36700143 100644
@@ -53,3 +54,3 @@
-@@ -2543,6 +2543,11 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
- 	uint8_t *push_data = NULL, *push_data_m = NULL;
- 	size_t data_size = 0, push_size = 0;
+@@ -1368,6 +1368,11 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
+ 	uint8_t *encap_data = NULL, *encap_data_m = NULL;
+ 	size_t data_size = 0;
@@ -65 +66 @@
-@@ -2662,7 +2667,7 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
+@@ -1459,7 +1464,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
@@ -73,25 +74,2 @@
- 				acts->rule_acts[dr_pos].action = (!!attr->group) ?
-@@ -2793,15 +2798,16 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
- 			break;
- 		case RTE_FLOW_ACTION_TYPE_SEND_TO_KERNEL:
- 			ret = flow_hw_translate_group(dev, cfg, attr->group,
--						&target_grp, error);
-+						&target_grp, &sub_error);
- 			if (ret)
--				return ret;
-+				goto err;
- 			if (target_grp == 0) {
- 				__flow_hw_action_template_destroy(dev, acts);
--				return rte_flow_error_set(error, ENOTSUP,
--						RTE_FLOW_ERROR_TYPE_ACTION,
--						NULL,
--						"Send to kernel action on root table is not supported in HW steering mode");
-+				rte_flow_error_set(&sub_error, ENOTSUP,
-+					RTE_FLOW_ERROR_TYPE_ACTION,
-+					NULL,
-+					"Send to kernel action on root table is not supported in HW steering mode");
-+				goto err;
- 			}
- 			table_type = attr->ingress ? MLX5DR_TABLE_TYPE_NIC_RX :
- 				     ((attr->egress) ? MLX5DR_TABLE_TYPE_NIC_TX :
-@@ -2811,14 +2817,14 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
+ 				acts->rule_acts[action_pos].action = (!!attr->group) ?
+@@ -1568,7 +1573,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
@@ -99,4 +77,4 @@
- 			err = flow_hw_modify_field_compile(dev, attr, actions,
- 							   masks, acts, &mhdr,
--							   src_pos, error);
-+							   src_pos, &sub_error);
+ 			err = flow_hw_modify_field_compile(dev, attr, action_start,
+ 							   actions, masks, acts, &mhdr,
+-							   error);
++							   &sub_error);
@@ -105,2 +83,3 @@
- 			break;
- 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
+ 			/*
+@@ -1586,7 +1591,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
+ 			action_pos = at->actions_off[actions - at->actions];
@@ -108,3 +87,3 @@
- 					(dev, attr, actions,
--					 masks, acts, src_pos, dr_pos, error))
-+					 masks, acts, src_pos, dr_pos, &sub_error))
+ 					(dev, attr, action_start, actions,
+-					 masks, acts, action_pos, error))
++					 masks, acts, action_pos, &sub_error))
@@ -114 +93 @@
-@@ -2832,7 +2838,8 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
+@@ -1601,7 +1606,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
@@ -118,3 +97,2 @@
--							    dr_pos, jump_pos, actions, acts, error);
-+							    dr_pos, jump_pos, actions, acts,
-+							    &sub_error);
+-						action_pos, jump_pos, actions, acts, error);
++						action_pos, jump_pos, actions, acts, &sub_error);
@@ -124 +102 @@
-@@ -2843,15 +2850,16 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
+@@ -1612,13 +1617,14 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
@@ -127 +105 @@
- 			ret = flow_hw_translate_group(dev, cfg, attr->group,
+ 			flow_hw_translate_group(dev, cfg, attr->group,
@@ -130,3 +107,0 @@
- 			if (ret)
--				return ret;
-+				goto err;
@@ -144,0 +120 @@
+ 			action_pos = at->actions_off[actions - at->actions];
@@ -146,2 +122 @@
- 							      actions->type,
-@@ -2861,15 +2869,16 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
+@@ -1629,13 +1635,14 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
@@ -150 +125 @@
- 			ret = flow_hw_translate_group(dev, cfg, attr->group,
+ 			flow_hw_translate_group(dev, cfg, attr->group,
@@ -153,3 +127,0 @@
- 			if (ret)
--				return ret;
-+				goto err;
@@ -170,21 +142,6 @@
-@@ -2912,7 +2921,7 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
- 								 acts->rule_acts,
- 								 &acts->mtr_id,
- 								 MLX5_HW_INV_QUEUE,
--								 error);
-+								 &sub_error);
- 				if (err)
- 					goto err;
- 			} else if (__flow_hw_act_data_general_append(priv, acts,
-@@ -2979,11 +2988,11 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
- 		}
- 	}
- 	if (mhdr.pos != UINT16_MAX) {
--		ret = mlx5_tbl_translate_modify_header(dev, cfg, acts, mp_ctx, &mhdr, error);
-+		ret = mlx5_tbl_translate_modify_header(dev, cfg, acts, mp_ctx, &mhdr, &sub_error);
- 		if (ret)
- 			goto err;
- 		if (!nt_mode && mhdr.shared) {
--			ret = mlx5_tbl_ensure_shared_modify_header(dev, cfg, acts, error);
-+			ret = mlx5_tbl_ensure_shared_modify_header(dev, cfg, acts, &sub_error);
- 			if (ret)
+@@ -1739,7 +1746,7 @@ __flow_hw_actions_translate(struct rte_eth_dev *dev,
+ 		MLX5_ASSERT(at->reformat_off != UINT16_MAX);
+ 		if (enc_item) {
+ 			MLX5_ASSERT(!encap_data);
+-			if (flow_dv_convert_encap_data(enc_item, buf, &data_size, error))
++			if (flow_dv_convert_encap_data(enc_item, buf, &data_size, &sub_error))
@@ -192,11 +149,3 @@
- 		}
-@@ -2994,7 +3003,7 @@ __flow_hw_translate_actions_template(struct rte_eth_dev *dev,
- 						  encap_data, encap_data_m,
- 						  mp_ctx, data_size,
- 						  reformat_src,
--						  refmt_type, error);
-+						  refmt_type, &sub_error);
- 		if (ret)
- 			goto err;
- 		if (!nt_mode && acts->encap_decap->shared) {
-@@ -3020,6 +3029,10 @@ err:
+ 			encap_data = buf;
+ 			if (!enc_item_m)
+@@ -1782,6 +1789,10 @@ err:

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

* patch 'net/mlx5: fix hardware packet type translation' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (15 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/mlx5: fix actions translation error overwrite' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'common/cnxk: fix inbound IPsec SA setup' " luca.boccassi
                       ` (9 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 33f0af6926e54403735a60243d69a44afb0630ee Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Sun, 9 Feb 2025 16:01:06 +0200
Subject: [PATCH] net/mlx5: fix hardware packet type translation

[ upstream commit ed9935258f5c3cbb07b2828b6072dec9be8c3891 ]

Since ConnectX-8 NIC the hardware recognizes L4 protocol in the
IP fragments if the IP offset is zero and reports the L4 protocol
type in CQE fields. This case was not supported in the ptype translation
table cause not report the ptype in the mbufs.

Fixes: ea16068c0064 ("net/mlx5: fix L4 packet type support")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 80 ++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index 54d410b513..6ed944fa78 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -118,8 +118,24 @@ mlx5_set_ptype_table(void)
 	/* Fragmented */
 	(*p)[0x21] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x25] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x2d] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
 	(*p)[0x22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x2a] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x2e] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0x32] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
 	/* TCP */
 	(*p)[0x05] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_TCP;
@@ -145,8 +161,24 @@ mlx5_set_ptype_table(void)
 		     RTE_PTYPE_L4_NONFRAG;
 	(*p)[0xa1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xa5] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xa9] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xad] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xb1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
 	(*p)[0xa2] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xa6] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xaa] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xae] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
+	(*p)[0xb2] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_L4_FRAG;
 	(*p)[0x85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_L4_TCP;
 	(*p)[0x86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
@@ -182,15 +214,63 @@ mlx5_set_ptype_table(void)
 	(*p)[0x61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x69] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x6d] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
 	(*p)[0x62] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x6a] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x6e] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0x72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
 	(*p)[0xe1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xe5] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xe9] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xed] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xf1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
 	(*p)[0xe2] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xe6] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xea] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xee] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
+	(*p)[0xf2] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+		     RTE_PTYPE_INNER_L4_FRAG;
 	/* Tunneled - TCP */
 	(*p)[0x45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
 		     RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.690420493 +0000
+++ 0018-net-mlx5-fix-hardware-packet-type-translation.patch	2025-03-07 12:23:38.022838760 +0000
@@ -1 +1 @@
-From ed9935258f5c3cbb07b2828b6072dec9be8c3891 Mon Sep 17 00:00:00 2001
+From 33f0af6926e54403735a60243d69a44afb0630ee Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ed9935258f5c3cbb07b2828b6072dec9be8c3891 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index eadadcdffb..9c075f6a56 100644
+index 54d410b513..6ed944fa78 100644

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

* patch 'common/cnxk: fix inbound IPsec SA setup' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (16 preceding siblings ...)
  2025-03-07 12:24     ` patch 'net/mlx5: fix hardware packet type translation' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'stack: fix pop in C11 implementation' " luca.boccassi
                       ` (8 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Nithin Dabilpuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 13039a5c56a4b0b80cbb13d5dfe2b2e887aa5abb Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Mon, 24 Feb 2025 15:22:37 +0530
Subject: [PATCH] common/cnxk: fix inbound IPsec SA setup

[ upstream commit 26e8a2ac205749441971f81e5de0eff57e94ce90 ]

Make sure the w2 in inbound SA is set for inline IPsec have
L3 header on errors.

Fixes: 350b7a536a51 ("common/cnxk: enable L3 header write back in SA")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 drivers/common/cnxk/cnxk_security.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/cnxk_security.c b/drivers/common/cnxk/cnxk_security.c
index dd19ea9ab9..5e7b18f4ec 100644
--- a/drivers/common/cnxk/cnxk_security.c
+++ b/drivers/common/cnxk/cnxk_security.c
@@ -356,7 +356,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
 	/* Initialize the SA */
 	roc_ot_ipsec_inb_sa_init(sa, is_inline);
 
-	w2.u64 = 0;
+	w2.u64 = sa->w2.u64;
 	rc = ot_ipsec_sa_common_param_fill(&w2, sa->cipher_key, sa->w8.s.salt,
 					   sa->hmac_opad_ipad, ipsec_xfrm,
 					   crypto_xfrm);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.723720887 +0000
+++ 0019-common-cnxk-fix-inbound-IPsec-SA-setup.patch	2025-03-07 12:23:38.022838760 +0000
@@ -1 +1 @@
-From 26e8a2ac205749441971f81e5de0eff57e94ce90 Mon Sep 17 00:00:00 2001
+From 13039a5c56a4b0b80cbb13d5dfe2b2e887aa5abb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 26e8a2ac205749441971f81e5de0eff57e94ce90 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index 3a747ed441..a3c06c1e88 100644
+index dd19ea9ab9..5e7b18f4ec 100644
@@ -21 +22 @@
-@@ -315,7 +315,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
+@@ -356,7 +356,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
@@ -23 +24 @@
- 	roc_ot_ipsec_inb_sa_init(sa);
+ 	roc_ot_ipsec_inb_sa_init(sa, is_inline);

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

* patch 'stack: fix pop in C11 implementation' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (17 preceding siblings ...)
  2025-03-07 12:24     ` patch 'common/cnxk: fix inbound IPsec SA setup' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/crypto: fix AES-ECB test lengths' " luca.boccassi
                       ` (7 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Andre Muezerie; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 851486f6cc3e1324c1c8c7243bcb8286130c32ec Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Mon, 3 Feb 2025 17:23:37 -0800
Subject: [PATCH] stack: fix pop in C11 implementation

[ upstream commit 916424f2c6029cd8da5c56ed62847a4b09d7e0ac ]

Variable "success" was not being initialized and there was a code
path where the last do/while loop in __rte_stack_lf_pop_elems
looked at the value of this variable before it was set to any.

Compiling with msvc resulted in stack_lf_autotest sometimes crashing.

The fix is to initialize the variable. This same fix was applied to
stack\rte_stack_lf_generic.h in the past but was missed here.

Fixes: 7e6e609939a8 ("stack: add C11 atomic implementation")

Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/stack/rte_stack_lf_c11.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/stack/rte_stack_lf_c11.h b/lib/stack/rte_stack_lf_c11.h
index 8403196d51..13ee26be4e 100644
--- a/lib/stack/rte_stack_lf_c11.h
+++ b/lib/stack/rte_stack_lf_c11.h
@@ -77,7 +77,7 @@ __rte_stack_lf_pop_elems(struct rte_stack_lf_list *list,
 {
 	struct rte_stack_lf_head old_head;
 	uint64_t len;
-	int success;
+	int success = 0;
 
 	/* Reserve num elements, if available */
 	len = __atomic_load_n(&list->len, __ATOMIC_RELAXED);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.757334778 +0000
+++ 0020-stack-fix-pop-in-C11-implementation.patch	2025-03-07 12:23:38.022838760 +0000
@@ -1 +1 @@
-From 916424f2c6029cd8da5c56ed62847a4b09d7e0ac Mon Sep 17 00:00:00 2001
+From 851486f6cc3e1324c1c8c7243bcb8286130c32ec Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 916424f2c6029cd8da5c56ed62847a4b09d7e0ac ]
+
@@ -16 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 60d46e963b..ee1c79c095 100644
+index 8403196d51..13ee26be4e 100644
@@ -36 +37 @@
- 	len = rte_atomic_load_explicit(&list->len, rte_memory_order_relaxed);
+ 	len = __atomic_load_n(&list->len, __ATOMIC_RELAXED);

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

* patch 'test/crypto: fix AES-ECB test lengths' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (18 preceding siblings ...)
  2025-03-07 12:24     ` patch 'stack: fix pop in C11 implementation' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " luca.boccassi
                       ` (6 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Shaokai Zhang; +Cc: Joey Xing, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 81fb435967fa963aaf0eefe54f441ad7fd21a747 Mon Sep 17 00:00:00 2001
From: Shaokai Zhang <felix.zhang@jaguarmicro.com>
Date: Thu, 16 Jan 2025 16:35:48 +0800
Subject: [PATCH] test/crypto: fix AES-ECB test lengths

[ upstream commit 4d6b2633b030f6b469c78fd00f012c8192979332 ]

The test vector aes_test_data_19 plaintext is 192 bytes and this vector
is used to test 192-byte plaintext, but test vector plaintext.len
value is incorrectly assigned to 64.

The test vector aes_test_data_20 plaintext length is 256 bytes, but
testcase comment incorrectly describes it as "192-byte plaintext".

Fixes: c94c520b4163 ("crypto/aesni_mb: support AES-ECB")

Signed-off-by: Shaokai Zhang <felix.zhang@jaguarmicro.com>
Reviewed-by: Joey Xing <joey.xing@jaguarmicro.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 .mailmap                                   | 1 +
 app/test/test_cryptodev_aes_test_vectors.h | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/.mailmap b/.mailmap
index ee6eb01cf6..30b07d12a3 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1260,6 +1260,7 @@ Shai Brandes <shaibran@amazon.com>
 Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
 Shannon Nelson <snelson@pensando.io>
 Shannon Zhao <zhaoshenglong@huawei.com>
+Shaokai Zhang <felix.zhang@jaguarmicro.com>
 Shaopeng He <shaopeng.he@intel.com>
 Shaowei Sun <1819846787@qq.com>
 Sharmila Podury <sharmila.podury@att.com>
diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h
index f3686beeb5..d709803606 100644
--- a/app/test/test_cryptodev_aes_test_vectors.h
+++ b/app/test/test_cryptodev_aes_test_vectors.h
@@ -833,11 +833,11 @@ static const struct blockcipher_test_data aes_test_data_19 = {
 	},
 	.plaintext = {
 		.data = plaintext_aes192ecb_192bytes,
-		.len = 64
+		.len = 192
 	},
 	.ciphertext = {
 		.data = ciphertext_aes192ecb_192bytes,
-		.len = 64
+		.len = 192
 	}
 };
 
@@ -5145,7 +5145,7 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
 		.op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
 	},
 	{
-		.test_descr = "AES-256-ECB Decryption (192-byte plaintext)",
+		.test_descr = "AES-256-ECB Decryption (256-byte plaintext)",
 		.test_data = &aes_test_data_20,
 		.op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
 	},
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.789296983 +0000
+++ 0021-test-crypto-fix-AES-ECB-test-lengths.patch	2025-03-07 12:23:38.026838877 +0000
@@ -1 +1 @@
-From 4d6b2633b030f6b469c78fd00f012c8192979332 Mon Sep 17 00:00:00 2001
+From 81fb435967fa963aaf0eefe54f441ad7fd21a747 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4d6b2633b030f6b469c78fd00f012c8192979332 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 3ea758ca12..b3ffe83f46 100644
+index ee6eb01cf6..30b07d12a3 100644
@@ -28,2 +29,2 @@
-@@ -1396,6 +1396,7 @@ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
- Shani Peretz <shperetz@nvidia.com>
+@@ -1260,6 +1260,7 @@ Shai Brandes <shaibran@amazon.com>
+ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
@@ -37 +38 @@
-index 7127156cc4..505e603b7e 100644
+index f3686beeb5..d709803606 100644
@@ -54 +55 @@
-@@ -5103,7 +5103,7 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
+@@ -5145,7 +5145,7 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {

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

* patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (19 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/crypto: fix AES-ECB test lengths' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/crypto: remove unused variable' " luca.boccassi
                       ` (5 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Nithinsen Kaithakadan; +Cc: Anoob Joseph, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 818ae99bdfacbee05b8dcef2fd697ec5e948c736 Mon Sep 17 00:00:00 2001
From: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
Date: Fri, 7 Feb 2025 13:45:43 +0000
Subject: [PATCH] examples/ipsec-secgw: fix IV length in CTR 192/256

[ upstream commit 7e2a7c336737084d8d8ef89260e511ff5670edbf ]

This patch fixes IV length to 8 in case of AES-CTR 192/256.
AES-CTR IV length is set 8 in SA config as it is
used for per packet IV length and set it to 16
in xform since the application populates 16B IV
in the datapath. AES-CTR requires 16B IV
constructed from nonce and counter.

Fixes: 9413c3901f31 ("examples/ipsec-secgw: support additional algorithms")

Signed-off-by: Nithinsen Kaithakadan <nkaithakadan@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 .mailmap                  | 1 +
 examples/ipsec-secgw/sa.c | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 30b07d12a3..b4cce78ea6 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1019,6 +1019,7 @@ Nipun Gupta <nipun.gupta@nxp.com>
 Nir Efrati <nir.efrati@intel.com>
 Nirmoy Das <ndas@suse.de>
 Nithin Dabilpuram <ndabilpuram@marvell.com> <nithin.dabilpuram@caviumnetworks.com>
+Nithinsen Kaithakadan <nkaithakadan@marvell.com>
 Nitin Saxena <nitin.saxena@caviumnetworks.com>
 Nitzan Weller <nitzanwe@mellanox.com>
 Noa Ezra <noae@mellanox.com>
diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
index 45cd29f18b..ba71fc97aa 100644
--- a/examples/ipsec-secgw/sa.c
+++ b/examples/ipsec-secgw/sa.c
@@ -103,14 +103,14 @@ const struct supported_cipher_algo cipher_algos[] = {
 	{
 		.keyword = "aes-192-ctr",
 		.algo = RTE_CRYPTO_CIPHER_AES_CTR,
-		.iv_len = 16,
+		.iv_len = 8,
 		.block_size = 16,
 		.key_len = 28
 	},
 	{
 		.keyword = "aes-256-ctr",
 		.algo = RTE_CRYPTO_CIPHER_AES_CTR,
-		.iv_len = 16,
+		.iv_len = 8,
 		.block_size = 16,
 		.key_len = 36
 	},
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.824367288 +0000
+++ 0022-examples-ipsec-secgw-fix-IV-length-in-CTR-192-256.patch	2025-03-07 12:23:38.026838877 +0000
@@ -1 +1 @@
-From 7e2a7c336737084d8d8ef89260e511ff5670edbf Mon Sep 17 00:00:00 2001
+From 818ae99bdfacbee05b8dcef2fd697ec5e948c736 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7e2a7c336737084d8d8ef89260e511ff5670edbf ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index b3ffe83f46..b8c482d0e5 100644
+index 30b07d12a3..b4cce78ea6 100644
@@ -28 +29,2 @@
-@@ -1119,6 +1119,7 @@ Nir Efrati <nir.efrati@intel.com>
+@@ -1019,6 +1019,7 @@ Nipun Gupta <nipun.gupta@nxp.com>
+ Nir Efrati <nir.efrati@intel.com>
@@ -30 +31,0 @@
- Nishikant Nayak <nishikanta.nayak@intel.com>
@@ -35 +36 @@
- Nizan Zorea <nizan.zorea@intel.com>
+ Noa Ezra <noae@mellanox.com>
@@ -37 +38 @@
-index 425bfbf590..313919b4b5 100644
+index 45cd29f18b..ba71fc97aa 100644
@@ -40 +41 @@
-@@ -104,14 +104,14 @@ const struct supported_cipher_algo cipher_algos[] = {
+@@ -103,14 +103,14 @@ const struct supported_cipher_algo cipher_algos[] = {

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

* patch 'test/crypto: remove unused variable' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (20 preceding siblings ...)
  2025-03-07 12:24     ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'crypto/openssl: validate incorrect RSA signature' " luca.boccassi
                       ` (4 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Shaokai Zhang; +Cc: Joey Xing, Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 0ae581a806811fd2926c85f277bd0bcd751ede15 Mon Sep 17 00:00:00 2001
From: Shaokai Zhang <felix.zhang@jaguarmicro.com>
Date: Thu, 20 Feb 2025 21:28:07 +0800
Subject: [PATCH] test/crypto: remove unused variable

[ upstream commit dafeb6ae229bc572fc809e62e4e8e242b08ca2f7 ]

In the new session framework, each crypto session no longer requires
the session_priv_mpool, and it is no longer referenced during testsuite
setup. However, the structure `struct crypto_testsuite_params` still
contains the session_priv_mpool member, which may lead to
the misunderstanding that session_priv_mpool still needs initialization.

Fixes: bdce2564dbf7 ("cryptodev: rework session framework")
Fixes: 3f3fc3308bd0 ("security: remove private mempool usage")

Signed-off-by: Shaokai Zhang <felix.zhang@jaguarmicro.com>
Reviewed-by: Joey Xing <joey.xing@jaguarmicro.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 app/test/test_cryptodev.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/app/test/test_cryptodev.h b/app/test/test_cryptodev.h
index abd795f54a..dc654a4c66 100644
--- a/app/test/test_cryptodev.h
+++ b/app/test/test_cryptodev.h
@@ -90,7 +90,6 @@ struct crypto_testsuite_params {
 	struct rte_mempool *large_mbuf_pool;
 	struct rte_mempool *op_mpool;
 	struct rte_mempool *session_mpool;
-	struct rte_mempool *session_priv_mpool;
 	struct rte_cryptodev_config conf;
 	struct rte_cryptodev_qp_conf qp_conf;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.857167579 +0000
+++ 0023-test-crypto-remove-unused-variable.patch	2025-03-07 12:23:38.026838877 +0000
@@ -1 +1 @@
-From dafeb6ae229bc572fc809e62e4e8e242b08ca2f7 Mon Sep 17 00:00:00 2001
+From 0ae581a806811fd2926c85f277bd0bcd751ede15 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit dafeb6ae229bc572fc809e62e4e8e242b08ca2f7 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +25 @@
-index bb54a33d62..190a220c73 100644
+index abd795f54a..dc654a4c66 100644
@@ -27 +28 @@
-@@ -87,7 +87,6 @@ struct crypto_testsuite_params {
+@@ -90,7 +90,6 @@ struct crypto_testsuite_params {

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

* patch 'crypto/openssl: validate incorrect RSA signature' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (21 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/crypto: remove unused variable' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/crypto: fix check for OOP header data' " luca.boccassi
                       ` (3 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Gowrishankar Muthukrishnan; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From c174c2bdcbe73b47a291a6145806c0bfdd534d4d Mon Sep 17 00:00:00 2001
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Date: Sun, 23 Feb 2025 11:34:04 +0530
Subject: [PATCH] crypto/openssl: validate incorrect RSA signature

[ upstream commit 6c209dd8785f34bfdc99b869c14e063d084508c2 ]

Return correct error status when incorrect signature is
used in RSA verify op.

Fixes: d7bd42f6db19 ("crypto/openssl: update RSA routine with 3.0 EVP API")

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 drivers/crypto/openssl/rte_openssl_pmd.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 679a7bbeb6..01a7e5e30b 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -2805,9 +2805,15 @@ process_openssl_rsa_op_evp(struct rte_crypto_op *cop,
 			goto err_rsa;
 		}
 
-		if (EVP_PKEY_verify_recover(rsa_ctx, tmp, &outlen,
+		ret = EVP_PKEY_verify_recover(rsa_ctx, tmp, &outlen,
 				op->rsa.sign.data,
-				op->rsa.sign.length) <= 0) {
+				op->rsa.sign.length);
+		if (ret <= 0) {
+			/* OpenSSL RSA verification returns one on
+			 * successful verification, otherwise 0. Hence,
+			 * this enqueue operation should succeed even if
+			 * invalid signature has been requested in verify.
+			 */
 			OPENSSL_free(tmp);
 			goto err_rsa;
 		}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.889368579 +0000
+++ 0024-crypto-openssl-validate-incorrect-RSA-signature.patch	2025-03-07 12:23:38.026838877 +0000
@@ -1 +1 @@
-From 6c209dd8785f34bfdc99b869c14e063d084508c2 Mon Sep 17 00:00:00 2001
+From c174c2bdcbe73b47a291a6145806c0bfdd534d4d Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6c209dd8785f34bfdc99b869c14e063d084508c2 ]
+
@@ -10 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
-index b090611bd0..5bfad92b7c 100644
+index 679a7bbeb6..01a7e5e30b 100644
@@ -22 +23 @@
-@@ -2803,9 +2803,15 @@ process_openssl_rsa_op_evp(struct rte_crypto_op *cop,
+@@ -2805,9 +2805,15 @@ process_openssl_rsa_op_evp(struct rte_crypto_op *cop,

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

* patch 'test/crypto: fix check for OOP header data' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (22 preceding siblings ...)
  2025-03-07 12:24     ` patch 'crypto/openssl: validate incorrect RSA signature' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'test/dma: fix pointers in IOVA as PA mode' " luca.boccassi
                       ` (2 subsequent siblings)
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Arkadiusz Kusztal; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From bb8feaacb4897e3ee4341dd838de538869d8225e Mon Sep 17 00:00:00 2001
From: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
Date: Wed, 26 Feb 2025 08:16:45 +0000
Subject: [PATCH] test/crypto: fix check for OOP header data

[ upstream commit 27eb74ea6e25966d3857539cb15ddd4f20f05ebe ]

The data of the out-of-place header is never checked. Therefore,
the faulty PMD, which overwrites this data, will not be able to
verify that with tests. New checks to support that were added to
the GCM OOP functions.

Fixes: 51e202f0596f ("test/crypto: rename GCM test code")

Signed-off-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
---
 app/test/test_cryptodev.c | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index b093fd4ae9..ac477431c4 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -11652,8 +11652,9 @@ test_authenticated_encryption_sessionless(
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
 	struct crypto_unittest_params *ut_params = &unittest_params;
 
+	uint32_t i;
 	int retval;
-	uint8_t *ciphertext, *auth_tag;
+	uint8_t *ciphertext, *auth_tag, *buffer_oop;
 	uint16_t plaintext_pad_len;
 	uint8_t key[tdata->key.len + 1];
 	struct rte_cryptodev_info dev_info;
@@ -11721,6 +11722,18 @@ test_authenticated_encryption_sessionless(
 			ut_params->op->sym->cipher.data.offset);
 	auth_tag = ciphertext + plaintext_pad_len;
 
+	/* Check if the data within the offset range is not overwritten in the OOP */
+	buffer_oop = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *);
+	for (i = 0; i < ut_params->op->sym->cipher.data.offset; i++) {
+		if (buffer_oop[i]) {
+			RTE_LOG(ERR, USER1,
+				"Incorrect value of the output buffer header\n");
+			debug_hexdump(stdout, "Incorrect value:", buffer_oop,
+				ut_params->op->sym->cipher.data.offset);
+			return TEST_FAILED;
+		}
+	}
+
 	debug_hexdump(stdout, "ciphertext:", ciphertext, tdata->ciphertext.len);
 	debug_hexdump(stdout, "auth tag:", auth_tag, tdata->auth_tag.len);
 
@@ -11755,8 +11768,9 @@ test_authenticated_decryption_sessionless(
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
 	struct crypto_unittest_params *ut_params = &unittest_params;
 
+	uint32_t i;
 	int retval;
-	uint8_t *plaintext;
+	uint8_t *plaintext, *buffer_oop;
 	uint8_t key[tdata->key.len + 1];
 	struct rte_cryptodev_info dev_info;
 
@@ -11833,6 +11847,17 @@ test_authenticated_decryption_sessionless(
 
 	debug_hexdump(stdout, "plaintext:", plaintext, tdata->ciphertext.len);
 
+	/* Check if the data within the offset range is not overwritten in the OOP */
+	buffer_oop = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *);
+	for (i = 0; i < ut_params->op->sym->cipher.data.offset; i++) {
+		if (buffer_oop[i]) {
+			RTE_LOG(ERR, USER1,
+				"Incorrect value of the output buffer header\n");
+			debug_hexdump(stdout, "Incorrect value:", buffer_oop,
+				ut_params->op->sym->cipher.data.offset);
+			return TEST_FAILED;
+		}
+	}
 	/* Validate obuf */
 	TEST_ASSERT_BUFFERS_ARE_EQUAL(
 			plaintext,
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.932878001 +0000
+++ 0025-test-crypto-fix-check-for-OOP-header-data.patch	2025-03-07 12:23:38.034839111 +0000
@@ -1 +1 @@
-From 27eb74ea6e25966d3857539cb15ddd4f20f05ebe Mon Sep 17 00:00:00 2001
+From bb8feaacb4897e3ee4341dd838de538869d8225e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 27eb74ea6e25966d3857539cb15ddd4f20f05ebe ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index 2e58819fca..bbab034c5f 100644
+index b093fd4ae9..ac477431c4 100644
@@ -23 +24 @@
-@@ -13798,8 +13798,9 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
+@@ -11652,8 +11652,9 @@ test_authenticated_encryption_sessionless(
@@ -31,0 +33 @@
+ 	uint8_t key[tdata->key.len + 1];
@@ -33,2 +35 @@
- 
-@@ -13875,6 +13876,18 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
+@@ -11721,6 +11722,18 @@ test_authenticated_encryption_sessionless(
@@ -53 +54 @@
-@@ -13907,8 +13920,9 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
+@@ -11755,8 +11768,9 @@ test_authenticated_decryption_sessionless(
@@ -60,0 +62 @@
+ 	uint8_t key[tdata->key.len + 1];
@@ -63,2 +65 @@
- 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
-@@ -13986,6 +14000,17 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
+@@ -11833,6 +11847,17 @@ test_authenticated_decryption_sessionless(

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

* patch 'test/dma: fix pointers in IOVA as PA mode' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (23 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/crypto: fix check for OOP header data' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'doc: update ionic driver guide' " luca.boccassi
  2025-03-07 12:24     ` patch 'ci: point at GitHub mirror' " luca.boccassi
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 5803110850a7d8d24d03da7a223dde5de8a798dd Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 27 Feb 2025 13:27:49 +0000
Subject: [PATCH] test/dma: fix pointers in IOVA as PA mode

[ upstream commit 5879d209d847c1025d0852dad7f3bee3e5cff2f6 ]

When running without IOMMU for address translation, i.e. IOVAs are
physical rather than virtual addresses, we need to translate the
pointers to IOVAs for the completion API tests.

Fixes: 9942ebb9c698 ("test/dma: add dmadev API test")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/test/test_dmadev_api.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/app/test/test_dmadev_api.c b/app/test/test_dmadev_api.c
index 4a181af90a..0e66784de7 100644
--- a/app/test/test_dmadev_api.c
+++ b/app/test/test_dmadev_api.c
@@ -441,7 +441,9 @@ test_dma_completed(void)
 	setup_memory();
 
 	/* Check enqueue without submit */
-	ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,
+	ret = rte_dma_copy(test_dev_id, 0,
+			   rte_malloc_virt2iova(src),
+			   rte_malloc_virt2iova(dst),
 			   TEST_MEMCPY_SIZE, 0);
 	RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);
 	rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -463,7 +465,9 @@ test_dma_completed(void)
 	setup_memory();
 
 	/* Check for enqueue with submit */
-	ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,
+	ret = rte_dma_copy(test_dev_id, 0,
+			   rte_malloc_virt2iova(src),
+			   rte_malloc_virt2iova(dst),
 			   TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
 	RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);
 	rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -498,7 +502,9 @@ test_dma_completed_status(void)
 	RTE_TEST_ASSERT_SUCCESS(ret, "Failed to start, %d", ret);
 
 	/* Check for enqueue with submit */
-	ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,
+	ret = rte_dma_copy(test_dev_id, 0,
+			   rte_malloc_virt2iova(src),
+			   rte_malloc_virt2iova(dst),
 			   TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
 	RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);
 	rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -517,7 +523,9 @@ test_dma_completed_status(void)
 	RTE_TEST_ASSERT_EQUAL(cpl_ret, 0, "Failed to completed status");
 
 	/* Check for enqueue with submit again */
-	ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,
+	ret = rte_dma_copy(test_dev_id, 0,
+			   rte_malloc_virt2iova(src),
+			   rte_malloc_virt2iova(dst),
 			   TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
 	RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);
 	rte_delay_us_sleep(TEST_WAIT_US_VAL);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:38.974778396 +0000
+++ 0026-test-dma-fix-pointers-in-IOVA-as-PA-mode.patch	2025-03-07 12:23:38.034839111 +0000
@@ -1 +1 @@
-From 5879d209d847c1025d0852dad7f3bee3e5cff2f6 Mon Sep 17 00:00:00 2001
+From 5803110850a7d8d24d03da7a223dde5de8a798dd Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5879d209d847c1025d0852dad7f3bee3e5cff2f6 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +21 @@
-index d40c05cfbf..fb49fcb56b 100644
+index 4a181af90a..0e66784de7 100644
@@ -23 +24 @@
-@@ -515,7 +515,9 @@ test_dma_completed(void)
+@@ -441,7 +441,9 @@ test_dma_completed(void)
@@ -34 +35 @@
-@@ -537,7 +539,9 @@ test_dma_completed(void)
+@@ -463,7 +465,9 @@ test_dma_completed(void)
@@ -45 +46 @@
-@@ -572,7 +576,9 @@ test_dma_completed_status(void)
+@@ -498,7 +502,9 @@ test_dma_completed_status(void)
@@ -56 +57 @@
-@@ -591,7 +597,9 @@ test_dma_completed_status(void)
+@@ -517,7 +523,9 @@ test_dma_completed_status(void)

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

* patch 'doc: update ionic driver guide' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (24 preceding siblings ...)
  2025-03-07 12:24     ` patch 'test/dma: fix pointers in IOVA as PA mode' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-07 12:24     ` patch 'ci: point at GitHub mirror' " luca.boccassi
  26 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: Andrew Boyer; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 946053a1cee3eb301aca09e01540c9abb8bdee72 Mon Sep 17 00:00:00 2001
From: Andrew Boyer <andrew.boyer@amd.com>
Date: Thu, 27 Feb 2025 12:14:18 -0800
Subject: [PATCH] doc: update ionic driver guide

[ upstream commit 328f800ccc1acdeb04288ddd21ed551bd7f78cc1 ]

Update broken links and add a link for the DSC3-400 product brief.

Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
---
 doc/guides/nics/ionic.rst | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/doc/guides/nics/ionic.rst b/doc/guides/nics/ionic.rst
index e0eb1b5c9a..a991a2cf3f 100644
--- a/doc/guides/nics/ionic.rst
+++ b/doc/guides/nics/ionic.rst
@@ -7,11 +7,19 @@ IONIC Driver
 The ionic driver provides support for AMD Pensando server adapters.
 It currently supports the below models:
 
-- DSC-25 dual-port 25G Distributed Services Card `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKurUAG>`__
-- DSC-100 dual-port 100G Distributed Services Card `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKuwUAG>`__
-- DSC-200 dual-port 200G Distributed Services Card `(pdf) <https://www.amd.com/system/files/documents/pensando-dsc-200-product-brief.pdf>`__
+- DSC-25 dual-port 25G Distributed Services Card
+  `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKurUAG>`__
+- DSC-100 dual-port 100G Distributed Services Card
+  `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKuwUAG>`__
+- DSC2-200 dual-port 200G Distributed Services Card
+  `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-elba-product-brief.pdf>`__
+- DSC3-400 dual-port 400G Distributed Services Card
+  `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-dsc3-product-brief.pdf>`__
 
-Please visit the AMD Pensando web site at https://www.amd.com/en/accelerators/pensando for more information.
+Please visit the
+`AMD Pensando Networking
+<https://www.amd.com/en/products/accelerators/pensando.html>`_
+web site for more information.
 
 Identifying the Adapter
 -----------------------
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:39.010211673 +0000
+++ 0027-doc-update-ionic-driver-guide.patch	2025-03-07 12:23:38.034839111 +0000
@@ -1 +1 @@
-From 328f800ccc1acdeb04288ddd21ed551bd7f78cc1 Mon Sep 17 00:00:00 2001
+From 946053a1cee3eb301aca09e01540c9abb8bdee72 Mon Sep 17 00:00:00 2001
@@ -6 +6 @@
-Update broken links and add a link for the DSC3-400 product brief.
+[ upstream commit 328f800ccc1acdeb04288ddd21ed551bd7f78cc1 ]
@@ -8 +8 @@
-Cc: stable@dpdk.org
+Update broken links and add a link for the DSC3-400 product brief.
@@ -12,3 +12,2 @@
- doc/guides/cryptodevs/ionic.rst | 12 ++++++++----
- doc/guides/nics/ionic.rst       | 16 ++++++++++++----
- 2 files changed, 20 insertions(+), 8 deletions(-)
+ doc/guides/nics/ionic.rst | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
@@ -16,24 +14,0 @@
-diff --git a/doc/guides/cryptodevs/ionic.rst b/doc/guides/cryptodevs/ionic.rst
-index 2641835f63..d563602ebe 100644
---- a/doc/guides/cryptodevs/ionic.rst
-+++ b/doc/guides/cryptodevs/ionic.rst
-@@ -12,11 +12,15 @@ It currently supports the below models:
-   `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKurUAG>`__
- - DSC-100 dual-port 100G Distributed Services Card
-   `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKuwUAG>`__
--- DSC-200 dual-port 200G Distributed Services Card
--  `(pdf) <https://www.amd.com/system/files/documents/pensando-dsc-200-product-brief.pdf>`__
-+- DSC2-200 dual-port 200G Distributed Services Card
-+  `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-elba-product-brief.pdf>`__
-+- DSC3-400 dual-port 400G Distributed Services Card
-+  `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-dsc3-product-brief.pdf>`__
- 
--Please visit the AMD Pensando web site at
--https://www.amd.com/en/accelerators/pensando for more information.
-+Please visit the
-+`AMD Pensando Networking
-+<https://www.amd.com/en/products/accelerators/pensando.html>`_
-+web site for more information.
- 
- Device Support
- --------------

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

* patch 'ci: point at GitHub mirror' has been queued to stable release 22.11.8
  2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
                       ` (25 preceding siblings ...)
  2025-03-07 12:24     ` patch 'doc: update ionic driver guide' " luca.boccassi
@ 2025-03-07 12:24     ` luca.boccassi
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
  2025-03-25  8:20       ` patch 'ci: point at GitHub mirror' " Navin Srinivas
  26 siblings, 2 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-07 12:24 UTC (permalink / raw)
  To: David Marchand; +Cc: Aaron Conole, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 451cb5179585f9aca2cdd94a6d098a3698c7b5c4 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 4 Mar 2025 16:48:43 +0100
Subject: [PATCH] ci: point at GitHub mirror

[ upstream commit 860019bd4c804cba4265dfe007fa5b9b282f5fcc ]

We faced some random failures accessing dpdk.org git when running GHA.
Point at GitHub hosted mirror.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
---
 .github/workflows/build.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c08f6ae827..dab104c8c4 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -25,7 +25,7 @@ jobs:
       MINGW: ${{ matrix.config.cross == 'mingw' }}
       MINI: ${{ matrix.config.mini != '' }}
       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
-      REF_GIT_REPO: https://dpdk.org/git/dpdk-stable
+      REF_GIT_REPO: https://github.com/DPDK/dpdk-stable
       REF_GIT_TAG: v22.11.1
       RISCV64: ${{ matrix.config.cross == 'riscv64' }}
       RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-07 12:23:39.042010768 +0000
+++ 0028-ci-point-at-GitHub-mirror.patch	2025-03-07 12:23:38.034839111 +0000
@@ -1 +1 @@
-From 860019bd4c804cba4265dfe007fa5b9b282f5fcc Mon Sep 17 00:00:00 2001
+From 451cb5179585f9aca2cdd94a6d098a3698c7b5c4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 860019bd4c804cba4265dfe007fa5b9b282f5fcc ]
+
@@ -9,2 +10,0 @@
-Cc: stable@dpdk.org
-
@@ -18 +18 @@
-index 183b0b1999..e98a60a852 100644
+index c08f6ae827..dab104c8c4 100644
@@ -21,9 +21,9 @@
-@@ -11,7 +11,7 @@ defaults:
- 
- env:
-   REF_GIT_BRANCH: main
--  REF_GIT_REPO: https://dpdk.org/git/dpdk
-+  REF_GIT_REPO: https://github.com/DPDK/dpdk
-   REF_GIT_TAG: v24.11
- 
- jobs:
+@@ -25,7 +25,7 @@ jobs:
+       MINGW: ${{ matrix.config.cross == 'mingw' }}
+       MINI: ${{ matrix.config.mini != '' }}
+       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
+-      REF_GIT_REPO: https://dpdk.org/git/dpdk-stable
++      REF_GIT_REPO: https://github.com/DPDK/dpdk-stable
+       REF_GIT_TAG: v22.11.1
+       RISCV64: ${{ matrix.config.cross == 'riscv64' }}
+       RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}

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

* patch 'net/iavf: fix mbuf release in Arm multi-process' has been queued to stable release 22.11.8
  2025-03-07 12:24     ` patch 'ci: point at GitHub mirror' " luca.boccassi
@ 2025-03-19 14:21       ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/ice: fix dropped packets when using VRRP' " luca.boccassi
                           ` (9 more replies)
  2025-03-25  8:20       ` patch 'ci: point at GitHub mirror' " Navin Srinivas
  1 sibling, 10 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Yang Ming; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 1011c5f2e70fdad2ea21c61cf73fd34a05bbe00a Mon Sep 17 00:00:00 2001
From: Yang Ming <ming.1.yang@nokia-sbell.com>
Date: Fri, 7 Mar 2025 13:40:22 +0800
Subject: [PATCH] net/iavf: fix mbuf release in Arm multi-process

[ upstream commit 289d1b2e348032543f9b823d2eaf3d0e0073af56 ]

This patch addresses a bug related to mbuf release in the Arm
architecture. The previous patch resolved the mbuf release issue
in a multi-process environment but was only applicable to the
x86 architecture, leaving Arm unaddressed.
This patch extends the fix to include the Arm architecture,
ensuring consistent behavior across both x86 and Arm platforms.

Fixes: fced83c1229e ("net/iavf: fix mbuf release in multi-process")

Signed-off-by: Yang Ming <ming.1.yang@nokia-sbell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c          | 3 +++
 drivers/net/iavf/iavf_rxtx.h          | 2 ++
 drivers/net/iavf/iavf_rxtx_vec_neon.c | 8 ++------
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 3272553b5c..1f82d1cf3f 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -368,6 +368,9 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = {
 #ifdef RTE_ARCH_X86
 	[IAVF_REL_MBUFS_SSE_VEC].release_mbufs = iavf_rx_queue_release_mbufs_sse,
 #endif
+#ifdef RTE_ARCH_ARM64
+	[IAVF_REL_MBUFS_NEON_VEC].release_mbufs = iavf_rx_queue_release_mbufs_neon,
+#endif
 };
 
 static const
diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
index 180f7ec108..b56519a507 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -416,6 +416,7 @@ enum iavf_rxtx_rel_mbufs_type {
 	IAVF_REL_MBUFS_DEFAULT		= 0,
 	IAVF_REL_MBUFS_SSE_VEC		= 1,
 	IAVF_REL_MBUFS_AVX512_VEC	= 2,
+	IAVF_REL_MBUFS_NEON_VEC		= 3,
 };
 
 /* Receive Flex Descriptor profile IDs: There are a total
@@ -724,6 +725,7 @@ void iavf_set_default_ptype_table(struct rte_eth_dev *dev);
 void iavf_tx_queue_release_mbufs_avx512(struct iavf_tx_queue *txq);
 void iavf_rx_queue_release_mbufs_sse(struct iavf_rx_queue *rxq);
 void iavf_tx_queue_release_mbufs_sse(struct iavf_tx_queue *txq);
+void iavf_rx_queue_release_mbufs_neon(struct iavf_rx_queue *rxq);
 
 static inline
 void iavf_dump_rx_descriptor(struct iavf_rx_queue *rxq,
diff --git a/drivers/net/iavf/iavf_rxtx_vec_neon.c b/drivers/net/iavf/iavf_rxtx_vec_neon.c
index 83825aa427..23c1d6c3a2 100644
--- a/drivers/net/iavf/iavf_rxtx_vec_neon.c
+++ b/drivers/net/iavf/iavf_rxtx_vec_neon.c
@@ -391,20 +391,16 @@ iavf_recv_pkts_vec(void *__rte_restrict rx_queue,
 	return _recv_raw_pkts_vec(rx_queue, rx_pkts, nb_pkts, NULL);
 }
 
-static void __rte_cold
+void __rte_cold
 iavf_rx_queue_release_mbufs_neon(struct iavf_rx_queue *rxq)
 {
 	_iavf_rx_queue_release_mbufs_vec(rxq);
 }
 
-static const struct iavf_rxq_ops neon_vec_rxq_ops = {
-	.release_mbufs = iavf_rx_queue_release_mbufs_neon,
-};
-
 int __rte_cold
 iavf_rxq_vec_setup(struct iavf_rx_queue *rxq)
 {
-	rxq->ops = &neon_vec_rxq_ops;
+	rxq->rel_mbufs_type = IAVF_REL_MBUFS_NEON_VEC;
 	return iavf_rxq_vec_setup_default(rxq);
 }
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.121189100 +0000
+++ 0001-net-iavf-fix-mbuf-release-in-Arm-multi-process.patch	2025-03-19 14:20:57.049288704 +0000
@@ -1 +1 @@
-From 289d1b2e348032543f9b823d2eaf3d0e0073af56 Mon Sep 17 00:00:00 2001
+From 1011c5f2e70fdad2ea21c61cf73fd34a05bbe00a Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 289d1b2e348032543f9b823d2eaf3d0e0073af56 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19,3 +20,3 @@
- drivers/net/intel/iavf/iavf_rxtx.c          | 3 +++
- drivers/net/intel/iavf/iavf_rxtx.h          | 2 ++
- drivers/net/intel/iavf/iavf_rxtx_vec_neon.c | 8 ++------
+ drivers/net/iavf/iavf_rxtx.c          | 3 +++
+ drivers/net/iavf/iavf_rxtx.h          | 2 ++
+ drivers/net/iavf/iavf_rxtx_vec_neon.c | 8 ++------
@@ -24,5 +25,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_rxtx.c b/drivers/net/intel/iavf/iavf_rxtx.c
-index 657963750d..a999073691 100644
---- a/drivers/net/intel/iavf/iavf_rxtx.c
-+++ b/drivers/net/intel/iavf/iavf_rxtx.c
-@@ -380,6 +380,9 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = {
+diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
+index 3272553b5c..1f82d1cf3f 100644
+--- a/drivers/net/iavf/iavf_rxtx.c
++++ b/drivers/net/iavf/iavf_rxtx.c
+@@ -368,6 +368,9 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = {
@@ -37,6 +38,6 @@
- static inline void
-diff --git a/drivers/net/intel/iavf/iavf_rxtx.h b/drivers/net/intel/iavf/iavf_rxtx.h
-index 6a54b446cf..823a6efa9a 100644
---- a/drivers/net/intel/iavf/iavf_rxtx.h
-+++ b/drivers/net/intel/iavf/iavf_rxtx.h
-@@ -404,6 +404,7 @@ enum iavf_rxtx_rel_mbufs_type {
+ static const
+diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
+index 180f7ec108..b56519a507 100644
+--- a/drivers/net/iavf/iavf_rxtx.h
++++ b/drivers/net/iavf/iavf_rxtx.h
+@@ -416,6 +416,7 @@ enum iavf_rxtx_rel_mbufs_type {
@@ -50,2 +51,2 @@
-@@ -729,6 +730,7 @@ void iavf_set_default_ptype_table(struct rte_eth_dev *dev);
- void iavf_tx_queue_release_mbufs_avx512(struct ci_tx_queue *txq);
+@@ -724,6 +725,7 @@ void iavf_set_default_ptype_table(struct rte_eth_dev *dev);
+ void iavf_tx_queue_release_mbufs_avx512(struct iavf_tx_queue *txq);
@@ -53 +54 @@
- void iavf_tx_queue_release_mbufs_sse(struct ci_tx_queue *txq);
+ void iavf_tx_queue_release_mbufs_sse(struct iavf_tx_queue *txq);
@@ -58,5 +59,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c b/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c
-index 6bc8e1db2a..a583340f15 100644
---- a/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c
-+++ b/drivers/net/intel/iavf/iavf_rxtx_vec_neon.c
-@@ -393,20 +393,16 @@ iavf_recv_pkts_vec(void *__rte_restrict rx_queue,
+diff --git a/drivers/net/iavf/iavf_rxtx_vec_neon.c b/drivers/net/iavf/iavf_rxtx_vec_neon.c
+index 83825aa427..23c1d6c3a2 100644
+--- a/drivers/net/iavf/iavf_rxtx_vec_neon.c
++++ b/drivers/net/iavf/iavf_rxtx_vec_neon.c
+@@ -391,20 +391,16 @@ iavf_recv_pkts_vec(void *__rte_restrict rx_queue,
@@ -82,2 +83 @@
- 	rxq->mbuf_initializer = ci_rxq_mbuf_initializer(rxq->port_id);
- 	return 0;
+ 	return iavf_rxq_vec_setup_default(rxq);
@@ -84,0 +85 @@
+ 

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

* patch 'net/ice: fix dropped packets when using VRRP' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/iavf: check interrupt registration failure' " luca.boccassi
                           ` (8 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Matthew Smith; +Cc: Vladimir Medvedkin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 7d5b6278e0800e92989582d86cf1eced59ee01a6 Mon Sep 17 00:00:00 2001
From: Matthew Smith <mgsmith@netgate.com>
Date: Tue, 11 Mar 2025 21:40:31 +0000
Subject: [PATCH] net/ice: fix dropped packets when using VRRP

[ upstream commit 6f866eb93e796aaf226f66c689e4c4e1b2290c90 ]

While adding a vsi for an ice PF, set the ICE_AQ_VSI_SW_FLAG_LOCAL_LB
flag. This will prevent packets from being dropped when using a virtual
MAC address with VRRP.

Also set the ICE_AQ_VSI_SW_FLAG_SRC_PRUNE flag to prevent transmitted
packets from being looped back in some circumstances.

Fixes: f9cf4f864150 ("net/ice: support device initialization")

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index ba19c16384..591d067851 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -1591,6 +1591,10 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
 		 * by ice_init_hw
 		 */
 		vsi_ctx.info.sw_id = hw->port_info->sw_id;
+		vsi_ctx.info.sw_flags = ICE_AQ_VSI_SW_FLAG_LOCAL_LB;
+		vsi_ctx.info.sw_flags |= ICE_AQ_VSI_SW_FLAG_SRC_PRUNE;
+		cfg = ICE_AQ_VSI_PROP_SW_VALID;
+		vsi_ctx.info.valid_sections |= rte_cpu_to_le_16(cfg);
 		vsi_ctx.info.sw_flags2 = ICE_AQ_VSI_SW_FLAG_LAN_ENA;
 		/* Allow all untagged or tagged packets */
 		vsi_ctx.info.inner_vlan_flags = ICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.159459325 +0000
+++ 0002-net-ice-fix-dropped-packets-when-using-VRRP.patch	2025-03-19 14:20:57.053288771 +0000
@@ -1 +1 @@
-From 6f866eb93e796aaf226f66c689e4c4e1b2290c90 Mon Sep 17 00:00:00 2001
+From 7d5b6278e0800e92989582d86cf1eced59ee01a6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6f866eb93e796aaf226f66c689e4c4e1b2290c90 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -19 +20 @@
- drivers/net/intel/ice/ice_ethdev.c | 4 ++++
+ drivers/net/ice/ice_ethdev.c | 4 ++++
@@ -22,5 +23,5 @@
-diff --git a/drivers/net/intel/ice/ice_ethdev.c b/drivers/net/intel/ice/ice_ethdev.c
-index 3cdfa16f77..21d3795954 100644
---- a/drivers/net/intel/ice/ice_ethdev.c
-+++ b/drivers/net/intel/ice/ice_ethdev.c
-@@ -1696,6 +1696,10 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
+diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
+index ba19c16384..591d067851 100644
+--- a/drivers/net/ice/ice_ethdev.c
++++ b/drivers/net/ice/ice_ethdev.c
+@@ -1591,6 +1591,10 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)

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

* patch 'net/iavf: check interrupt registration failure' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
  2025-03-19 14:21         ` patch 'net/ice: fix dropped packets when using VRRP' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/iavf: fix crash on app exit on FreeBSD' " luca.boccassi
                           ` (7 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Vladimir Medvedkin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 63ddf74eee79d5db70c098e8fae414bdcba201c4 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 10 Mar 2025 13:11:15 +0000
Subject: [PATCH] net/iavf: check interrupt registration failure

[ upstream commit 12e8844f0bda3c4e4e578e180dfa0136f9285182 ]

When registering interrupts, there was no check if the registration of
the interrupt succeeded. Add in such a check, and go to fallback path
if the check fails. This prevents errors on FreeBSD due to missed
admin queue messages.

Fixes: cd3b124955d4 ("net/iavf: enable interrupt polling")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index c117896547..0ff55a57b4 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2656,18 +2656,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 			&eth_dev->data->mac_addrs[0]);
 
 
-	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
-		/* register callback func to eal lib */
-		rte_intr_callback_register(pci_dev->intr_handle,
-					   iavf_dev_interrupt_handler,
-					   (void *)eth_dev);
+	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR &&
+			/* register callback func to eal lib */
+			rte_intr_callback_register(pci_dev->intr_handle,
+				   iavf_dev_interrupt_handler, (void *)eth_dev) == 0)
 
 		/* enable uio intr after callback register */
 		rte_intr_enable(pci_dev->intr_handle);
-	} else {
+	else
 		rte_eal_alarm_set(IAVF_ALARM_INTERVAL,
 				  iavf_dev_alarm_handler, eth_dev);
-	}
 
 	/* configure and enable device interrupt */
 	iavf_enable_irq0(hw);
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.197210074 +0000
+++ 0003-net-iavf-check-interrupt-registration-failure.patch	2025-03-19 14:20:57.057288838 +0000
@@ -1 +1 @@
-From 12e8844f0bda3c4e4e578e180dfa0136f9285182 Mon Sep 17 00:00:00 2001
+From 63ddf74eee79d5db70c098e8fae414bdcba201c4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 12e8844f0bda3c4e4e578e180dfa0136f9285182 ]
+
@@ -12 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +18 @@
- drivers/net/intel/iavf/iavf_ethdev.c | 12 +++++-------
+ drivers/net/iavf/iavf_ethdev.c | 12 +++++-------
@@ -20,5 +21,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c
-index 9cd2b0c867..1ab84b0bfc 100644
---- a/drivers/net/intel/iavf/iavf_ethdev.c
-+++ b/drivers/net/intel/iavf/iavf_ethdev.c
-@@ -2825,18 +2825,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
+index c117896547..0ff55a57b4 100644
+--- a/drivers/net/iavf/iavf_ethdev.c
++++ b/drivers/net/iavf/iavf_ethdev.c
+@@ -2656,18 +2656,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)

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

* patch 'net/iavf: fix crash on app exit on FreeBSD' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
  2025-03-19 14:21         ` patch 'net/ice: fix dropped packets when using VRRP' " luca.boccassi
  2025-03-19 14:21         ` patch 'net/iavf: check interrupt registration failure' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " luca.boccassi
                           ` (6 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Vladimir Medvedkin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From ad8a7ddf129931efaebb971ea92d275f0f0728d5 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 10 Mar 2025 13:11:16 +0000
Subject: [PATCH] net/iavf: fix crash on app exit on FreeBSD

[ upstream commit 44a86bcf2447d7d914d7195448285aa82eaedcba ]

With the fallback interrupt path now enabled on FreeBSD there are
segmentation faults on app exit, due to the alarm interrupt trying to
access invalid pointers.  Add checks for null to fix these crashes.

Fixes: cd3b124955d4 ("net/iavf: enable interrupt polling")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 0ff55a57b4..656a4c6176 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2529,6 +2529,9 @@ void
 iavf_dev_alarm_handler(void *param)
 {
 	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
+	if (dev == NULL || dev->data == NULL || dev->data->dev_private == NULL)
+		return;
+
 	struct iavf_hw *hw = IAVF_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t icr0;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.230789784 +0000
+++ 0004-net-iavf-fix-crash-on-app-exit-on-FreeBSD.patch	2025-03-19 14:20:57.057288838 +0000
@@ -1 +1 @@
-From 44a86bcf2447d7d914d7195448285aa82eaedcba Mon Sep 17 00:00:00 2001
+From ad8a7ddf129931efaebb971ea92d275f0f0728d5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 44a86bcf2447d7d914d7195448285aa82eaedcba ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +17 @@
- drivers/net/intel/iavf/iavf_ethdev.c | 3 +++
+ drivers/net/iavf/iavf_ethdev.c | 3 +++
@@ -19,5 +20,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c
-index 1ab84b0bfc..2335746f04 100644
---- a/drivers/net/intel/iavf/iavf_ethdev.c
-+++ b/drivers/net/intel/iavf/iavf_ethdev.c
-@@ -2698,6 +2698,9 @@ void
+diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
+index 0ff55a57b4..656a4c6176 100644
+--- a/drivers/net/iavf/iavf_ethdev.c
++++ b/drivers/net/iavf/iavf_ethdev.c
+@@ -2529,6 +2529,9 @@ void

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

* patch 'net/mlx5: fix LACP packet handling in isolated mode' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (2 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/iavf: fix crash on app exit on FreeBSD' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/mlx5/hws: fix crash using represented port without ID' " luca.boccassi
                           ` (5 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 5a26748fd0eadd72670fdbb8d02d274f54ee6351 Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Thu, 27 Feb 2025 12:20:44 +0200
Subject: [PATCH] net/mlx5: fix LACP packet handling in isolated mode

[ upstream commit d15d74fc4b22cf7f09194f7d4de8d8ee03ca63a6 ]

Fix an issue with handling LACP packets when the device is operating
in isolated mode. The problem was caused by an incorrectly positioned
isolated mode check, which led to improper processing of these packets.

This ensures that LACP packets are handled correctly in compliance
with the expected behavior.

Fixes: 87e4384d2662 ("net/mlx5: fix condition of LACP miss flow")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_trigger.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 13152d488e..786e638f95 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -1524,11 +1524,11 @@ mlx5_traffic_enable_hws(struct rte_eth_dev *dev)
 	} else {
 		DRV_LOG(INFO, "port %u FDB default rule is disabled", dev->data->port_id);
 	}
-	if (priv->isolated)
-		return 0;
 	if (!priv->sh->config.lacp_by_user && priv->pf_bond >= 0 && priv->master)
 		if (mlx5_flow_hw_lacp_rx_flow(dev))
 			goto error;
+	if (priv->isolated)
+		return 0;
 	if (dev->data->promiscuous)
 		flags |= MLX5_CTRL_PROMISCUOUS;
 	if (dev->data->all_multicast)
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.262899946 +0000
+++ 0005-net-mlx5-fix-LACP-packet-handling-in-isolated-mode.patch	2025-03-19 14:20:57.057288838 +0000
@@ -1 +1 @@
-From d15d74fc4b22cf7f09194f7d4de8d8ee03ca63a6 Mon Sep 17 00:00:00 2001
+From 5a26748fd0eadd72670fdbb8d02d274f54ee6351 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d15d74fc4b22cf7f09194f7d4de8d8ee03ca63a6 ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 79b3d4d982..4ee44e9165 100644
+index 13152d488e..786e638f95 100644
@@ -26 +27 @@
-@@ -1533,11 +1533,11 @@ mlx5_traffic_enable_hws(struct rte_eth_dev *dev)
+@@ -1524,11 +1524,11 @@ mlx5_traffic_enable_hws(struct rte_eth_dev *dev)

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

* patch 'net/mlx5/hws: fix crash using represented port without ID' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (3 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/mlx5/hws: fix GTP flags matching' " luca.boccassi
                           ` (4 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 421ec973fa0ba851250becfe1b73ec77bc0c807c Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Thu, 27 Feb 2025 12:33:29 +0200
Subject: [PATCH] net/mlx5/hws: fix crash using represented port without ID

[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ]

For non-template API on top of HWS, when trying to use
represented-port item w/o setting the ethdev_port_id,
it crashes.

Added default values to match the case for SWS.
Default port is now eswitch manager id.

Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_definer.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index bc1decbec9..805025184c 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -392,10 +392,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
 			 uint8_t *tag)
 {
 	const struct rte_flow_item_ethdev *v = item_spec;
-	const struct flow_hw_port_info *port_info;
+	const struct flow_hw_port_info *port_info = NULL;
 	uint32_t regc_value;
 
-	port_info = flow_hw_conv_port_id(v->port_id);
+	if (v)
+		port_info = flow_hw_conv_port_id(v->port_id);
 	if (unlikely(!port_info))
 		regc_value = BAD_PORT;
 	else
@@ -977,11 +978,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
 			      struct rte_flow_item *item,
 			      int item_idx)
 {
-	const struct rte_flow_item_ethdev *m = item->mask;
+	uint16_t port_id = item->mask ?
+			   ((const struct rte_flow_item_ethdev *)(item->mask))->port_id : 0;
 	struct mlx5dr_definer_fc *fc;
 	uint8_t bit_offset = 0;
 
-	if (m->port_id) {
+	if (port_id) {
 		if (!cd->caps->wire_regc_mask) {
 			DR_LOG(ERR, "Port ID item not supported, missing wire REGC mask");
 			rte_errno = ENOTSUP;
@@ -998,10 +1000,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
 		DR_CALC_SET_HDR(fc, registers, register_c_0);
 		fc->bit_off = bit_offset;
 		fc->bit_mask = cd->caps->wire_regc_mask >> bit_offset;
-	} else {
-		DR_LOG(ERR, "Pord ID item mask must specify ID mask");
-		rte_errno = EINVAL;
-		return rte_errno;
 	}
 
 	return 0;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.304059510 +0000
+++ 0006-net-mlx5-hws-fix-crash-using-represented-port-withou.patch	2025-03-19 14:20:57.057288838 +0000
@@ -1 +1 @@
-From 1de93ca6aee6acb785c8080f84da26b09835af0f Mon Sep 17 00:00:00 2001
+From 421ec973fa0ba851250becfe1b73ec77bc0c807c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ]
+
@@ -14 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +24 @@
-index 98d670fc1c..a4b9306d2b 100644
+index bc1decbec9..805025184c 100644
@@ -26 +27 @@
-@@ -772,10 +772,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
+@@ -392,10 +392,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
@@ -34 +35 @@
--	port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
+-	port_info = flow_hw_conv_port_id(v->port_id);
@@ -36 +37 @@
-+		port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
++		port_info = flow_hw_conv_port_id(v->port_id);
@@ -40 +41,2 @@
-@@ -1585,10 +1586,11 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+@@ -977,11 +978,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+ 			      struct rte_flow_item *item,
@@ -43 +44,0 @@
- 	struct mlx5dr_cmd_query_caps *caps = cd->ctx->caps;
@@ -47,0 +49 @@
+ 	uint8_t bit_offset = 0;
@@ -51 +53 @@
- 		if (!caps->wire_regc_mask) {
+ 		if (!cd->caps->wire_regc_mask) {
@@ -54,4 +56,4 @@
-@@ -1603,10 +1605,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
- 		fc->bit_off = rte_ctz32(caps->wire_regc_mask);
- 		fc->bit_mask = caps->wire_regc_mask >> fc->bit_off;
- 		fc->dr_ctx = cd->ctx;
+@@ -998,10 +1000,6 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+ 		DR_CALC_SET_HDR(fc, registers, register_c_0);
+ 		fc->bit_off = bit_offset;
+ 		fc->bit_mask = cd->caps->wire_regc_mask >> bit_offset;

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

* patch 'net/mlx5/hws: fix GTP flags matching' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (4 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/mlx5/hws: fix crash using represented port without ID' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/mlx5: fix IPIP tunnel verification' " luca.boccassi
                           ` (3 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 723d4e015b1938b51e748cf63ccefd27f92db60e Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Thu, 27 Feb 2025 12:49:40 +0200
Subject: [PATCH] net/mlx5/hws: fix GTP flags matching

[ upstream commit a31da10717be6a79877621e94eeb003f547c5f88 ]

Support GTP flags in non-template on top of HWS.
Currently, only extension flag was supported,
Added support to all bits under v_pt_rsv_flags.

Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_definer.c | 12 ++++++------
 drivers/net/mlx5/hws/mlx5dr_definer.h | 18 ++++++++++++------
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index 805025184c..527217487e 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -152,7 +152,7 @@ struct mlx5dr_definer_conv_data {
 	X(SET,		gtp_udp_port,		RTE_GTPU_UDP_PORT,	rte_flow_item_gtp) \
 	X(SET_BE32,	gtp_teid,		v->teid,		rte_flow_item_gtp) \
 	X(SET,		gtp_msg_type,		v->msg_type,		rte_flow_item_gtp) \
-	X(SET,		gtp_ext_flag,		!!v->v_pt_rsv_flags,	rte_flow_item_gtp) \
+	X(SET,		gtp_flags,		v->v_pt_rsv_flags,	rte_flow_item_gtp) \
 	X(SET,		gtp_next_ext_hdr,	GTP_PDU_SC,		rte_flow_item_gtp_psc) \
 	X(SET,		gtp_ext_hdr_pdu,	v->hdr.type,		rte_flow_item_gtp_psc) \
 	X(SET,		gtp_ext_hdr_qfi,	v->hdr.qfi,		rte_flow_item_gtp_psc) \
@@ -857,7 +857,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
 	if (!m)
 		return 0;
 
-	if (m->msg_len || m->v_pt_rsv_flags & ~MLX5DR_DEFINER_GTP_EXT_HDR_BIT) {
+	if (m->msg_len) {
 		rte_errno = ENOTSUP;
 		return rte_errno;
 	}
@@ -879,11 +879,11 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
 			rte_errno = ENOTSUP;
 			return rte_errno;
 		}
-		fc = &cd->fc[MLX5DR_DEFINER_FNAME_GTP_EXT_FLAG];
+		fc = &cd->fc[MLX5DR_DEFINER_FNAME_GTP_FLAGS];
 		fc->item_idx = item_idx;
-		fc->tag_set = &mlx5dr_definer_gtp_ext_flag_set;
-		fc->bit_mask = __mlx5_mask(header_gtp, ext_hdr_flag);
-		fc->bit_off = __mlx5_dw_bit_off(header_gtp, ext_hdr_flag);
+		fc->tag_set = &mlx5dr_definer_gtp_flags_set;
+		fc->bit_mask = __mlx5_mask(header_gtp, v_pt_rsv_flags);
+		fc->bit_off = __mlx5_dw_bit_off(header_gtp, v_pt_rsv_flags);
 		fc->byte_off = cd->caps->format_select_gtpu_dw_0 * DW_SIZE;
 	}
 
diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.h b/drivers/net/mlx5/hws/mlx5dr_definer.h
index 5b38a54e6b..9e6681afc9 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.h
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.h
@@ -71,6 +71,7 @@ enum mlx5dr_definer_fname {
 	MLX5DR_DEFINER_FNAME_GTP_TEID,
 	MLX5DR_DEFINER_FNAME_GTP_MSG_TYPE,
 	MLX5DR_DEFINER_FNAME_GTP_EXT_FLAG,
+	MLX5DR_DEFINER_FNAME_GTP_FLAGS,
 	MLX5DR_DEFINER_FNAME_GTP_NEXT_EXT_HDR,
 	MLX5DR_DEFINER_FNAME_GTP_EXT_HDR_PDU,
 	MLX5DR_DEFINER_FNAME_GTP_EXT_HDR_QFI,
@@ -479,12 +480,17 @@ enum mlx5dr_definer_gtp {
 };
 
 struct mlx5_ifc_header_gtp_bits {
-	u8 version[0x3];
-	u8 proto_type[0x1];
-	u8 reserved1[0x1];
-	u8 ext_hdr_flag[0x1];
-	u8 seq_num_flag[0x1];
-	u8 pdu_flag[0x1];
+	union {
+		 u8 v_pt_rsv_flags[0x8];
+		struct {
+			u8 version[0x3];
+			u8 proto_type[0x1];
+			u8 reserved1[0x1];
+			u8 ext_hdr_flag[0x1];
+			u8 seq_num_flag[0x1];
+			u8 pdu_flag[0x1];
+		};
+	};
 	u8 msg_type[0x8];
 	u8 msg_len[0x8];
 	u8 teid[0x20];
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.340890666 +0000
+++ 0007-net-mlx5-hws-fix-GTP-flags-matching.patch	2025-03-19 14:20:57.061288905 +0000
@@ -1 +1 @@
-From a31da10717be6a79877621e94eeb003f547c5f88 Mon Sep 17 00:00:00 2001
+From 723d4e015b1938b51e748cf63ccefd27f92db60e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a31da10717be6a79877621e94eeb003f547c5f88 ]
+
@@ -11 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +22 @@
-index a4b9306d2b..5272119bcb 100644
+index 805025184c..527217487e 100644
@@ -24,6 +25,6 @@
-@@ -199,7 +199,7 @@ struct mlx5dr_definer_conv_data {
- 	X(SET,		gtp_udp_port,		UDP_GTPU_PORT,		rte_flow_item_gtp) \
- 	X(SET_BE32,	gtp_teid,		v->hdr.teid,		rte_flow_item_gtp) \
- 	X(SET,		gtp_msg_type,		v->hdr.msg_type,	rte_flow_item_gtp) \
--	X(SET,		gtp_ext_flag,		!!v->hdr.gtp_hdr_info,	rte_flow_item_gtp) \
-+	X(SET,		gtp_flags,		v->hdr.gtp_hdr_info,	rte_flow_item_gtp) \
+@@ -152,7 +152,7 @@ struct mlx5dr_definer_conv_data {
+ 	X(SET,		gtp_udp_port,		RTE_GTPU_UDP_PORT,	rte_flow_item_gtp) \
+ 	X(SET_BE32,	gtp_teid,		v->teid,		rte_flow_item_gtp) \
+ 	X(SET,		gtp_msg_type,		v->msg_type,		rte_flow_item_gtp) \
+-	X(SET,		gtp_ext_flag,		!!v->v_pt_rsv_flags,	rte_flow_item_gtp) \
++	X(SET,		gtp_flags,		v->v_pt_rsv_flags,	rte_flow_item_gtp) \
@@ -33 +34 @@
-@@ -1463,7 +1463,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
+@@ -857,7 +857,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
@@ -37 +38 @@
--	if (m->hdr.plen || m->hdr.gtp_hdr_info & ~MLX5DR_DEFINER_GTP_EXT_HDR_BIT) {
+-	if (m->msg_len || m->v_pt_rsv_flags & ~MLX5DR_DEFINER_GTP_EXT_HDR_BIT) {
@@ -42 +43 @@
-@@ -1485,11 +1485,11 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
+@@ -879,11 +879,11 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
@@ -55 +56 @@
- 		fc->byte_off = caps->format_select_gtpu_dw_0 * DW_SIZE;
+ 		fc->byte_off = cd->caps->format_select_gtpu_dw_0 * DW_SIZE;
@@ -59 +60 @@
-index 092b1b3b10..d0c99399ae 100644
+index 5b38a54e6b..9e6681afc9 100644
@@ -62 +63 @@
-@@ -110,6 +110,7 @@ enum mlx5dr_definer_fname {
+@@ -71,6 +71,7 @@ enum mlx5dr_definer_fname {
@@ -70 +71 @@
-@@ -606,12 +607,17 @@ enum mlx5dr_definer_gtp {
+@@ -479,12 +480,17 @@ enum mlx5dr_definer_gtp {

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

* patch 'net/mlx5: fix IPIP tunnel verification' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (5 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/mlx5/hws: fix GTP flags matching' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'net/mlx5: fix GRE matching on root table' " luca.boccassi
                           ` (2 subsequent siblings)
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Gregory Etelson; +Cc: Dariusz Sosnowski, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 963a6c51d044a62e833c6d276b0d6e072214c4a7 Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson@nvidia.com>
Date: Mon, 10 Mar 2025 13:19:45 +0200
Subject: [PATCH] net/mlx5: fix IPIP tunnel verification

[ upstream commit 3d80d35b118ecfb650e51fabafc682ea8a3adb8f ]

Assuming a case with the following pattern:

eth / ipv4 / udp / vxlan / eth / ipv4 proto is (IPv4 | IPv6)

MLX5 PMD incorrectly recognized this as a packet encapsulated as
VXLAN and IP in IP at the same packet header level.
This caused a flow validation error.

This patch fixes the inner IP in IP detection logic.

Fixes: 2db234e769e1 ("net/mlx5: fix IP-in-IP tunnels recognition")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index df437aba38..2cc7376669 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -7249,7 +7249,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 				mlx5_flow_tunnel_ip_check(items, next_protocol,
 							  item_flags,
 							  &l3_tunnel_flag);
-			if (l3_tunnel_detection == l3_tunnel_inner) {
+			/*
+			 * explicitly allow inner IPIP match
+			 */
+			if (l3_tunnel_detection == l3_tunnel_outer) {
 				item_flags |= l3_tunnel_flag;
 				tunnel = 1;
 			}
@@ -7270,7 +7273,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 				mlx5_flow_tunnel_ip_check(items, next_protocol,
 							  item_flags,
 							  &l3_tunnel_flag);
-			if (l3_tunnel_detection == l3_tunnel_inner) {
+			/*
+			 * explicitly allow inner IPIP match
+			 */
+			if (l3_tunnel_detection == l3_tunnel_outer) {
 				item_flags |= l3_tunnel_flag;
 				tunnel = 1;
 			}
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.374803928 +0000
+++ 0008-net-mlx5-fix-IPIP-tunnel-verification.patch	2025-03-19 14:20:57.073289107 +0000
@@ -1 +1 @@
-From 3d80d35b118ecfb650e51fabafc682ea8a3adb8f Mon Sep 17 00:00:00 2001
+From 963a6c51d044a62e833c6d276b0d6e072214c4a7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3d80d35b118ecfb650e51fabafc682ea8a3adb8f ]
+
@@ -17 +18,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index c77041317b..8703403b8f 100644
+index df437aba38..2cc7376669 100644
@@ -29 +30 @@
-@@ -7925,7 +7925,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7249,7 +7249,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -41 +42 @@
-@@ -7949,7 +7952,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7270,7 +7273,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,

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

* patch 'net/mlx5: fix GRE matching on root table' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (6 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/mlx5: fix IPIP tunnel verification' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'pdump: clear statistics when enabled' " luca.boccassi
  2025-03-19 14:21         ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " luca.boccassi
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Maayan Kashani; +Cc: Bing Zhao, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 096ff17860629ded561311306476ef7b59a0c4a6 Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Wed, 12 Mar 2025 13:23:48 +0200
Subject: [PATCH] net/mlx5: fix GRE matching on root table

[ upstream commit 111bde25455114e1d4ad843e7b3a03c5ffd6eca5 ]

The current implementation sets a gre mask with protocol masked in
case the user did not supply the protocol mask.

In template mode, for group 0, the gre translation was called
once with the mask and later with the value.
with gre open matcher(mask/value is null) default values were assigned
gre protocol mask=0xffff and gre protocol value=0.

Therefore gre packet with protocol value not equal zero,
will not match the rule.
Changed the default protocol mask to be zero instead of 0xffff.

In case of empty gre match,
this fix will ignore the protocol field matching,
gre will only be matched by the IP next header field in
previous header in packet.

Fixes: 25ab2cbba31d ("net/mlx5: fix GRE flow item translation for root table")

Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Bing Zhao <bingz@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 2cc7376669..73f047e41b 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -9121,7 +9121,7 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
 	/* HWS mask logic only */
 	if (key_type & MLX5_SET_MATCHER_HS_M) {
 		if (!gre_m)
-			gre_m = &rte_flow_item_gre_mask;
+			gre_m = &empty_gre;
 		gre_v = gre_m;
 	} else if (!gre_v) {
 		gre_v = &empty_gre;
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.415408480 +0000
+++ 0009-net-mlx5-fix-GRE-matching-on-root-table.patch	2025-03-19 14:20:57.081289241 +0000
@@ -1 +1 @@
-From 111bde25455114e1d4ad843e7b3a03c5ffd6eca5 Mon Sep 17 00:00:00 2001
+From 096ff17860629ded561311306476ef7b59a0c4a6 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 111bde25455114e1d4ad843e7b3a03c5ffd6eca5 ]
+
@@ -24 +25,0 @@
-Cc: stable@dpdk.org
@@ -33 +34 @@
-index 8703403b8f..608c42db1d 100644
+index 2cc7376669..73f047e41b 100644
@@ -36 +37 @@
-@@ -9856,7 +9856,7 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
+@@ -9121,7 +9121,7 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,

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

* patch 'pdump: clear statistics when enabled' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (7 preceding siblings ...)
  2025-03-19 14:21         ` patch 'net/mlx5: fix GRE matching on root table' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-19 14:21         ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " luca.boccassi
  9 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, Vladimir Medvedkin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 37489c4ec76b13fa4b79cbb0052c4418be665802 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 19 Dec 2024 15:58:53 -0800
Subject: [PATCH] pdump: clear statistics when enabled

[ upstream commit b8392fa204ed46b580d61e7621948f1b187c9f98 ]

The pdump statistics are used to keep track of the number
of packets captured, filtered, etc. These need not be cumalative
and instead should be start counting when capture starts.

This fixes the issue where multiple invocations of dumpcap
would include counts from previous invocations.

Bugzilla ID: 1604
Fixes: 10f726efe26c ("pdump: support pcapng and filtering")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/pdump/rte_pdump.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c
index 63835a1a67..016a0c38cf 100644
--- a/lib/pdump/rte_pdump.c
+++ b/lib/pdump/rte_pdump.c
@@ -202,6 +202,8 @@ pdump_register_rx_callbacks(enum pdump_version ver,
 					rte_errno);
 				return rte_errno;
 			}
+
+			memset(&pdump_stats->rx[port][qid], 0, sizeof(struct rte_pdump_stats));
 		} else if (operation == DISABLE) {
 			int ret;
 
@@ -260,6 +262,7 @@ pdump_register_tx_callbacks(enum pdump_version ver,
 					rte_errno);
 				return rte_errno;
 			}
+			memset(&pdump_stats->tx[port][qid], 0, sizeof(struct rte_pdump_stats));
 		} else if (operation == DISABLE) {
 			int ret;
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.458335455 +0000
+++ 0010-pdump-clear-statistics-when-enabled.patch	2025-03-19 14:20:57.081289241 +0000
@@ -1 +1 @@
-From b8392fa204ed46b580d61e7621948f1b187c9f98 Mon Sep 17 00:00:00 2001
+From 37489c4ec76b13fa4b79cbb0052c4418be665802 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b8392fa204ed46b580d61e7621948f1b187c9f98 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index 679c3dd0b5..0e6ffc167b 100644
+index 63835a1a67..016a0c38cf 100644
@@ -28 +29 @@
-@@ -199,6 +199,8 @@ pdump_register_rx_callbacks(enum pdump_version ver,
+@@ -202,6 +202,8 @@ pdump_register_rx_callbacks(enum pdump_version ver,
@@ -37 +38 @@
-@@ -257,6 +259,7 @@ pdump_register_tx_callbacks(enum pdump_version ver,
+@@ -260,6 +262,7 @@ pdump_register_tx_callbacks(enum pdump_version ver,

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

* patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' has been queued to stable release 22.11.8
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
                           ` (8 preceding siblings ...)
  2025-03-19 14:21         ` patch 'pdump: clear statistics when enabled' " luca.boccassi
@ 2025-03-19 14:21         ` luca.boccassi
  2025-03-25 11:24           ` patch 'eal: fix undetected NUMA nodes' " luca.boccassi
  9 siblings, 1 reply; 121+ messages in thread
From: luca.boccassi @ 2025-03-19 14:21 UTC (permalink / raw)
  To: Tejasree Kondoj; +Cc: Anoob Joseph, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From 3a9e8a2f5e28536053b2f9eb5a02b1987e552155 Mon Sep 17 00:00:00 2001
From: Tejasree Kondoj <ktejasree@marvell.com>
Date: Mon, 2 Dec 2024 12:19:06 +0530
Subject: [PATCH] examples/ipsec-secgw: fix cryptodev and eventdev IDs

[ upstream commit c7b38c687d920000aef08659465e07106caa22c5 ]

Fixing cryptodev and eventdev ID numbers.

Fixes: 0dbe550a4af5 ("examples/ipsec-secgw: initialize event crypto adapter")

Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
---
 examples/ipsec-secgw/event_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/ipsec-secgw/event_helper.c b/examples/ipsec-secgw/event_helper.c
index 89fb7e62a5..5d8ce4df0b 100644
--- a/examples/ipsec-secgw/event_helper.c
+++ b/examples/ipsec-secgw/event_helper.c
@@ -881,7 +881,7 @@ eh_initialize_crypto_adapter(struct eventmode_conf *em_conf)
 		}
 
 		/* Add crypto queue pairs to event crypto adapter */
-		ret = rte_event_crypto_adapter_queue_pair_add(cdev_id, eventdev_id,
+		ret = rte_event_crypto_adapter_queue_pair_add(eventdev_id, cdev_id,
 				-1, /* adds all the pre configured queue pairs to the instance */
 				&queue_conf);
 		if (ret < 0) {
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-19 14:20:57.488565333 +0000
+++ 0011-examples-ipsec-secgw-fix-cryptodev-and-eventdev-IDs.patch	2025-03-19 14:20:57.081289241 +0000
@@ -1 +1 @@
-From c7b38c687d920000aef08659465e07106caa22c5 Mon Sep 17 00:00:00 2001
+From 3a9e8a2f5e28536053b2f9eb5a02b1987e552155 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c7b38c687d920000aef08659465e07106caa22c5 ]
+
@@ -9 +10,0 @@
-Cc: stable@dpdk.org
@@ -18 +19 @@
-index dadddcb306..fc9fa1b000 100644
+index 89fb7e62a5..5d8ce4df0b 100644
@@ -21 +22 @@
-@@ -887,7 +887,7 @@ eh_initialize_crypto_adapter(struct eventmode_conf *em_conf)
+@@ -881,7 +881,7 @@ eh_initialize_crypto_adapter(struct eventmode_conf *em_conf)

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

* Re: patch 'ci: point at GitHub mirror' has been queued to stable release 22.11.8
  2025-03-07 12:24     ` patch 'ci: point at GitHub mirror' " luca.boccassi
  2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
@ 2025-03-25  8:20       ` Navin Srinivas
  2025-03-25  8:38         ` David Marchand
  1 sibling, 1 reply; 121+ messages in thread
From: Navin Srinivas @ 2025-03-25  8:20 UTC (permalink / raw)
  To: luca.boccassi; +Cc: David Marchand, Aaron Conole, dpdk stable


[-- Attachment #1.1: Type: text/plain, Size: 3817 bytes --]

There is change in URL now?
not able to access the below links which are shown on
https://git.dpdk.org/dpdk-stable

Should we use git.dpdk.org? or use the github link?

http://dpdk.org/git/dpdk-stable
https://dpdk.org/git/dpdk-stable

[image: image.png]

On Fri, Mar 7, 2025 at 5:56 PM <luca.boccassi@gmail.com> wrote:

> Hi,
>
> FYI, your patch has been queued to stable release 22.11.8
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 03/09/25. 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/451cb5179585f9aca2cdd94a6d098a3698c7b5c4
>
> Thanks.
>
> Luca Boccassi
>
> ---
> From 451cb5179585f9aca2cdd94a6d098a3698c7b5c4 Mon Sep 17 00:00:00 2001
> From: David Marchand <david.marchand@redhat.com>
> Date: Tue, 4 Mar 2025 16:48:43 +0100
> Subject: [PATCH] ci: point at GitHub mirror
>
> [ upstream commit 860019bd4c804cba4265dfe007fa5b9b282f5fcc ]
>
> We faced some random failures accessing dpdk.org git when running GHA.
> Point at GitHub hosted mirror.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Aaron Conole <aconole@redhat.com>
> ---
>  .github/workflows/build.yml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
> index c08f6ae827..dab104c8c4 100644
> --- a/.github/workflows/build.yml
> +++ b/.github/workflows/build.yml
> @@ -25,7 +25,7 @@ jobs:
>        MINGW: ${{ matrix.config.cross == 'mingw' }}
>        MINI: ${{ matrix.config.mini != '' }}
>        PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
> -      REF_GIT_REPO: https://dpdk.org/git/dpdk-stable
> +      REF_GIT_REPO: https://github.com/DPDK/dpdk-stable
>        REF_GIT_TAG: v22.11.1
>        RISCV64: ${{ matrix.config.cross == 'riscv64' }}
>        RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
> --
> 2.47.2
>
> ---
>   Diff of the applied patch vs upstream commit (please double-check if
> non-empty:
> ---
> --- -   2025-03-07 12:23:39.042010768 +0000
> +++ 0028-ci-point-at-GitHub-mirror.patch        2025-03-07
> 12:23:38.034839111 +0000
> @@ -1 +1 @@
> -From 860019bd4c804cba4265dfe007fa5b9b282f5fcc Mon Sep 17 00:00:00 2001
> +From 451cb5179585f9aca2cdd94a6d098a3698c7b5c4 Mon Sep 17 00:00:00 2001
> @@ -5,0 +6,2 @@
> +[ upstream commit 860019bd4c804cba4265dfe007fa5b9b282f5fcc ]
> +
> @@ -9,2 +10,0 @@
> -Cc: stable@dpdk.org
> -
> @@ -18 +18 @@
> -index 183b0b1999..e98a60a852 100644
> +index c08f6ae827..dab104c8c4 100644
> @@ -21,9 +21,9 @@
> -@@ -11,7 +11,7 @@ defaults:
> -
> - env:
> -   REF_GIT_BRANCH: main
> --  REF_GIT_REPO: https://dpdk.org/git/dpdk
> -+  REF_GIT_REPO: https://github.com/DPDK/dpdk
> -   REF_GIT_TAG: v24.11
> -
> - jobs:
> +@@ -25,7 +25,7 @@ jobs:
> +       MINGW: ${{ matrix.config.cross == 'mingw' }}
> +       MINI: ${{ matrix.config.mini != '' }}
> +       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
> +-      REF_GIT_REPO: https://dpdk.org/git/dpdk-stable
> ++      REF_GIT_REPO: https://github.com/DPDK/dpdk-stable
> +       REF_GIT_TAG: v22.11.1
> +       RISCV64: ${{ matrix.config.cross == 'riscv64' }}
> +       RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
>

[-- Attachment #1.2: Type: text/html, Size: 6457 bytes --]

[-- Attachment #2: image.png --]
[-- Type: image/png, Size: 11978 bytes --]

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

* Re: patch 'ci: point at GitHub mirror' has been queued to stable release 22.11.8
  2025-03-25  8:20       ` patch 'ci: point at GitHub mirror' " Navin Srinivas
@ 2025-03-25  8:38         ` David Marchand
  0 siblings, 0 replies; 121+ messages in thread
From: David Marchand @ 2025-03-25  8:38 UTC (permalink / raw)
  To: Navin Srinivas; +Cc: luca.boccassi, Aaron Conole, dpdk stable

Hello,

On Tue, Mar 25, 2025 at 9:20 AM Navin Srinivas
<g.navinsrinivas@gmail.com> wrote:
>
> There is change in URL now?
> not able to access the below links which are shown on https://git.dpdk.org/dpdk-stable
>
> Should we use git.dpdk.org? or use the github link?

You can still point at any of those links, both dpdk.org or github
(which is a mirror of dpdk.org).

dpdk.org is frequently overloaded by robots (?) who mirror the whole cgit.
This change you replied to is about moving the CI checks run in GitHub
to use the GitHub mirror repo.
We are looking into other mitigations.


-- 
David Marchand


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

* patch 'eal: fix undetected NUMA nodes' has been queued to stable release 22.11.8
  2025-03-19 14:21         ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " luca.boccassi
@ 2025-03-25 11:24           ` luca.boccassi
  0 siblings, 0 replies; 121+ messages in thread
From: luca.boccassi @ 2025-03-25 11:24 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.8

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

Thanks.

Luca Boccassi

---
From e4081bc8044358481867c5860933aeb5d7aa2d8c Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 5 Mar 2025 16:24:58 +0000
Subject: [PATCH] eal: fix undetected NUMA nodes

[ upstream commit ef41b96461703c766e4a39ecf4bf7cb731d9617d ]

In cases where the number of cores on a given socket is greater than
RTE_MAX_LCORES, then EAL will be unaware of all the sockets/numa nodes
on a system. Fix this limitation by having the EAL probe the NUMA node
for cores it isn't going to use, and recording that for completeness.

This is necessary as memory is tracked per node, and with the --lcores
parameters our app lcores may be on different sockets than the lcore ids
may imply. For example, lcore 0 is on socket zero, but if app is run
with --lcores=0@64, then DPDK lcore 0 may be on socket one, so DPDK
needs to be aware of that socket.

Fixes: 952b20777255 ("eal: provide API for querying valid socket ids")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/eal/common/eal_common_lcore.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/lib/eal/common/eal_common_lcore.c b/lib/eal/common/eal_common_lcore.c
index 06c594b022..787dbaff36 100644
--- a/lib/eal/common/eal_common_lcore.c
+++ b/lib/eal/common/eal_common_lcore.c
@@ -140,7 +140,11 @@ rte_eal_cpu_init(void)
 	unsigned lcore_id;
 	unsigned count = 0;
 	unsigned int socket_id, prev_socket_id;
-	int lcore_to_socket_id[RTE_MAX_LCORE];
+#if CPU_SETSIZE > RTE_MAX_LCORE
+	int lcore_to_socket_id[CPU_SETSIZE] = {0};
+#else
+	int lcore_to_socket_id[RTE_MAX_LCORE] = {0};
+#endif
 
 	/*
 	 * Parse the maximum set of logical cores, detect the subset of running
@@ -179,9 +183,11 @@ rte_eal_cpu_init(void)
 	for (; lcore_id < CPU_SETSIZE; lcore_id++) {
 		if (eal_cpu_detected(lcore_id) == 0)
 			continue;
+		socket_id = eal_cpu_socket_id(lcore_id);
+		lcore_to_socket_id[lcore_id] = socket_id;
 		RTE_LOG(DEBUG, EAL, "Skipped lcore %u as core %u on socket %u\n",
 			lcore_id, eal_cpu_core_id(lcore_id),
-			eal_cpu_socket_id(lcore_id));
+			socket_id);
 	}
 
 	/* Set the count of enabled logical cores of the EAL configuration */
@@ -197,12 +203,13 @@ rte_eal_cpu_init(void)
 
 	prev_socket_id = -1;
 	config->numa_node_count = 0;
-	for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
+	for (lcore_id = 0; lcore_id < RTE_DIM(lcore_to_socket_id); lcore_id++) {
 		socket_id = lcore_to_socket_id[lcore_id];
 		if (socket_id != prev_socket_id)
-			config->numa_nodes[config->numa_node_count++] =
-					socket_id;
+			config->numa_nodes[config->numa_node_count++] =	socket_id;
 		prev_socket_id = socket_id;
+		if (config->numa_node_count >= RTE_MAX_NUMA_NODES)
+			break;
 	}
 	RTE_LOG(INFO, EAL, "Detected NUMA nodes: %u\n", config->numa_node_count);
 
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-25 11:23:58.243823149 +0000
+++ 0001-eal-fix-undetected-NUMA-nodes.patch	2025-03-25 11:23:58.213308917 +0000
@@ -1 +1 @@
-From ef41b96461703c766e4a39ecf4bf7cb731d9617d Mon Sep 17 00:00:00 2001
+From e4081bc8044358481867c5860933aeb5d7aa2d8c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit ef41b96461703c766e4a39ecf4bf7cb731d9617d ]
+
@@ -18 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +27 @@
-index 2ff9252c52..820a6534b1 100644
+index 06c594b022..787dbaff36 100644
@@ -29 +30 @@
-@@ -144,7 +144,11 @@ rte_eal_cpu_init(void)
+@@ -140,7 +140,11 @@ rte_eal_cpu_init(void)
@@ -42 +43 @@
-@@ -183,9 +187,11 @@ rte_eal_cpu_init(void)
+@@ -179,9 +183,11 @@ rte_eal_cpu_init(void)
@@ -48 +49 @@
- 		EAL_LOG(DEBUG, "Skipped lcore %u as core %u on socket %u",
+ 		RTE_LOG(DEBUG, EAL, "Skipped lcore %u as core %u on socket %u\n",
@@ -55 +56 @@
-@@ -201,12 +207,13 @@ rte_eal_cpu_init(void)
+@@ -197,12 +203,13 @@ rte_eal_cpu_init(void)
@@ -70 +71 @@
- 	EAL_LOG(INFO, "Detected NUMA nodes: %u", config->numa_node_count);
+ 	RTE_LOG(INFO, EAL, "Detected NUMA nodes: %u\n", config->numa_node_count);

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

end of thread, other threads:[~2025-03-25 11:24 UTC | newest]

Thread overview: 121+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-17 17:03 patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 22.11.8 luca.boccassi
2025-02-17 17:03 ` patch 'vhost: clear ring addresses when getting vring base' " luca.boccassi
2025-02-17 17:03 ` patch 'vhost: check GSO size validity' " luca.boccassi
2025-02-17 17:03 ` patch 'crypto/cnxk: fix build with GCC 15' " luca.boccassi
2025-02-17 17:03 ` patch 'net/thunderx/base: " luca.boccassi
2025-02-17 17:03 ` patch 'eal/x86: fix some intrinsics header include for Windows' " luca.boccassi
2025-02-17 17:03 ` patch 'net/bonding: fix dedicated queue setup' " luca.boccassi
2025-02-17 17:03 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " luca.boccassi
2025-02-17 17:03 ` patch 'net/hns3: remove PVID info dump for VF' " luca.boccassi
2025-02-17 17:03 ` patch 'net/hns3: rename RAS module' " luca.boccassi
2025-02-17 17:03 ` patch 'net/sfc: remove unnecessary assignment' " luca.boccassi
2025-02-17 17:03 ` patch 'net/mlx5: fix polling CQEs' " luca.boccassi
2025-02-17 17:03 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " luca.boccassi
2025-02-17 17:03 ` patch 'net/ice: fix memory leak in scalar Rx' " luca.boccassi
2025-02-17 17:03 ` patch 'common/cnxk: fix atomic load in batch ops' " luca.boccassi
2025-02-17 17:03 ` patch 'common/cnxk: fix DPI mailbox structure' " luca.boccassi
2025-02-17 17:03 ` patch 'crypto/virtio: fix redundant queue free' " luca.boccassi
2025-02-17 17:03 ` patch 'crypto/openssl: fix CMAC auth context update' " luca.boccassi
2025-02-17 17:03 ` patch 'crypto/virtio: fix data queues iteration' " luca.boccassi
2025-02-17 17:03 ` patch 'net/enetfec: remove useless assignment' " luca.boccassi
2025-02-17 17:03 ` patch 'net/cnxk: fix NIX send header L3 type' " luca.boccassi
2025-02-17 17:03 ` patch 'eal/linux: fix memseg length in legacy mem init' " luca.boccassi
2025-02-17 17:03 ` patch 'use Python raw string notation' " luca.boccassi
2025-02-17 17:03 ` patch 'net/af_packet: fix socket close on device stop' " luca.boccassi
2025-02-17 17:03 ` patch 'ethdev: fix functions available in new device event' " luca.boccassi
2025-02-17 17:03 ` patch 'vhost: add null callback checks' " luca.boccassi
2025-02-17 17:04 ` patch 'build: force GCC 15 to initialize padding bits' " luca.boccassi
2025-02-17 17:04 ` patch 'net/bnxt: fix indication of allocation' " luca.boccassi
2025-02-17 17:04 ` patch 'net/bnxt: fix crash when representor is re-attached' " luca.boccassi
2025-02-17 17:04 ` patch 'net/mlx5: fix Netlink socket leak' " luca.boccassi
2025-02-17 17:04 ` patch 'net/mlx5: adjust actions per rule limitation' " luca.boccassi
2025-02-17 17:04 ` patch 'net/mlx5: fix flush of non-template flow rules' " luca.boccassi
2025-02-17 17:04 ` patch 'net/mlx5: fix GRE flow match with SWS' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix deadlock when writing i225 register' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix infinite loop' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix bitwise operation type' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: increase PHY power up delay' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: reset loop variable' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix LTR for i225' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix typo in LTR calculation' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix unused value' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix semaphore timeout " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix iterator type' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix MAC address hash bit shift' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix data type in MAC hash' " luca.boccassi
2025-02-17 17:04 ` patch 'net/igc/base: fix NVM data type in bit shift' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix semaphore timeout value' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: correct mPHY access logic' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix iterator type' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix MAC address hash bit shift' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix data type in MAC hash' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix uninitialized variable' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix bitwise operation type' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix NVM data type in bit shift' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix reset for 82580' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: fix unchecked return' " luca.boccassi
2025-02-17 17:04 ` patch 'net/e1000/base: skip management check for 82575' " luca.boccassi
2025-02-17 17:04 ` patch 'common/idpf: fix void function returning a value' " luca.boccassi
2025-02-17 17:04 ` patch 'net/intel: fix void functions " luca.boccassi
2025-02-17 17:04 ` patch 'net/intel: fix build with icx' " luca.boccassi
2025-02-17 17:04 ` patch 'net/hns3: fix copper port initialization' " luca.boccassi
2025-02-17 17:04 ` patch 'net/hns3: fix reset timeout' " luca.boccassi
2025-02-17 17:04 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " luca.boccassi
2025-02-17 17:04 ` patch 'net/i40e: remove duplicate code' " luca.boccassi
2025-02-17 17:04 ` patch 'eal: fix devargs layers parsing out of bounds' " luca.boccassi
2025-02-17 17:04 ` patch 'net/qede: fix debug messages array' " luca.boccassi
2025-02-17 17:04 ` patch 'examples/ptpclient: fix message parsing' " luca.boccassi
2025-02-17 17:04 ` patch 'net/hinic: fix flow type bitmask overflow' " luca.boccassi
2025-02-17 17:04 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " luca.boccassi
2025-02-17 17:04 ` patch 'crypto/dpaa_sec: " luca.boccassi
2025-02-17 17:04 ` patch 'event/dpaa: " luca.boccassi
2025-02-17 17:04 ` patch 'net/dpaa: " luca.boccassi
2025-02-17 17:04 ` patch 'net/dpaa2: " luca.boccassi
2025-02-17 17:04 ` patch 'net/qede: fix nested loops' " luca.boccassi
2025-02-17 17:04 ` patch 'examples/l3fwd: fix socket ID check' " luca.boccassi
2025-02-17 17:04 ` patch 'common/cnxk: fix null " luca.boccassi
2025-02-17 17:04 ` patch 'eal/linux: remove useless assignments' " luca.boccassi
2025-02-17 17:04 ` patch 'mempool: fix errno in empty create' " luca.boccassi
2025-02-17 17:04 ` patch 'ethdev: convert string initialization' " luca.boccassi
2025-03-07 12:24   ` patch 'net/netvsc: scan all net devices under the PCI device' " luca.boccassi
2025-03-07 12:24     ` patch 'net/netvsc: remove device if its net devices removed' " luca.boccassi
2025-03-07 12:24     ` patch 'doc: fix feature flags for queue start/stop' " luca.boccassi
2025-03-07 12:24     ` patch 'app/testpmd: show all DCB priority TC map' " luca.boccassi
2025-03-07 12:24     ` patch 'app/testpmd: avoid crash in DCB config' " luca.boccassi
2025-03-07 12:24     ` patch 'app/testpmd: fix out-of-bound reference in offload " luca.boccassi
2025-03-07 12:24     ` patch 'net/txgbe: remove useless condition for SW-FW sync' " luca.boccassi
2025-03-07 12:24     ` patch 'bus/pci: fix registered device name' " luca.boccassi
2025-03-07 12:24     ` patch 'examples/vhost_crypto: fix user callbacks' " luca.boccassi
2025-03-07 12:24     ` patch 'vhost: check descriptor chains length' " luca.boccassi
2025-03-07 12:24     ` patch 'test/bbdev: update FFT test vectors' " luca.boccassi
2025-03-07 12:24     ` patch 'test/event: fix number of queues in eventdev conf' " luca.boccassi
2025-03-07 12:24     ` patch 'net/e1000: fix crashes in secondary processes' " luca.boccassi
2025-03-07 12:24     ` patch 'net/ixgbe: " luca.boccassi
2025-03-07 12:24     ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " luca.boccassi
2025-03-07 12:24     ` patch 'net/mlx5: fix leak in HWS flow counter action' " luca.boccassi
2025-03-07 12:24     ` patch 'net/mlx5: fix actions translation error overwrite' " luca.boccassi
2025-03-07 12:24     ` patch 'net/mlx5: fix hardware packet type translation' " luca.boccassi
2025-03-07 12:24     ` patch 'common/cnxk: fix inbound IPsec SA setup' " luca.boccassi
2025-03-07 12:24     ` patch 'stack: fix pop in C11 implementation' " luca.boccassi
2025-03-07 12:24     ` patch 'test/crypto: fix AES-ECB test lengths' " luca.boccassi
2025-03-07 12:24     ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " luca.boccassi
2025-03-07 12:24     ` patch 'test/crypto: remove unused variable' " luca.boccassi
2025-03-07 12:24     ` patch 'crypto/openssl: validate incorrect RSA signature' " luca.boccassi
2025-03-07 12:24     ` patch 'test/crypto: fix check for OOP header data' " luca.boccassi
2025-03-07 12:24     ` patch 'test/dma: fix pointers in IOVA as PA mode' " luca.boccassi
2025-03-07 12:24     ` patch 'doc: update ionic driver guide' " luca.boccassi
2025-03-07 12:24     ` patch 'ci: point at GitHub mirror' " luca.boccassi
2025-03-19 14:21       ` patch 'net/iavf: fix mbuf release in Arm multi-process' " luca.boccassi
2025-03-19 14:21         ` patch 'net/ice: fix dropped packets when using VRRP' " luca.boccassi
2025-03-19 14:21         ` patch 'net/iavf: check interrupt registration failure' " luca.boccassi
2025-03-19 14:21         ` patch 'net/iavf: fix crash on app exit on FreeBSD' " luca.boccassi
2025-03-19 14:21         ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " luca.boccassi
2025-03-19 14:21         ` patch 'net/mlx5/hws: fix crash using represented port without ID' " luca.boccassi
2025-03-19 14:21         ` patch 'net/mlx5/hws: fix GTP flags matching' " luca.boccassi
2025-03-19 14:21         ` patch 'net/mlx5: fix IPIP tunnel verification' " luca.boccassi
2025-03-19 14:21         ` patch 'net/mlx5: fix GRE matching on root table' " luca.boccassi
2025-03-19 14:21         ` patch 'pdump: clear statistics when enabled' " luca.boccassi
2025-03-19 14:21         ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " luca.boccassi
2025-03-25 11:24           ` patch 'eal: fix undetected NUMA nodes' " luca.boccassi
2025-03-25  8:20       ` patch 'ci: point at GitHub mirror' " Navin Srinivas
2025-03-25  8:38         ` David Marchand

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).