* patch has been queued to stable release 23.11.4
@ 2025-02-18 12:33 Xueming Li
2025-02-18 12:33 ` patch 'test/ring: fix init with custom number of lcores' " Xueming Li
` (91 more replies)
0 siblings, 92 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:33 UTC (permalink / raw)
To: Xueming Li; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5a7e0e1cfe70bc32fc87ef7141fac01bc27ae73f
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5a7e0e1cfe70bc32fc87ef7141fac01bc27ae73f Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@nvidia.com>
Date: Tue, 18 Feb 2025 19:39:00 +0800
Subject: [PATCH] *** SUBJECT HERE ***
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>
Aleksandr Loktionov (2):
net/igc/base: fix MAC address hash bit shift
net/e1000/base: fix MAC address hash bit shift
Amir Avivi (2):
net/igc/base: fix iterator type
net/e1000/base: fix iterator type
Anatoly Burakov (1):
net/e1000/base: correct mPHY access logic
Andre Muezerie (5):
eal/x86: fix some intrinsics header include for Windows
eventdev: fix format string data type in log messages
net/bnxt: fix indication of allocation
common/idpf: fix void function returning a value
net/intel: fix void functions returning a value
Ariel Otilibili (7):
net/sfc: remove unnecessary assignment
net/octeon_ep: remove useless assignment
net/enetfec: remove useless assignment
buildtools: fix some Python regex syntax warnings
use Python raw string notation
eal/linux: remove useless assignments
mempool: fix errno in empty create
Barbara Skobiej (3):
net/igc/base: fix data type in MAC hash
net/e1000/base: fix data type in MAC hash
net/e1000/base: fix reset for 82580
Bruce Richardson (2):
net/iavf: remove reset of Tx prepare function pointer
net/intel: fix build with icx
Carolyn Wyborny (1):
net/e1000/base: skip management check for 82575
Dengdui Huang (3):
net/hns3: fix mbuf freeing in simple Tx path
net/hns3: fix copper port initialization
net/hns3: fix reset timeout
Dima Ruinskiy (5):
net/igc/base: fix deadlock when writing i225 register
net/igc/base: fix infinite loop
net/igc/base: fix typo in LTR calculation
net/igc/base: fix unused value
net/e1000/base: fix unchecked return
Gavin Hu (1):
net/mlx5: fix polling CQEs
Gowrishankar Muthukrishnan (1):
crypto/virtio: fix data queues iteration
Huisong Li (1):
ethdev: fix functions available in new device event
Jakub Buchocki (1):
net/e1000/base: fix uninitialized variable
Jianping Zhao (1):
vhost: clear ring addresses when getting vring base
Jie Hai (2):
net/hns3: remove PVID info dump for VF
net/hns3: rename RAS module
Kevin Traynor (1):
vhost: add null callback checks
Konstantin Ananyev (2):
test/ring: fix init with custom number of lcores
gro: fix unprocessed IPv4 packets
Long Wu (1):
net/bonding: fix dedicated queue setup
Maayan Kashani (3):
net/mlx5: adjust actions per rule limitation
net/mlx5: fix flush of non-template flow rules
net/mlx5: fix GRE flow match with SWS
Maxime Coquelin (2):
vhost: fix log when setting max queue num
vhost: reset packets count when not ready
Minggang Li (Gavin) (1):
net/mlx5: fix Netlink socket leak
Nawal Kishor (1):
common/cnxk: fix atomic load in batch ops
Pawel Malinowski (2):
net/igc/base: fix semaphore timeout value
net/e1000/base: fix semaphore timeout value
Peng Zhang (1):
net/nfp: fix multi-PF control flag
Przemyslaw Ciesielski (4):
net/igc/base: fix bitwise operation type
net/igc/base: fix NVM data type in bit shift
net/e1000/base: fix bitwise operation type
net/e1000/base: fix NVM data type in bit shift
Rahul Bhansali (1):
net/cnxk: fix NIX send header L3 type
Rajesh Mudimadugula (1):
crypto/virtio: fix redundant queue free
Sangtani Parag Satishbhai (1):
net/bnxt: fix crash when representor is re-attached
Sasha Neftin (3):
net/igc/base: increase PHY power up delay
net/igc/base: reset loop variable
net/igc/base: fix LTR for i225
Stephen Hemminger (17):
crypto/cnxk: fix build with GCC 15
net/thunderx/base: fix build with GCC 15
test/bonding: fix active backup receive test
build: force GCC 15 to initialize padding bits
net/cpfl: fix representor parsing log
raw/cnxk_gpio: fix file descriptor leak
eal: fix devargs layers parsing out of bounds
net/qede: fix debug messages array
net/hinic: fix flow type bitmask overflow
crypto/dpaa2_sec: fix bitmask truncation
crypto/dpaa_sec: fix bitmask truncation
event/dpaa: fix bitmask truncation
net/dpaa: fix bitmask truncation
net/dpaa2: fix bitmask truncation
net/qede: fix nested loops
examples/l3fwd: fix socket ID check
common/cnxk: fix null check
Tudor Cornea (1):
net/af_packet: fix socket close on device stop
Vamsi Attunuru (1):
common/cnxk: fix DPI mailbox structure
Vladimir Medvedkin (2):
net/ice: fix memory leak in scalar Rx
net/ice: fix flows handling
Wathsala Vithanage (1):
crypto/openssl: fix CMAC auth context update
Yang Ming (1):
eal/linux: fix memseg length in legacy mem init
Yunjian Wang (1):
vhost: check GSO size validity
Zerun Fu (2):
net/nfp: fix multiple PFs check from NSP
net/nfp: fix misuse of function return values
.mailmap | 13 +++-
app/test/test_link_bonding.c | 74 +++++++++----------
app/test/test_ring_stress_impl.h | 2 +-
buildtools/get-numa-count.py | 2 +-
buildtools/get-test-suites.py | 4 +-
config/meson.build | 13 ++--
devtools/check-meson.py | 2 +-
drivers/common/cnxk/roc_bphy_cgx.c | 12 +--
drivers/common/cnxk/roc_dpi_priv.h | 2 +-
drivers/common/cnxk/roc_npa.h | 2 +-
drivers/common/idpf/idpf_common_rxtx_avx512.c | 12 ++-
drivers/crypto/cnxk/cnxk_se.h | 2 +-
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 8 +-
drivers/crypto/dpaa_sec/dpaa_sec.c | 7 +-
drivers/crypto/openssl/rte_openssl_pmd.c | 3 -
drivers/crypto/virtio/virtio_cryptodev.c | 14 ++--
drivers/crypto/virtio/virtio_rxtx.c | 3 +-
drivers/event/dpaa/dpaa_eventdev.c | 10 +--
drivers/net/af_packet/rte_eth_af_packet.c | 30 ++++----
drivers/net/bnxt/bnxt_ethdev.c | 22 ++++--
drivers/net/bnxt/tf_core/tf_sram_mgr.c | 4 +-
drivers/net/bonding/rte_eth_bond_8023ad.h | 3 +
drivers/net/bonding/rte_eth_bond_pmd.c | 25 ++++++-
drivers/net/cnxk/cn10k_tx.h | 7 +-
drivers/net/cnxk/cn9k_tx.h | 7 +-
drivers/net/cpfl/cpfl_ethdev.c | 2 +-
drivers/net/dpaa/dpaa_rxtx.c | 7 +-
drivers/net/dpaa2/dpaa2_rxtx.c | 6 +-
drivers/net/e1000/base/e1000_80003es2lan.c | 2 +-
drivers/net/e1000/base/e1000_82575.c | 5 +-
drivers/net/e1000/base/e1000_base.c | 3 +-
drivers/net/e1000/base/e1000_defines.h | 1 +
drivers/net/e1000/base/e1000_ich8lan.c | 2 +
drivers/net/e1000/base/e1000_mac.c | 12 +--
drivers/net/e1000/base/e1000_nvm.c | 4 +-
drivers/net/e1000/base/e1000_phy.c | 25 +++----
drivers/net/e1000/base/e1000_vf.c | 12 +--
drivers/net/enetfec/enet_ethdev.c | 1 -
drivers/net/hinic/hinic_pmd_flow.c | 14 ++--
drivers/net/hns3/hns3_cmd.c | 18 +++--
drivers/net/hns3/hns3_cmd.h | 4 +-
drivers/net/hns3/hns3_dump.c | 4 +
drivers/net/hns3/hns3_ethdev.c | 29 +++++++-
drivers/net/hns3/hns3_intr.c | 4 +-
drivers/net/hns3/hns3_intr.h | 2 +-
drivers/net/hns3/hns3_rxtx.c | 2 +-
drivers/net/i40e/i40e_rxtx_vec_avx2.c | 2 +-
drivers/net/i40e/i40e_rxtx_vec_avx512.c | 2 +-
drivers/net/i40e/meson.build | 3 +
drivers/net/iavf/iavf_rxtx.c | 5 --
drivers/net/iavf/iavf_rxtx_vec_avx2.c | 2 +-
drivers/net/iavf/meson.build | 3 +
drivers/net/ice/ice_generic_flow.c | 30 ++++----
drivers/net/ice/ice_rxtx.c | 10 +++
drivers/net/ice/ice_rxtx_vec_avx2.c | 2 +-
drivers/net/ice/meson.build | 3 +
drivers/net/igc/base/igc_defines.h | 1 +
drivers/net/igc/base/igc_i225.c | 24 ++++--
drivers/net/igc/base/igc_mac.c | 10 ++-
drivers/net/igc/base/igc_nvm.c | 4 +-
drivers/net/igc/base/igc_phy.c | 8 +-
drivers/net/mlx5/linux/mlx5_os.c | 5 ++
drivers/net/mlx5/mlx5_flow.c | 1 -
drivers/net/mlx5/mlx5_flow.h | 2 +-
drivers/net/mlx5/mlx5_flow_dv.c | 27 ++++---
drivers/net/mlx5/mlx5_flow_hw.c | 3 -
drivers/net/mlx5/mlx5_rxtx_vec.c | 3 +
drivers/net/nfp/flower/nfp_conntrack.c | 6 +-
drivers/net/nfp/nfp_ethdev.c | 23 ++++--
drivers/net/octeon_ep/otx_ep_mbox.c | 3 -
drivers/net/qede/base/ecore_dcbx.c | 8 +-
drivers/net/qede/qede_debug.c | 5 ++
drivers/net/sfc/sfc_repr.c | 4 -
drivers/net/thunderx/base/nicvf_mbox.c | 42 +++++------
drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c | 24 +++---
dts/tests/TestSuite_smoke_tests.py | 2 +-
examples/l3fwd-power/main.c | 4 +-
examples/l3fwd/main.c | 5 +-
lib/eal/common/eal_common_devargs.c | 2 +-
lib/eal/linux/eal_dev.c | 3 -
lib/eal/linux/eal_memory.c | 1 +
lib/eal/x86/include/rte_vect.h | 2 -
lib/ethdev/rte_ethdev.c | 14 +++-
lib/ethdev/rte_ethdev.h | 8 +-
lib/eventdev/rte_event_dma_adapter.c | 6 +-
lib/gro/rte_gro.c | 2 +-
lib/mempool/rte_mempool.c | 4 +-
lib/vhost/socket.c | 17 +++--
lib/vhost/vduse.c | 3 +-
lib/vhost/vhost.c | 5 +-
lib/vhost/vhost_user.c | 4 +-
lib/vhost/virtio_net.c | 5 ++
92 files changed, 474 insertions(+), 320 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/ring: fix init with custom number of lcores' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
@ 2025-02-18 12:33 ` Xueming Li
2025-02-18 12:33 ` patch 'vhost: clear ring addresses when getting vring base' " Xueming Li
` (90 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:33 UTC (permalink / raw)
To: Konstantin Ananyev
Cc: xuemingl, Phanendra Vukkisala, Morten Brørup,
Stephen Hemminger, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8c0b8af3bd76eb9d19ade4503b72a901b6e9780b
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 8c0b8af3bd76eb9d19ade4503b72a901b6e9780b 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.800358318 +0800
+++ 0001-test-ring-fix-init-with-custom-number-of-lcores.patch 2025-02-18 19:39:00.388244089 +0800
@@ -1 +1 @@
-From 2cf3a8d35d2db1cee1523e6e9ef5553432fbf56f Mon Sep 17 00:00:00 2001
+From 8c0b8af3bd76eb9d19ade4503b72a901b6e9780b Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 2cf3a8d35d2db1cee1523e6e9ef5553432fbf56f ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 8b0bfb11fe..ee5274aeef 100644
+index 62f046a91a..373091957b 100644
@@ -29 +31 @@
-@@ -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 +38 @@
- r = rte_zmalloc(NULL, sz, alignof(typeof(*r)));
+ r = rte_zmalloc(NULL, sz, __alignof__(*r));
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost: clear ring addresses when getting vring base' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
2025-02-18 12:33 ` patch 'test/ring: fix init with custom number of lcores' " Xueming Li
@ 2025-02-18 12:33 ` Xueming Li
2025-02-18 12:33 ` patch 'vhost: check GSO size validity' " Xueming Li
` (89 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:33 UTC (permalink / raw)
To: Jianping Zhao; +Cc: xuemingl, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=9148bf9355898108b2351a153293b2f8932dd460
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 9148bf9355898108b2351a153293b2f8932dd460 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 ff5b0821ba..71967f7247 100644
--- a/.mailmap
+++ b/.mailmap
@@ -638,6 +638,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 5b6c90437c..14808bd5bc 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -2201,6 +2201,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
rte_rwlock_write_lock(&vq->access_lock);
vring_invalidate(dev, vq);
+ memset(&vq->ring_addrs, 0, sizeof(struct vhost_vring_addr));
rte_rwlock_write_unlock(&vq->access_lock);
return RTE_VHOST_MSG_RESULT_REPLY;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.833629012 +0800
+++ 0002-vhost-clear-ring-addresses-when-getting-vring-base.patch 2025-02-18 19:39:00.398244087 +0800
@@ -1 +1 @@
-From 1846fe767f00a9d0dade333e7838f81e6721b694 Mon Sep 17 00:00:00 2001
+From 9148bf9355898108b2351a153293b2f8932dd460 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1846fe767f00a9d0dade333e7838f81e6721b694 ]
@@ -36 +38,0 @@
-Cc: stable@dpdk.org
@@ -46 +48 @@
-index b90ff0444c..cc1ffe1ad9 100644
+index ff5b0821ba..71967f7247 100644
@@ -49 +51,2 @@
-@@ -674,6 +674,7 @@ Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
+@@ -638,6 +638,7 @@ Jia He <justin.he@arm.com> <jia.he@hxt-semitech.com>
+ Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
@@ -51 +53,0 @@
- Jiang Yu <yux.jiang@intel.com>
@@ -58 +60 @@
-index 6d92ad904e..52d8078d7c 100644
+index 5b6c90437c..14808bd5bc 100644
@@ -61 +63 @@
-@@ -2277,6 +2277,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
+@@ -2201,6 +2201,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost: check GSO size validity' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
2025-02-18 12:33 ` patch 'test/ring: fix init with custom number of lcores' " Xueming Li
2025-02-18 12:33 ` patch 'vhost: clear ring addresses when getting vring base' " Xueming Li
@ 2025-02-18 12:33 ` Xueming Li
2025-02-18 12:33 ` patch 'vhost: fix log when setting max queue num' " Xueming Li
` (88 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:33 UTC (permalink / raw)
To: Yunjian Wang; +Cc: xuemingl, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6bce3ec356d70103851656c31ed61244fc3cc346
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6bce3ec356d70103851656c31ed61244fc3cc346 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 49c2052eba..25adf94ffa 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -2741,6 +2741,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.869052706 +0800
+++ 0003-vhost-check-GSO-size-validity.patch 2025-02-18 19:39:00.398244087 +0800
@@ -1 +1 @@
-From 7023f3e532787eec7be674efb7a4aa54f1626b6c Mon Sep 17 00:00:00 2001
+From 6bce3ec356d70103851656c31ed61244fc3cc346 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7023f3e532787eec7be674efb7a4aa54f1626b6c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 69901ab3b5..2ac5bc29a3 100644
+index 49c2052eba..25adf94ffa 100644
@@ -22 +24 @@
-@@ -2733,6 +2733,9 @@ vhost_dequeue_offload_legacy(struct virtio_net *dev, struct virtio_net_hdr *hdr,
+@@ -2741,6 +2741,9 @@ vhost_dequeue_offload_legacy(struct virtio_net *dev, struct virtio_net_hdr *hdr,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost: fix log when setting max queue num' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (2 preceding siblings ...)
2025-02-18 12:33 ` patch 'vhost: check GSO size validity' " Xueming Li
@ 2025-02-18 12:33 ` Xueming Li
2025-02-18 12:34 ` patch 'vhost: reset packets count when not ready' " Xueming Li
` (87 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:33 UTC (permalink / raw)
To: Maxime Coquelin
Cc: xuemingl, Ilya Maximets, Chenbo Xia, Kevin Traynor, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e099c1e17e8dda291975db45ef6298a6c87e84cc
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e099c1e17e8dda291975db45ef6298a6c87e84cc Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Thu, 9 Jan 2025 15:31:30 +0100
Subject: [PATCH] vhost: fix log when setting max queue num
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 274292190d1384b028552adc601dda4b197f2417 ]
rte_vhost_driver_set_max_queue_num API returns early when
called for a Vhost-user device, as this API is intended to
limit the maximum number of queue pairs supported by VDUSE
devices. However, a log mentioning the maximum number of
queue pairs is being set is emitted unconditionally, which
may confuse the end user.
This patch moves this log after the backend type is
checked, so that it is only called with VDUSE backends.
The check on the requested value is also moved at the same
place.
Fixes: e1808999d36b ("vhost: restrict set max queue pair API to VDUSE")
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
---
lib/vhost/socket.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/lib/vhost/socket.c b/lib/vhost/socket.c
index ffb8518e74..6cf76eb7ae 100644
--- a/lib/vhost/socket.c
+++ b/lib/vhost/socket.c
@@ -849,14 +849,6 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
struct vhost_user_socket *vsocket;
int ret = 0;
- VHOST_LOG_CONFIG(path, INFO, "Setting max queue pairs to %u\n", max_queue_pairs);
-
- if (max_queue_pairs > VHOST_MAX_QUEUE_PAIRS) {
- VHOST_LOG_CONFIG(path, ERR, "Library only supports up to %u queue pairs\n",
- VHOST_MAX_QUEUE_PAIRS);
- return -1;
- }
-
pthread_mutex_lock(&vhost_user.mutex);
vsocket = find_vhost_user_socket(path);
if (!vsocket) {
@@ -876,6 +868,15 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
goto unlock_exit;
}
+ VHOST_LOG_CONFIG(path, INFO, "Setting max queue pairs to %u", max_queue_pairs);
+
+ if (max_queue_pairs > VHOST_MAX_QUEUE_PAIRS) {
+ VHOST_LOG_CONFIG(path, ERR, "Library only supports up to %u queue pairs",
+ VHOST_MAX_QUEUE_PAIRS);
+ ret = -1;
+ goto unlock_exit;
+ }
+
vsocket->max_queue_pairs = max_queue_pairs;
unlock_exit:
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.901479401 +0800
+++ 0004-vhost-fix-log-when-setting-max-queue-num.patch 2025-02-18 19:39:00.398244087 +0800
@@ -1 +1 @@
-From 274292190d1384b028552adc601dda4b197f2417 Mon Sep 17 00:00:00 2001
+From e099c1e17e8dda291975db45ef6298a6c87e84cc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 274292190d1384b028552adc601dda4b197f2417 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index d29d15494c..05a7e5902f 100644
+index ffb8518e74..6cf76eb7ae 100644
@@ -33 +35 @@
-@@ -844,14 +844,6 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
+@@ -849,14 +849,6 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
@@ -37 +39 @@
-- VHOST_CONFIG_LOG(path, INFO, "Setting max queue pairs to %u", max_queue_pairs);
+- VHOST_LOG_CONFIG(path, INFO, "Setting max queue pairs to %u\n", max_queue_pairs);
@@ -40 +42 @@
-- VHOST_CONFIG_LOG(path, ERR, "Library only supports up to %u queue pairs",
+- VHOST_LOG_CONFIG(path, ERR, "Library only supports up to %u queue pairs\n",
@@ -48 +50 @@
-@@ -872,6 +864,15 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
+@@ -876,6 +868,15 @@ rte_vhost_driver_set_max_queue_num(const char *path, uint32_t max_queue_pairs)
@@ -52 +54 @@
-+ VHOST_CONFIG_LOG(path, INFO, "Setting max queue pairs to %u", max_queue_pairs);
++ VHOST_LOG_CONFIG(path, INFO, "Setting max queue pairs to %u", max_queue_pairs);
@@ -55 +57 @@
-+ VHOST_CONFIG_LOG(path, ERR, "Library only supports up to %u queue pairs",
++ VHOST_LOG_CONFIG(path, ERR, "Library only supports up to %u queue pairs",
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost: reset packets count when not ready' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (3 preceding siblings ...)
2025-02-18 12:33 ` patch 'vhost: fix log when setting max queue num' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'crypto/cnxk: fix build with GCC 15' " Xueming Li
` (86 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Maxime Coquelin; +Cc: xuemingl, David Marchand, Chenbo Xia, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d1e77f15819cfb99a5e655c0e36db6d3534efb21
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d1e77f15819cfb99a5e655c0e36db6d3534efb21 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Thu, 16 Jan 2025 10:54:14 +0100
Subject: [PATCH] vhost: reset packets count when not ready
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 8b96508af6021d868052545a76ef2ce5219b7702 ]
This patch fixes the rte_vhost_dequeue_burst return value
when the virtqueue is not ready. Without it, a discrepancy
between the packet array and its size is faced by the caller
of this API when the virtqueue is not ready.
Fixes: 9fc93a1e2320 ("vhost: fix virtqueue access check in datapath")
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chenbo Xia <chenbox@nvidia.com>
---
lib/vhost/virtio_net.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c
index 25adf94ffa..d81b518462 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -3601,6 +3601,8 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
rte_rwlock_read_unlock(&vq->access_lock);
virtio_dev_vring_translate(dev, vq);
+
+ count = 0;
goto out_no_unlock;
}
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.932503295 +0800
+++ 0005-vhost-reset-packets-count-when-not-ready.patch 2025-02-18 19:39:00.408244086 +0800
@@ -1 +1 @@
-From 8b96508af6021d868052545a76ef2ce5219b7702 Mon Sep 17 00:00:00 2001
+From d1e77f15819cfb99a5e655c0e36db6d3534efb21 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8b96508af6021d868052545a76ef2ce5219b7702 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 2ac5bc29a3..d85c0c9d42 100644
+index 25adf94ffa..d81b518462 100644
@@ -25 +27 @@
-@@ -3632,6 +3632,8 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
+@@ -3601,6 +3601,8 @@ rte_vhost_dequeue_burst(int vid, uint16_t queue_id,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/cnxk: fix build with GCC 15' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (4 preceding siblings ...)
2025-02-18 12:34 ` patch 'vhost: reset packets count when not ready' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/thunderx/base: " Xueming Li
` (85 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, David Marchand, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=448898cf70fadf25518e85bf719cbaf6779e5a00
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 448898cf70fadf25518e85bf719cbaf6779e5a00 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 cf163e0208..61f1c85857 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -3009,7 +3009,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:00.964886390 +0800
+++ 0006-crypto-cnxk-fix-build-with-GCC-15.patch 2025-02-18 19:39:00.408244086 +0800
@@ -1 +1 @@
-From 224e37a6a442b6a1f6d179b1756383f1a80cf3ed Mon Sep 17 00:00:00 2001
+From 448898cf70fadf25518e85bf719cbaf6779e5a00 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 224e37a6a442b6a1f6d179b1756383f1a80cf3ed ]
@@ -54 +56,0 @@
-Cc: stable@dpdk.org
@@ -63 +65 @@
-index 7262a49945..649e38c495 100644
+index cf163e0208..61f1c85857 100644
@@ -66 +68 @@
-@@ -3005,7 +3005,7 @@ fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
+@@ -3009,7 +3009,7 @@ fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/thunderx/base: fix build with GCC 15' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (5 preceding siblings ...)
2025-02-18 12:34 ` patch 'crypto/cnxk: fix build with GCC 15' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'eal/x86: fix some intrinsics header include for Windows' " Xueming Li
` (84 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, David Marchand, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=68dee34412e088bc904f639b0428b6a9a9543c72
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 68dee34412e088bc904f639b0428b6a9a9543c72 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.001152583 +0800
+++ 0007-net-thunderx-base-fix-build-with-GCC-15.patch 2025-02-18 19:39:00.418244084 +0800
@@ -1 +1 @@
-From e7133f8fb39f506dc1eef02c2927acda949ca000 Mon Sep 17 00:00:00 2001
+From 68dee34412e088bc904f639b0428b6a9a9543c72 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e7133f8fb39f506dc1eef02c2927acda949ca000 ]
@@ -36,2 +38,0 @@
-
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'eal/x86: fix some intrinsics header include for Windows' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (6 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/thunderx/base: " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'test/bonding: fix active backup receive test' " Xueming Li
` (83 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Andre Muezerie; +Cc: xuemingl, Pier Damouny, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=0608e13c5705e5086fe6f809697a988a833ecd27
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 0608e13c5705e5086fe6f809697a988a833ecd27 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 2 +-
lib/eal/x86/include/rte_vect.h | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/.mailmap b/.mailmap
index 71967f7247..861d69289f 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1131,7 +1131,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>
+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 560f9e4db3..8c1d0dd830 100644
--- a/lib/eal/x86/include/rte_vect.h
+++ b/lib/eal/x86/include/rte_vect.h
@@ -18,9 +18,7 @@
#if defined(__ICC) || defined(_WIN64)
#include <smmintrin.h> /* SSE4 */
-#if defined(__AVX__)
#include <immintrin.h>
-#endif
#else
#include <x86intrin.h>
#endif
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.035313478 +0800
+++ 0008-eal-x86-fix-some-intrinsics-header-include-for-Windo.patch 2025-02-18 19:39:00.418244084 +0800
@@ -1 +1 @@
-From 5b856206c74bbcf19e12cafa15382a7e15b0a1b5 Mon Sep 17 00:00:00 2001
+From 0608e13c5705e5086fe6f809697a988a833ecd27 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5b856206c74bbcf19e12cafa15382a7e15b0a1b5 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index cc1ffe1ad9..94e12acbd4 100644
+index 71967f7247..861d69289f 100644
@@ -32 +34 @@
-@@ -1192,7 +1192,7 @@ Petr Houska <t-pehous@microsoft.com>
+@@ -1131,7 +1131,7 @@ Petr Houska <t-pehous@microsoft.com>
@@ -42 +44 @@
-index 5ac3ccfd82..5fdcd632ac 100644
+index 560f9e4db3..8c1d0dd830 100644
@@ -45 +47 @@
-@@ -19,9 +19,7 @@
+@@ -18,9 +18,7 @@
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/bonding: fix active backup receive test' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (7 preceding siblings ...)
2025-02-18 12:34 ` patch 'eal/x86: fix some intrinsics header include for Windows' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/bonding: fix dedicated queue setup' " Xueming Li
` (82 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Huisong Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d0d04dead13a23640736a8b83a27bda0164f45be
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d0d04dead13a23640736a8b83a27bda0164f45be Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 13 Dec 2024 09:17:14 -0800
Subject: [PATCH] test/bonding: fix active backup receive test
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit eb29e625ce41b50898efc8e2618b7eeb128460ed ]
The test had incorrect assumptions about how active backup
should work. When in active backup mode, the secondary (not primary)
ports should be ignored. The test was always broken since initially
written but earlier bug was masking the part of the test which
tested non-primary ports.
Bugzilla ID: 1589
Fixes: 112ce3917674 ("test/bonding: fix loop on members")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Huisong Li <lihuisong@huawei.com>
Tested-by: Huisong Li <lihuisong@huawei.com>
---
app/test/test_link_bonding.c | 74 +++++++++++++++++-------------------
1 file changed, 34 insertions(+), 40 deletions(-)
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index b53f512815..19b064771a 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -2246,54 +2246,48 @@ test_activebackup_rx_burst(void)
virtual_ethdev_add_mbufs_to_rx_queue(test_params->member_port_ids[i],
&gen_pkt_burst[0], burst_size);
+ /* Expect burst if this was the active port, zero otherwise */
+ unsigned int rx_expect
+ = (test_params->member_port_ids[i] == primary_port) ? burst_size : 0;
+
/* Call rx burst on bonding device */
- TEST_ASSERT_EQUAL(rte_eth_rx_burst(test_params->bonding_port_id, 0,
- &rx_pkt_burst[0], MAX_PKT_BURST), burst_size,
- "rte_eth_rx_burst failed");
+ unsigned int rx_count = rte_eth_rx_burst(test_params->bonding_port_id, 0,
+ &rx_pkt_burst[0], MAX_PKT_BURST);
+ TEST_ASSERT_EQUAL(rx_count, rx_expect,
+ "rte_eth_rx_burst (%u) not as expected (%u)",
+ rx_count, rx_expect);
- if (test_params->member_port_ids[i] == primary_port) {
- /* Verify bonding device rx count */
- rte_eth_stats_get(test_params->bonding_port_id, &port_stats);
- TEST_ASSERT_EQUAL(port_stats.ipackets, (uint64_t)burst_size,
- "Bonding Port (%d) ipackets value (%u) not as expected (%d)",
+ /* Verify bonding device rx count */
+ rte_eth_stats_get(test_params->bonding_port_id, &port_stats);
+ TEST_ASSERT_EQUAL(port_stats.ipackets, rx_expect,
+ "Bonding Port (%d) ipackets value (%u) not as expected (%u)",
test_params->bonding_port_id,
- (unsigned int)port_stats.ipackets, burst_size);
+ (unsigned int)port_stats.ipackets, rx_expect);
- /* Verify bonding member devices rx count */
- for (j = 0; j < test_params->bonding_member_count; j++) {
- rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);
- if (i == j) {
- TEST_ASSERT_EQUAL(port_stats.ipackets, (uint64_t)burst_size,
- "Member Port (%d) ipackets value (%u) not as "
- "expected (%d)",
- test_params->member_port_ids[i],
- (unsigned int)port_stats.ipackets,
- burst_size);
- } else {
- TEST_ASSERT_EQUAL(port_stats.ipackets, 0,
- "Member Port (%d) ipackets value (%u) not as "
- "expected (%d)\n",
- test_params->member_port_ids[i],
- (unsigned int)port_stats.ipackets, 0);
- }
- }
- } else {
- for (j = 0; j < test_params->bonding_member_count; j++) {
- rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);
+ for (j = 0; j < test_params->bonding_member_count; j++) {
+ rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);
+ if (i == j) {
+ TEST_ASSERT_EQUAL(port_stats.ipackets, rx_expect,
+ "Member Port (%d) ipackets (%u) not as expected (%d)",
+ test_params->member_port_ids[i],
+ (unsigned int)port_stats.ipackets, rx_expect);
+
+ /* reset member device stats */
+ rte_eth_stats_reset(test_params->member_port_ids[j]);
+ } else {
TEST_ASSERT_EQUAL(port_stats.ipackets, 0,
- "Member Port (%d) ipackets value (%u) not as expected "
- "(%d)", test_params->member_port_ids[i],
- (unsigned int)port_stats.ipackets, 0);
+ "Member Port (%d) ipackets (%u) not as expected (%d)",
+ test_params->member_port_ids[i],
+ (unsigned int)port_stats.ipackets, 0);
}
}
- /* free mbufs */
- for (i = 0; i < MAX_PKT_BURST; i++) {
- if (rx_pkt_burst[i] != NULL) {
- rte_pktmbuf_free(rx_pkt_burst[i]);
- rx_pkt_burst[i] = NULL;
- }
- }
+ /* extract packets queued to inactive member */
+ if (rx_count == 0)
+ rx_count = rte_eth_rx_burst(test_params->member_port_ids[i], 0,
+ rx_pkt_burst, MAX_PKT_BURST);
+ if (rx_count > 0)
+ rte_pktmbuf_free_bulk(rx_pkt_burst, rx_count);
/* reset bonding device stats */
rte_eth_stats_reset(test_params->bonding_port_id);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.070352072 +0800
+++ 0009-test-bonding-fix-active-backup-receive-test.patch 2025-02-18 19:39:00.428244082 +0800
@@ -1 +1 @@
-From eb29e625ce41b50898efc8e2618b7eeb128460ed Mon Sep 17 00:00:00 2001
+From d0d04dead13a23640736a8b83a27bda0164f45be Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit eb29e625ce41b50898efc8e2618b7eeb128460ed ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -20,2 +22,2 @@
- app/test/test_link_bonding.c | 69 ++++++++++++++++++------------------
- 1 file changed, 34 insertions(+), 35 deletions(-)
+ app/test/test_link_bonding.c | 74 +++++++++++++++++-------------------
+ 1 file changed, 34 insertions(+), 40 deletions(-)
@@ -24 +26 @@
-index b752a5ecbf..19b064771a 100644
+index b53f512815..19b064771a 100644
@@ -27 +29 @@
-@@ -2246,49 +2246,48 @@ test_activebackup_rx_burst(void)
+@@ -2246,54 +2246,48 @@ test_activebackup_rx_burst(void)
@@ -101 +103,6 @@
-- rte_pktmbuf_free_bulk(rx_pkt_burst, burst_size);
+- for (i = 0; i < MAX_PKT_BURST; i++) {
+- if (rx_pkt_burst[i] != NULL) {
+- rte_pktmbuf_free(rx_pkt_burst[i]);
+- rx_pkt_burst[i] = NULL;
+- }
+- }
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/bonding: fix dedicated queue setup' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (8 preceding siblings ...)
2025-02-18 12:34 ` patch 'test/bonding: fix active backup receive test' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " Xueming Li
` (81 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Long Wu; +Cc: xuemingl, Chaoyong He, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=eb465c251ea6f64cd49c6ac53a8e71cfb328ebd4
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From eb465c251ea6f64cd49c6ac53a8e71cfb328ebd4 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 25 ++++++++++++++++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h
index 4c280c7565..54e233f858 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 member_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 4144c86be4..c3a761d0d4 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1685,10 +1685,26 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
}
if (internals->mode4.dedicated_queues.enabled == 1) {
- /* Configure slow Rx queue */
+ 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(member_eth_dev->data->port_id,
+ &member_info);
+ if (errval != 0) {
+ RTE_BOND_LOG(ERR,
+ "rte_eth_dev_info_get: port=%d, err (%d)",
+ member_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(member_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(member_eth_dev->data->port_id),
NULL, port->slow_pool);
if (errval != 0) {
@@ -1700,8 +1716,11 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_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(member_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(member_eth_dev->data->port_id),
NULL);
if (errval != 0) {
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.106319465 +0800
+++ 0010-net-bonding-fix-dedicated-queue-setup.patch 2025-02-18 19:39:00.428244082 +0800
@@ -1 +1 @@
-From 4da0705bf896327af062212b5a1e6cb1f1366aa5 Mon Sep 17 00:00:00 2001
+From eb465c251ea6f64cd49c6ac53a8e71cfb328ebd4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4da0705bf896327af062212b5a1e6cb1f1366aa5 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 395e41ff95..4c30bd40ee 100644
+index 4c280c7565..54e233f858 100644
@@ -40 +42 @@
-index f69496feec..467f7fe7ea 100644
+index 4144c86be4..c3a761d0d4 100644
@@ -43 +45 @@
-@@ -1684,10 +1684,26 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
+@@ -1685,10 +1685,26 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
@@ -72 +74 @@
-@@ -1699,8 +1715,11 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
+@@ -1700,8 +1716,11 @@ member_configure_slow_queue(struct rte_eth_dev *bonding_eth_dev,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/hns3: fix mbuf freeing in simple Tx path' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (9 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/bonding: fix dedicated queue setup' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: remove PVID info dump for VF' " Xueming Li
` (80 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Dengdui Huang; +Cc: xuemingl, Jie Hai, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=bf37bccae0b585e782b37da0fcb748d2807e687c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From bf37bccae0b585e782b37da0fcb748d2807e687c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 8d0db134d2..ab4789c2f1 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -4047,7 +4047,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.145101859 +0800
+++ 0011-net-hns3-fix-mbuf-freeing-in-simple-Tx-path.patch 2025-02-18 19:39:00.428244082 +0800
@@ -1 +1 @@
-From d78c76dbeffbd2994d77236c403281b34612e024 Mon Sep 17 00:00:00 2001
+From bf37bccae0b585e782b37da0fcb748d2807e687c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d78c76dbeffbd2994d77236c403281b34612e024 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 03bbbc435f..09e39cb673 100644
+index 8d0db134d2..ab4789c2f1 100644
@@ -22 +24 @@
-@@ -4006,7 +4006,7 @@ hns3_tx_free_buffer_simple(struct hns3_tx_queue *txq)
+@@ -4047,7 +4047,7 @@ hns3_tx_free_buffer_simple(struct hns3_tx_queue *txq)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/hns3: remove PVID info dump for VF' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (10 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: rename RAS module' " Xueming Li
` (79 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Jie Hai; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=a3acd55cd42561a12519e7467b278960ab17e0c0
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From a3acd55cd42561a12519e7467b278960ab17e0c0 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 a3b58e0a8f..fdbce88a1d 100644
--- a/drivers/net/hns3/hns3_dump.c
+++ b/drivers/net/hns3/hns3_dump.c
@@ -632,6 +632,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.184427852 +0800
+++ 0012-net-hns3-remove-PVID-info-dump-for-VF.patch 2025-02-18 19:39:00.438244080 +0800
@@ -1 +1 @@
-From 3c805c1ebe02248bb0c2ba944046c2e3354b0c11 Mon Sep 17 00:00:00 2001
+From a3acd55cd42561a12519e7467b278960ab17e0c0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3c805c1ebe02248bb0c2ba944046c2e3354b0c11 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 738dcb0c42..f21d32e6a2 100644
+index a3b58e0a8f..fdbce88a1d 100644
@@ -22 +24 @@
-@@ -693,6 +693,10 @@ hns3_get_vlan_tx_offload_cfg(FILE *file, struct hns3_hw *hw)
+@@ -632,6 +632,10 @@ hns3_get_vlan_tx_offload_cfg(FILE *file, struct hns3_hw *hw)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/hns3: rename RAS module' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (11 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/hns3: remove PVID info dump for VF' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/sfc: remove unnecessary assignment' " Xueming Li
` (78 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Jie Hai; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=edb45840ef5e2a41ad99918790a8bfeb3f911d95
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From edb45840ef5e2a41ad99918790a8bfeb3f911d95 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 3f6b9e7fc4..cef0f23f80 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.220146946 +0800
+++ 0013-net-hns3-rename-RAS-module.patch 2025-02-18 19:39:00.438244080 +0800
@@ -1 +1 @@
-From 501a40ae8370dcbfe086ef080a60c86a8d428ef6 Mon Sep 17 00:00:00 2001
+From edb45840ef5e2a41ad99918790a8bfeb3f911d95 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 501a40ae8370dcbfe086ef080a60c86a8d428ef6 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 2de2b86b02..db5c84061c 100644
+index 3f6b9e7fc4..cef0f23f80 100644
@@ -33 +35 @@
-index 1edb07de36..e88b00c9c9 100644
+index aca1c0722c..fcfb9004cb 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/sfc: remove unnecessary assignment' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (12 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/hns3: rename RAS module' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix polling CQEs' " Xueming Li
` (77 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d3699f97a72d417a9555c41792d22ee03c7269c2
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d3699f97a72d417a9555c41792d22ee03c7269c2 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 c2e5d4eb9e..2c1421b959 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -769,11 +769,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.253376840 +0800
+++ 0014-net-sfc-remove-unnecessary-assignment.patch 2025-02-18 19:39:00.438244080 +0800
@@ -1 +1 @@
-From de87641d5c004ef505d58d542a66d66f6a1cb2be Mon Sep 17 00:00:00 2001
+From d3699f97a72d417a9555c41792d22ee03c7269c2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit de87641d5c004ef505d58d542a66d66f6a1cb2be ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix polling CQEs' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (13 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/sfc: remove unnecessary assignment' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " Xueming Li
` (76 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Gavin Hu; +Cc: xuemingl, Changqi Dingluo, Viacheslav Ovsiienko, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ffb0f31822050174353cf595bc9c3258fd304f6b
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ffb0f31822050174353cf595bc9c3258fd304f6b 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 3 ++-
drivers/net/mlx5/mlx5_rxtx_vec.c | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/.mailmap b/.mailmap
index 861d69289f..820c201bfe 100644
--- a/.mailmap
+++ b/.mailmap
@@ -212,6 +212,7 @@ Chandubabu Namburu <chandu@amd.com>
Chang Miao <chang.miao@corigine.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>
@@ -440,7 +441,7 @@ 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>
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 2363d7ed27..9b9c63f862 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec.c
+++ b/drivers/net/mlx5/mlx5_rxtx_vec.c
@@ -325,6 +325,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.285030635 +0800
+++ 0015-net-mlx5-fix-polling-CQEs.patch 2025-02-18 19:39:00.448244079 +0800
@@ -1 +1 @@
-From 73f7ae1d721aa5c388123db11827937205985999 Mon Sep 17 00:00:00 2001
+From ffb0f31822050174353cf595bc9c3258fd304f6b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 73f7ae1d721aa5c388123db11827937205985999 ]
@@ -24 +26,0 @@
-Cc: stable@dpdk.org
@@ -35 +37 @@
-index 38e511a28b..1ed47e1cad 100644
+index 861d69289f..820c201bfe 100644
@@ -38 +40 @@
-@@ -225,6 +225,7 @@ Chandubabu Namburu <chandu@amd.com>
+@@ -212,6 +212,7 @@ Chandubabu Namburu <chandu@amd.com>
@@ -46 +48 @@
-@@ -465,7 +466,7 @@ Gargi Sau <gargi.sau@intel.com>
+@@ -440,7 +441,7 @@ Gargi Sau <gargi.sau@intel.com>
@@ -52 +53,0 @@
- Gavin Li <gavinl@nvidia.com>
@@ -54,0 +56 @@
+ Geoff Thorpe <geoff.thorpe@nxp.com>
@@ -56 +58 @@
-index 1872bf310c..1b701801c5 100644
+index 2363d7ed27..9b9c63f862 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/iavf: remove reset of Tx prepare function pointer' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (14 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/mlx5: fix polling CQEs' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/ice: fix memory leak in scalar Rx' " Xueming Li
` (75 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Bruce Richardson; +Cc: xuemingl, Vladimir Medvedkin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f5753bf08752b3d848a30f20f956ee734425560c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From f5753bf08752b3d848a30f20f956ee734425560c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 5fbc581b95..ced1c21c24 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -4010,7 +4010,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
if (!use_sse && !use_avx2 && !use_avx512)
goto normal;
- dev->tx_pkt_prepare = NULL;
if (use_sse) {
PMD_DRV_LOG(DEBUG, "Using Vector Tx (port %d).",
dev->data->port_id);
@@ -4027,7 +4026,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
goto normal;
} else {
dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
- dev->tx_pkt_prepare = iavf_prep_pkts;
PMD_DRV_LOG(DEBUG, "Using AVX2 OFFLOAD Vector Tx (port %d).",
dev->data->port_id);
}
@@ -4040,12 +4038,10 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
dev->data->port_id);
} else if (check_ret == IAVF_VECTOR_OFFLOAD_PATH) {
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);
} else {
dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_ctx_offload;
- dev->tx_pkt_prepare = iavf_prep_pkts;
PMD_DRV_LOG(DEBUG, "Using AVX512 CONTEXT OFFLOAD Vector Tx (port %d).",
dev->data->port_id);
}
@@ -4078,7 +4074,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;
if (no_poll_on_link_down) {
adapter->tx_pkt_burst = dev->tx_pkt_burst;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.320662928 +0800
+++ 0016-net-iavf-remove-reset-of-Tx-prepare-function-pointer.patch 2025-02-18 19:39:00.448244079 +0800
@@ -1 +1 @@
-From 41be96c907607bc709654f71901913f1534264f8 Mon Sep 17 00:00:00 2001
+From f5753bf08752b3d848a30f20f956ee734425560c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 41be96c907607bc709654f71901913f1534264f8 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -20,2 +22,2 @@
- drivers/net/iavf/iavf_rxtx.c | 6 ------
- 1 file changed, 6 deletions(-)
+ drivers/net/iavf/iavf_rxtx.c | 5 -----
+ 1 file changed, 5 deletions(-)
@@ -24 +26 @@
-index f7df5f21f2..457b5a5655 100644
+index 5fbc581b95..ced1c21c24 100644
@@ -27 +29 @@
-@@ -4173,7 +4173,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4010,7 +4010,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -35 +37 @@
-@@ -4190,7 +4189,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4027,7 +4026,6 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -38 +40 @@
- tx_burst_type = IAVF_TX_AVX2_OFFLOAD;
+ dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx2_offload;
@@ -43 +45 @@
-@@ -4203,17 +4201,14 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
+@@ -4040,12 +4038,10 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
@@ -46 +48 @@
- tx_burst_type = IAVF_TX_AVX512_OFFLOAD;
+ dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_offload;
@@ -50,5 +51,0 @@
- } 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 +53 @@
- tx_burst_type = IAVF_TX_AVX512_CTX_OFFLOAD;
+ dev->tx_pkt_burst = iavf_xmit_pkts_vec_avx512_ctx_offload;
@@ -61 +58 @@
-@@ -4251,7 +4246,6 @@ normal:
+@@ -4078,7 +4074,6 @@ normal:
@@ -64 +61 @@
- tx_burst_type = IAVF_TX_DEFAULT;
+ dev->tx_pkt_burst = iavf_xmit_pkts;
@@ -68 +65 @@
- adapter->tx_burst_type = tx_burst_type;
+ adapter->tx_pkt_burst = dev->tx_pkt_burst;
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ice: fix memory leak in scalar Rx' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (15 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'common/cnxk: fix atomic load in batch ops' " Xueming Li
` (74 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Vladimir Medvedkin; +Cc: xuemingl, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=fb6aaabf7945b8fd242286cd69368b5cf42a4a91
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From fb6aaabf7945b8fd242286cd69368b5cf42a4a91 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 644d106814..6af16f9aed 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -484,6 +484,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;
}
@@ -1874,6 +1875,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;
}
@@ -2580,6 +2583,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.356617522 +0800
+++ 0017-net-ice-fix-memory-leak-in-scalar-Rx.patch 2025-02-18 19:39:00.458244077 +0800
@@ -1 +1 @@
-From 07cbd0b43ce4af9d628c8ad751789934d0a8c4a7 Mon Sep 17 00:00:00 2001
+From fb6aaabf7945b8fd242286cd69368b5cf42a4a91 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 07cbd0b43ce4af9d628c8ad751789934d0a8c4a7 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 0c7106c7e0..f58df9bdfe 100644
+index 644d106814..6af16f9aed 100644
@@ -32 +34 @@
-@@ -1900,6 +1901,8 @@ ice_rx_alloc_bufs(struct ice_rx_queue *rxq)
+@@ -1874,6 +1875,8 @@ ice_rx_alloc_bufs(struct ice_rx_queue *rxq)
@@ -41 +43 @@
-@@ -2607,6 +2610,13 @@ ice_recv_pkts(void *rx_queue,
+@@ -2580,6 +2583,13 @@ ice_recv_pkts(void *rx_queue,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'common/cnxk: fix atomic load in batch ops' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (16 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/ice: fix memory leak in scalar Rx' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'common/cnxk: fix DPI mailbox structure' " Xueming Li
` (73 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Nawal Kishor; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=3d543686ef3e94e2da99b52b42d02293e7b511bc
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 3d543686ef3e94e2da99b52b42d02293e7b511bc 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 820c201bfe..75440baa40 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1025,6 +1025,7 @@ Natanael Copa <ncopa@alpinelinux.org>
Nathan Brown <nathan.brown@arm.com>
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 4ad5f044b5..ebc2a62536 100644
--- a/drivers/common/cnxk/roc_npa.h
+++ b/drivers/common/cnxk/roc_npa.h
@@ -247,7 +247,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.393198316 +0800
+++ 0018-common-cnxk-fix-atomic-load-in-batch-ops.patch 2025-02-18 19:39:00.458244077 +0800
@@ -1 +1 @@
-From 73d38682fddd614d95942442c20b3a1de211bb4c Mon Sep 17 00:00:00 2001
+From 3d543686ef3e94e2da99b52b42d02293e7b511bc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 73d38682fddd614d95942442c20b3a1de211bb4c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 1ed47e1cad..8524952d24 100644
+index 820c201bfe..75440baa40 100644
@@ -22 +24 @@
-@@ -1079,6 +1079,7 @@ Natanael Copa <ncopa@alpinelinux.org>
+@@ -1025,6 +1025,7 @@ Natanael Copa <ncopa@alpinelinux.org>
@@ -31 +33 @@
-index f7cb4460e7..8525038810 100644
+index 4ad5f044b5..ebc2a62536 100644
@@ -34 +36 @@
-@@ -255,7 +255,7 @@ roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us)
+@@ -247,7 +247,7 @@ roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'common/cnxk: fix DPI mailbox structure' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (17 preceding siblings ...)
2025-02-18 12:34 ` patch 'common/cnxk: fix atomic load in batch ops' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'eventdev: fix format string data type in log messages' " Xueming Li
` (72 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Vamsi Attunuru; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ab740bf72ab0a9ba7d31dd2b375c937e558a6b2b
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ab740bf72ab0a9ba7d31dd2b375c937e558a6b2b 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 518a3e7351..a050187406 100644
--- a/drivers/common/cnxk/roc_dpi_priv.h
+++ b/drivers/common/cnxk/roc_dpi_priv.h
@@ -24,7 +24,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.429179410 +0800
+++ 0019-common-cnxk-fix-DPI-mailbox-structure.patch 2025-02-18 19:39:00.458244077 +0800
@@ -1 +1 @@
-From b03c474188383c3d3d529b1c9ca86767e5fb6167 Mon Sep 17 00:00:00 2001
+From ab740bf72ab0a9ba7d31dd2b375c937e558a6b2b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b03c474188383c3d3d529b1c9ca86767e5fb6167 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 1f975915f7..05b6751ca6 100644
+index 518a3e7351..a050187406 100644
@@ -25 +27 @@
-@@ -27,7 +27,7 @@ typedef union dpi_mbox_msg_t {
+@@ -24,7 +24,7 @@ typedef union dpi_mbox_msg_t {
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'eventdev: fix format string data type in log messages' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (18 preceding siblings ...)
2025-02-18 12:34 ` patch 'common/cnxk: fix DPI mailbox structure' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'crypto/virtio: fix redundant queue free' " Xueming Li
` (71 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Andre Muezerie; +Cc: xuemingl, Stephen Hemminger, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f8a34a17125c870368cd85438033d58d626d187c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From f8a34a17125c870368cd85438033d58d626d187c Mon Sep 17 00:00:00 2001
From: Andre Muezerie <andremue@linux.microsoft.com>
Date: Fri, 27 Dec 2024 08:18:05 -0800
Subject: [PATCH] eventdev: fix format string data type in log messages
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit b2ff5f66189e75deea067598263929c591250e1b ]
The fix is to use the correct macro for the data type being logged.
Fixes: 112bf8055d90 ("eventdev/dma: support vchan add and delete")
Fixes: 2c6e23cd5e76 ("eventdev/dma: support adapter runtime params")
Signed-off-by: Andre Muezerie <andremue@linux.microsoft.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/eventdev/rte_event_dma_adapter.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/eventdev/rte_event_dma_adapter.c b/lib/eventdev/rte_event_dma_adapter.c
index 4196164305..8c66ae35bf 100644
--- a/lib/eventdev/rte_event_dma_adapter.c
+++ b/lib/eventdev/rte_event_dma_adapter.c
@@ -1004,7 +1004,7 @@ rte_event_dma_adapter_vchan_add(uint8_t id, int16_t dma_dev_id, uint16_t vchan,
EVENT_DMA_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL);
if (!rte_dma_is_valid(dma_dev_id)) {
- RTE_EDEV_LOG_ERR("Invalid dma_dev_id = %" PRIu8, dma_dev_id);
+ RTE_EDEV_LOG_ERR("Invalid dma_dev_id = %" PRId16, dma_dev_id);
return -EINVAL;
}
@@ -1117,7 +1117,7 @@ rte_event_dma_adapter_vchan_del(uint8_t id, int16_t dma_dev_id, uint16_t vchan)
EVENT_DMA_ADAPTER_ID_VALID_OR_ERR_RET(id, -EINVAL);
if (!rte_dma_is_valid(dma_dev_id)) {
- RTE_EDEV_LOG_ERR("Invalid dma_dev_id = %" PRIu8, dma_dev_id);
+ RTE_EDEV_LOG_ERR("Invalid dma_dev_id = %" PRId16, dma_dev_id);
return -EINVAL;
}
@@ -1275,7 +1275,7 @@ dma_adapter_cap_check(struct event_dma_adapter *adapter)
ret = rte_event_dma_adapter_caps_get(adapter->eventdev_id, adapter->next_dmadev_id, &caps);
if (ret) {
- RTE_EDEV_LOG_ERR("Failed to get adapter caps dev %" PRIu8 " cdev %" PRIu8,
+ RTE_EDEV_LOG_ERR("Failed to get adapter caps dev %" PRIu8 " cdev %" PRIu16,
adapter->eventdev_id, adapter->next_dmadev_id);
return ret;
}
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.463100804 +0800
+++ 0020-eventdev-fix-format-string-data-type-in-log-messages.patch 2025-02-18 19:39:00.468244075 +0800
@@ -1 +1 @@
-From b2ff5f66189e75deea067598263929c591250e1b Mon Sep 17 00:00:00 2001
+From f8a34a17125c870368cd85438033d58d626d187c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b2ff5f66189e75deea067598263929c591250e1b ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index ff2bc408c1..165374d195 100644
+index 4196164305..8c66ae35bf 100644
@@ -22 +24 @@
-@@ -996,7 +996,7 @@ rte_event_dma_adapter_vchan_add(uint8_t id, int16_t dma_dev_id, uint16_t vchan,
+@@ -1004,7 +1004,7 @@ rte_event_dma_adapter_vchan_add(uint8_t id, int16_t dma_dev_id, uint16_t vchan,
@@ -31 +33 @@
-@@ -1109,7 +1109,7 @@ rte_event_dma_adapter_vchan_del(uint8_t id, int16_t dma_dev_id, uint16_t vchan)
+@@ -1117,7 +1117,7 @@ rte_event_dma_adapter_vchan_del(uint8_t id, int16_t dma_dev_id, uint16_t vchan)
@@ -40 +42 @@
-@@ -1267,7 +1267,7 @@ dma_adapter_cap_check(struct event_dma_adapter *adapter)
+@@ -1275,7 +1275,7 @@ dma_adapter_cap_check(struct event_dma_adapter *adapter)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/virtio: fix redundant queue free' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (19 preceding siblings ...)
2025-02-18 12:34 ` patch 'eventdev: fix format string data type in log messages' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'crypto/openssl: fix CMAC auth context update' " Xueming Li
` (70 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Rajesh Mudimadugula; +Cc: xuemingl, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=90eb624eb6120756bd3ab64b2a0350406203840e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 90eb624eb6120756bd3ab64b2a0350406203840e 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 75440baa40..658de81358 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1185,6 +1185,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 c0d3178b71..0c3af3e3b0 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.496296798 +0800
+++ 0021-crypto-virtio-fix-redundant-queue-free.patch 2025-02-18 19:39:00.468244075 +0800
@@ -1 +1 @@
-From 89241aba832c044a9efb99329cfaa9faff8a6c4e Mon Sep 17 00:00:00 2001
+From 90eb624eb6120756bd3ab64b2a0350406203840e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 89241aba832c044a9efb99329cfaa9faff8a6c4e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 8524952d24..e428ed3dec 100644
+index 75440baa40..658de81358 100644
@@ -24 +26 @@
-@@ -1252,6 +1252,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
+@@ -1185,6 +1185,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
@@ -33 +35 @@
-index 643921dc02..98415af123 100644
+index c0d3178b71..0c3af3e3b0 100644
@@ -36 +38 @@
-@@ -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 +53 @@
-@@ -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 +61 @@
-@@ -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 +70 @@
-@@ -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] 138+ messages in thread
* patch 'crypto/openssl: fix CMAC auth context update' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (20 preceding siblings ...)
2025-02-18 12:34 ` patch 'crypto/virtio: fix redundant queue free' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'crypto/virtio: fix data queues iteration' " Xueming Li
` (69 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Wathsala Vithanage
Cc: xuemingl, Jack Bond-Preston, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=73730daf5971a5c639cc107c2039d93ff2a71c16
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 73730daf5971a5c639cc107c2039d93ff2a71c16 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 017e74e765..11734c4c21 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1595,9 +1595,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.531040292 +0800
+++ 0022-crypto-openssl-fix-CMAC-auth-context-update.patch 2025-02-18 19:39:00.468244075 +0800
@@ -1 +1 @@
-From 0241aebfa3bdc53fb36972fb116298adbdbd3957 Mon Sep 17 00:00:00 2001
+From 73730daf5971a5c639cc107c2039d93ff2a71c16 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0241aebfa3bdc53fb36972fb116298adbdbd3957 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index d2cf20c059..b090611bd0 100644
+index 017e74e765..11734c4c21 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/virtio: fix data queues iteration' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (21 preceding siblings ...)
2025-02-18 12:34 ` patch 'crypto/openssl: fix CMAC auth context update' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/octeon_ep: remove useless assignment' " Xueming Li
` (68 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Gowrishankar Muthukrishnan; +Cc: xuemingl, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=4ab8b71371eb81a32a1ba7beb3ec4fd4c70400c5
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 4ab8b71371eb81a32a1ba7beb3ec4fd4c70400c5 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 0c3af3e3b0..332e109876 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.565292086 +0800
+++ 0023-crypto-virtio-fix-data-queues-iteration.patch 2025-02-18 19:39:00.478244073 +0800
@@ -1 +1 @@
-From e27ff6e63a8d6202149d5b458ad3d78711806dfc Mon Sep 17 00:00:00 2001
+From 4ab8b71371eb81a32a1ba7beb3ec4fd4c70400c5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e27ff6e63a8d6202149d5b458ad3d78711806dfc ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 98415af123..b4a6fae9e0 100644
+index 0c3af3e3b0..332e109876 100644
@@ -24 +26 @@
-@@ -848,9 +848,8 @@ static void
+@@ -849,9 +849,8 @@ static void
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/octeon_ep: remove useless assignment' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (22 preceding siblings ...)
2025-02-18 12:34 ` patch 'crypto/virtio: fix data queues iteration' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/enetfec: " Xueming Li
` (67 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8be7239b2ead21484e215b740c28a238958bf95a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 8be7239b2ead21484e215b740c28a238958bf95a 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/octeon_ep: remove useless assignment
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 4143d5f09074c15706479ad4e271f3ab16d90579 ]
Coverity issue: 385414
Fixes: c836a7ba33ee ("net/octeon_ep: support mailbox between VF and PF")
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
---
drivers/net/octeon_ep/otx_ep_mbox.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/octeon_ep/otx_ep_mbox.c b/drivers/net/octeon_ep/otx_ep_mbox.c
index c92adeaf9a..210a5ffcea 100644
--- a/drivers/net/octeon_ep/otx_ep_mbox.c
+++ b/drivers/net/octeon_ep/otx_ep_mbox.c
@@ -247,9 +247,6 @@ int otx_ep_mbox_get_link_info(struct rte_eth_dev *eth_dev,
}
link->link_status = RTE_ETH_LINK_UP;
link->link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
- link->link_autoneg = (link_info.autoneg ==
- OTX_EP_LINK_AUTONEG) ? RTE_ETH_LINK_AUTONEG : RTE_ETH_LINK_FIXED;
-
link->link_autoneg = link_info.autoneg;
link->link_speed = link_info.speed;
return 0;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.598796180 +0800
+++ 0024-net-octeon_ep-remove-useless-assignment.patch 2025-02-18 19:39:00.478244073 +0800
@@ -1 +1 @@
-From 4143d5f09074c15706479ad4e271f3ab16d90579 Mon Sep 17 00:00:00 2001
+From 8be7239b2ead21484e215b740c28a238958bf95a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4143d5f09074c15706479ad4e271f3ab16d90579 ]
@@ -8 +10,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
-index 64a51c1fd0..1d7e08d2cc 100644
+index c92adeaf9a..210a5ffcea 100644
@@ -19 +21 @@
-@@ -256,9 +256,6 @@ int otx_ep_mbox_get_link_info(struct rte_eth_dev *eth_dev,
+@@ -247,9 +247,6 @@ int otx_ep_mbox_get_link_info(struct rte_eth_dev *eth_dev,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/enetfec: remove useless assignment' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (23 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/octeon_ep: remove useless assignment' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix multiple PFs check from NSP' " Xueming Li
` (66 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f8e1bf5b56ca685f1dc38c2f414c65c945cab493
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From f8e1bf5b56ca685f1dc38c2f414c65c945cab493 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 8c7067fbb5..10620aed86 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.630332475 +0800
+++ 0025-net-enetfec-remove-useless-assignment.patch 2025-02-18 19:39:00.488244072 +0800
@@ -1 +1 @@
-From 93fdf2ab302f244076c3894ab4a1a5b86d704eae Mon Sep 17 00:00:00 2001
+From f8e1bf5b56ca685f1dc38c2f414c65c945cab493 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 93fdf2ab302f244076c3894ab4a1a5b86d704eae ]
@@ -8 +10,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
-index 91c0f60490..0d27b63953 100644
+index 8c7067fbb5..10620aed86 100644
@@ -19 +21 @@
-@@ -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] 138+ messages in thread
* patch 'net/nfp: fix multiple PFs check from NSP' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (24 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/enetfec: " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix misuse of function return values' " Xueming Li
` (65 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Zerun Fu; +Cc: xuemingl, Chaoyong He, Long Wu, Peng Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b96c0c90f65f490a52bdeec9ecfb9ac67375e03f
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b96c0c90f65f490a52bdeec9ecfb9ac67375e03f Mon Sep 17 00:00:00 2001
From: Zerun Fu <zerun.fu@corigine.com>
Date: Wed, 22 Jan 2025 09:28:15 +0800
Subject: [PATCH] net/nfp: fix multiple PFs check from NSP
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit c19d389f5b553b0a9dddbb22882750c17a6fa577 ]
Fix multiple PFs check from NSP problem in the logic of PF initialization.
Fixes: 8ad2cc8fec37 ("net/nfp: add flag for multiple PFs support")
Signed-off-by: Zerun Fu <zerun.fu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
drivers/net/nfp/nfp_ethdev.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index e704c90dc5..b27324c0b4 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -985,24 +985,25 @@ nfp_check_multi_pf_from_fw(uint32_t total_vnics)
return false;
}
-static inline bool
+static inline int
nfp_check_multi_pf_from_nsp(struct rte_pci_device *pci_dev,
- struct nfp_cpp *cpp)
+ struct nfp_cpp *cpp,
+ bool *flag)
{
- bool flag;
struct nfp_nsp *nsp;
nsp = nfp_nsp_open(cpp);
if (nsp == NULL) {
PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle");
- return false;
+ return -EIO;
}
- flag = (nfp_nsp_get_abi_ver_major(nsp) > 0) &&
+ *flag = (nfp_nsp_get_abi_ver_major(nsp) > 0) &&
(pci_dev->id.device_id == PCI_DEVICE_ID_NFP3800_PF_NIC);
nfp_nsp_close(nsp);
- return flag;
+
+ return 0;
}
static int
@@ -1294,7 +1295,12 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
goto hwinfo_cleanup;
}
- pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp);
+ ret = nfp_check_multi_pf_from_nsp(pci_dev, cpp, &pf_dev->multi_pf.enabled);
+ if (ret != 0) {
+ PMD_INIT_LOG(ERR, "Failed to check multi pf from NSP.");
+ goto eth_table_cleanup;
+ }
+
pf_dev->multi_pf.function_id = function_id;
ret = nfp_net_force_port_down(pf_dev, nfp_eth_table, cpp);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.660983970 +0800
+++ 0026-net-nfp-fix-multiple-PFs-check-from-NSP.patch 2025-02-18 19:39:00.488244072 +0800
@@ -1 +1 @@
-From c19d389f5b553b0a9dddbb22882750c17a6fa577 Mon Sep 17 00:00:00 2001
+From b96c0c90f65f490a52bdeec9ecfb9ac67375e03f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c19d389f5b553b0a9dddbb22882750c17a6fa577 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index df5482f74a..58a5b1d94e 100644
+index e704c90dc5..b27324c0b4 100644
@@ -23 +25 @@
-@@ -1751,24 +1751,25 @@ nfp_check_multi_pf_from_fw(uint32_t total_vnics)
+@@ -985,24 +985,25 @@ nfp_check_multi_pf_from_fw(uint32_t total_vnics)
@@ -39 +41 @@
- PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle.");
+ PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle");
@@ -55,2 +57,2 @@
-@@ -2434,8 +2435,13 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
- goto eth_table_cleanup;
+@@ -1294,7 +1295,12 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
+ goto hwinfo_cleanup;
@@ -58,0 +61 @@
+- pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp);
@@ -65,2 +67,0 @@
- pf_dev->nfp_eth_table = nfp_eth_table;
-- pf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp);
@@ -68 +68,0 @@
- pf_dev->total_phyports = nfp_net_get_phyports_from_nsp(pf_dev);
@@ -69,0 +70 @@
+ ret = nfp_net_force_port_down(pf_dev, nfp_eth_table, cpp);
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/nfp: fix misuse of function return values' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (25 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/nfp: fix multiple PFs check from NSP' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix multi-PF control flag' " Xueming Li
` (64 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Zerun Fu; +Cc: xuemingl, Chaoyong He, Long Wu, Peng Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=01778ceb375343d651eb169cdca88b32126aafe6
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 01778ceb375343d651eb169cdca88b32126aafe6 Mon Sep 17 00:00:00 2001
From: Zerun Fu <zerun.fu@corigine.com>
Date: Wed, 22 Jan 2025 09:33:20 +0800
Subject: [PATCH] net/nfp: fix misuse of function return values
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit f19ffdb1574cb0a9c9566b0b5c4098beb95ced49 ]
The 'nfp_ct_offload_add()' return 0 means the result is right
while return negative number means the wrong result.
The caller assigns the 'int' variable to the 'bool' variable.
So the negative number will be transform to 'true'. This will
cause an error because 'true' will be regard as no problem.
Fixes: b4ae16eae01c ("net/nfp: support to add and delete flows to firmware")
Signed-off-by: Zerun Fu <zerun.fu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
drivers/net/nfp/flower/nfp_conntrack.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/nfp/flower/nfp_conntrack.c b/drivers/net/nfp/flower/nfp_conntrack.c
index f89003be8b..654b449e90 100644
--- a/drivers/net/nfp/flower/nfp_conntrack.c
+++ b/drivers/net/nfp/flower/nfp_conntrack.c
@@ -1436,6 +1436,7 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
struct nfp_ct_flow_entry *pre_ct_entry,
struct nfp_ct_flow_entry *post_ct_entry)
{
+ int err;
bool ret;
uint64_t new_cookie[2];
uint8_t cnt_same_item = 0;
@@ -1504,9 +1505,10 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
}
/* Send to firmware */
- ret = nfp_ct_offload_add(pre_ct_entry->repr, merge_entry);
- if (ret != 0) {
+ err = nfp_ct_offload_add(pre_ct_entry->repr, merge_entry);
+ if (err != 0) {
PMD_DRV_LOG(ERR, "Send the merged flow to firmware failed");
+ ret = false;
goto merge_table_del;
}
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.692836664 +0800
+++ 0027-net-nfp-fix-misuse-of-function-return-values.patch 2025-02-18 19:39:00.498244070 +0800
@@ -1 +1 @@
-From f19ffdb1574cb0a9c9566b0b5c4098beb95ced49 Mon Sep 17 00:00:00 2001
+From 01778ceb375343d651eb169cdca88b32126aafe6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f19ffdb1574cb0a9c9566b0b5c4098beb95ced49 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 0b21e4ee5b..439a1a1b0e 100644
+index f89003be8b..654b449e90 100644
@@ -28 +30 @@
-@@ -1440,6 +1440,7 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
+@@ -1436,6 +1436,7 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
@@ -36 +38 @@
-@@ -1508,9 +1509,10 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
+@@ -1504,9 +1505,10 @@ nfp_ct_do_flow_merge(struct nfp_ct_zone_entry *ze,
@@ -40 +42 @@
-- ret = nfp_ct_offload_add(pre_ct_entry->dev, merge_entry);
+- ret = nfp_ct_offload_add(pre_ct_entry->repr, merge_entry);
@@ -42 +44 @@
-+ err = nfp_ct_offload_add(pre_ct_entry->dev, merge_entry);
++ err = nfp_ct_offload_add(pre_ct_entry->repr, merge_entry);
@@ -44 +46 @@
- PMD_DRV_LOG(ERR, "Send the merged flow to firmware failed.");
+ PMD_DRV_LOG(ERR, "Send the merged flow to firmware failed");
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/nfp: fix multi-PF control flag' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (26 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/nfp: fix misuse of function return values' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/ice: fix flows handling' " Xueming Li
` (63 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Peng Zhang; +Cc: xuemingl, Chaoyong He, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=92bddea79da424642f3c194619ccb02ff3a28898
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 92bddea79da424642f3c194619ccb02ff3a28898 Mon Sep 17 00:00:00 2001
From: Peng Zhang <peng.zhang@corigine.com>
Date: Wed, 22 Jan 2025 09:39:30 +0800
Subject: [PATCH] net/nfp: fix multi-PF control flag
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 02c056aaac1ba1bd16658eef19cb78457d556041 ]
In the original logic of 'nfp_net_start()', we don't set the
'NFP_NET_CFG_CTRL_MULTI_PF' flag when using multi-pf firmware.
Fix it by adding the missing logic.
Fixes: 95f978efab42 ("net/nfp: enable multiple PF in application firmware")
Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
drivers/net/nfp/nfp_ethdev.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index b27324c0b4..32f49a6613 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -150,6 +150,9 @@ nfp_net_start(struct rte_eth_dev *dev)
ctrl_extend |= NFP_NET_CFG_CTRL_IPSEC_SM_LOOKUP
| NFP_NET_CFG_CTRL_IPSEC_LM_LOOKUP;
+ if ((cap_extend & NFP_NET_CFG_CTRL_MULTI_PF) != 0 && pf_dev->multi_pf.enabled)
+ ctrl_extend |= NFP_NET_CFG_CTRL_MULTI_PF;
+
update = NFP_NET_CFG_UPDATE_GEN;
if (nfp_ext_reconfig(hw, ctrl_extend, update) != 0)
return -EIO;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.724540359 +0800
+++ 0028-net-nfp-fix-multi-PF-control-flag.patch 2025-02-18 19:39:00.498244070 +0800
@@ -1 +1 @@
-From 02c056aaac1ba1bd16658eef19cb78457d556041 Mon Sep 17 00:00:00 2001
+From 92bddea79da424642f3c194619ccb02ff3a28898 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 02c056aaac1ba1bd16658eef19cb78457d556041 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 58a5b1d94e..ca808afdd9 100644
+index b27324c0b4..32f49a6613 100644
@@ -24,3 +26,3 @@
-@@ -472,6 +472,9 @@ nfp_net_start(struct rte_eth_dev *dev)
- if ((cap_extend & NFP_NET_CFG_CTRL_FLOW_STEER) != 0)
- ctrl_extend |= NFP_NET_CFG_CTRL_FLOW_STEER;
+@@ -150,6 +150,9 @@ nfp_net_start(struct rte_eth_dev *dev)
+ ctrl_extend |= NFP_NET_CFG_CTRL_IPSEC_SM_LOOKUP
+ | NFP_NET_CFG_CTRL_IPSEC_LM_LOOKUP;
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ice: fix flows handling' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (27 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/nfp: fix multi-PF control flag' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/cnxk: fix NIX send header L3 type' " Xueming Li
` (62 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Vladimir Medvedkin; +Cc: xuemingl, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=03db2facc30eb7fb51f5755496559aa05b1f23b8
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 03db2facc30eb7fb51f5755496559aa05b1f23b8 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Thu, 30 Jan 2025 16:14:42 +0000
Subject: [PATCH] net/ice: fix flows handling
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit fabc9e1322e26b41ab74a8e35dcb477c702c3f6d ]
Currently ICE PMD uses group attribute to select the appropriate HW engine
to offload the flow. This behavior violates the rte_flow API, existing
documentation/examples, and reveals hardware specific details.
This patch eliminates the use of the group attribute and runs each engine
parser in the order they work in the HW pipeline.
Fixes: 9c5f0070fa3f ("net/ice: map group to pipeline stage")
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/net/ice/ice_generic_flow.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
index 50d760004f..5c34e0385f 100644
--- a/drivers/net/ice/ice_generic_flow.c
+++ b/drivers/net/ice/ice_generic_flow.c
@@ -20,6 +20,8 @@
#define ICE_FLOW_ENGINE_DISABLED(mask, type) ((mask) & BIT(type))
+#define ICE_FLOW_ENGINE_NB 3
+
static struct ice_engine_list engine_list =
TAILQ_HEAD_INITIALIZER(engine_list);
@@ -2295,21 +2297,23 @@ ice_flow_process_filter(struct rte_eth_dev *dev,
return 0;
}
- parser = get_flow_parser(attr->group);
- if (parser == NULL) {
- rte_flow_error_set(error, EINVAL,
- RTE_FLOW_ERROR_TYPE_ATTR,
- NULL, "NULL attribute.");
- return -rte_errno;
- }
+ for (int i = 0; i < ICE_FLOW_ENGINE_NB; i++) {
+ parser = get_flow_parser(i);
+ if (parser == NULL) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ATTR,
+ NULL, "NULL attribute.");
+ return -rte_errno;
+ }
- if (ice_parse_engine(ad, flow, parser, attr->priority,
- pattern, actions, error)) {
- *engine = parser->engine;
- return 0;
- } else {
- return -rte_errno;
+ if (ice_parse_engine(ad, flow, parser, attr->priority,
+ pattern, actions, error)) {
+ *engine = parser->engine;
+ return 0;
+ }
}
+
+ return -rte_errno;
}
static int
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.758260553 +0800
+++ 0029-net-ice-fix-flows-handling.patch 2025-02-18 19:39:00.508244068 +0800
@@ -1 +1 @@
-From fabc9e1322e26b41ab74a8e35dcb477c702c3f6d Mon Sep 17 00:00:00 2001
+From 03db2facc30eb7fb51f5755496559aa05b1f23b8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fabc9e1322e26b41ab74a8e35dcb477c702c3f6d ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
- drivers/net/intel/ice/ice_generic_flow.c | 30 ++++++++++++++----------
+ drivers/net/ice/ice_generic_flow.c | 30 +++++++++++++++++-------------
@@ -22 +24 @@
-diff --git a/drivers/net/intel/ice/ice_generic_flow.c b/drivers/net/intel/ice/ice_generic_flow.c
+diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
@@ -24,2 +26,2 @@
---- a/drivers/net/intel/ice/ice_generic_flow.c
-+++ b/drivers/net/intel/ice/ice_generic_flow.c
+--- a/drivers/net/ice/ice_generic_flow.c
++++ b/drivers/net/ice/ice_generic_flow.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/cnxk: fix NIX send header L3 type' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (28 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/ice: fix flows handling' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'gro: fix unprocessed IPv4 packets' " Xueming Li
` (61 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Rahul Bhansali; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=0de3886c84a5fd5df323b2a8513f519fb37f3cc1
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 0de3886c84a5fd5df323b2a8513f519fb37f3cc1 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 c84154ee84..fc82704d47 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1824,6 +1824,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) &&
@@ -2524,7 +2527,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) */
@@ -2728,7 +2731,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 4715bf8a65..3d6af8a38f 100644
--- a/drivers/net/cnxk/cn9k_tx.h
+++ b/drivers/net/cnxk/cn9k_tx.h
@@ -889,6 +889,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) &&
@@ -1402,7 +1405,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) */
@@ -1606,7 +1609,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.805639945 +0800
+++ 0030-net-cnxk-fix-NIX-send-header-L3-type.patch 2025-02-18 19:39:00.518244067 +0800
@@ -1 +1 @@
-From 32c18e7364e30a8e43cc7cc6709a7ce606fa285e Mon Sep 17 00:00:00 2001
+From 0de3886c84a5fd5df323b2a8513f519fb37f3cc1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 32c18e7364e30a8e43cc7cc6709a7ce606fa285e ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -25 +26,0 @@
- drivers/net/cnxk/cn20k_tx.h | 7 +++++--
@@ -27 +28 @@
- 3 files changed, 15 insertions(+), 6 deletions(-)
+ 2 files changed, 10 insertions(+), 4 deletions(-)
@@ -30 +31 @@
-index 7d9b259a5f..77f4e54cd8 100644
+index c84154ee84..fc82704d47 100644
@@ -33 +34 @@
-@@ -1773,6 +1773,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
+@@ -1824,6 +1824,9 @@ cn10k_nix_prepare_tso(struct rte_mbuf *m, union nix_send_hdr_w1_u *w1,
@@ -43,33 +44 @@
-@@ -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:
+@@ -2524,7 +2527,7 @@ again:
@@ -84 +53 @@
-@@ -2595,7 +2598,7 @@ again:
+@@ -2728,7 +2731,7 @@ again:
@@ -94 +63 @@
-index 9370985864..902a17860c 100644
+index 4715bf8a65..3d6af8a38f 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'gro: fix unprocessed IPv4 packets' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (29 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/cnxk: fix NIX send header L3 type' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'eal/linux: fix memseg length in legacy mem init' " Xueming Li
` (60 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Konstantin Ananyev; +Cc: xuemingl, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d3e164cbd7619aaf591d3054eff45dd1454af5c1
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d3e164cbd7619aaf591d3054eff45dd1454af5c1 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Date: Wed, 5 Feb 2025 17:33:11 -0800
Subject: [PATCH] gro: fix unprocessed IPv4 packets
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 5c762a58c3fa81e232a5cba8087577be1a593c33 ]
gro_vxlan_tcp4_tbl_timeout_flush() is called without taking into account
that first entries in pkts[] can be already occupied by
un-processed packets.
Fixes: 74080d7dcf31 ("gro: support IPv6 for TCP")
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
lib/gro/rte_gro.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/gro/rte_gro.c b/lib/gro/rte_gro.c
index d824eebd93..db86117609 100644
--- a/lib/gro/rte_gro.c
+++ b/lib/gro/rte_gro.c
@@ -327,7 +327,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts,
/* Flush all packets from the tables */
if (do_vxlan_tcp_gro) {
i += gro_vxlan_tcp4_tbl_timeout_flush(&vxlan_tcp_tbl,
- 0, pkts, nb_pkts);
+ 0, &pkts[i], nb_pkts - i);
}
if (do_vxlan_udp_gro) {
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.859778936 +0800
+++ 0031-gro-fix-unprocessed-IPv4-packets.patch 2025-02-18 19:39:00.518244067 +0800
@@ -1 +1 @@
-From 5c762a58c3fa81e232a5cba8087577be1a593c33 Mon Sep 17 00:00:00 2001
+From d3e164cbd7619aaf591d3054eff45dd1454af5c1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5c762a58c3fa81e232a5cba8087577be1a593c33 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'eal/linux: fix memseg length in legacy mem init' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (30 preceding siblings ...)
2025-02-18 12:34 ` patch 'gro: fix unprocessed IPv4 packets' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'buildtools: fix some Python regex syntax warnings' " Xueming Li
` (59 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Yang Ming; +Cc: xuemingl, Dmitry Kozlyuk, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=a242697f142110e44ed2c17385bd138993e585e8
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From a242697f142110e44ed2c17385bd138993e585e8 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 658de81358..60eac79c6b 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1630,6 +1630,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.893148730 +0800
+++ 0032-eal-linux-fix-memseg-length-in-legacy-mem-init.patch 2025-02-18 19:39:00.528244065 +0800
@@ -1 +1 @@
-From b974cbbbef6e1036e7ed7d19fefb7ef8cda0e4a1 Mon Sep 17 00:00:00 2001
+From a242697f142110e44ed2c17385bd138993e585e8 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b974cbbbef6e1036e7ed7d19fefb7ef8cda0e4a1 ]
@@ -34 +36,0 @@
-Cc: stable@dpdk.org
@@ -44 +46 @@
-index 9209a716e0..19bbdbc0c8 100644
+index 658de81358..60eac79c6b 100644
@@ -47 +49 @@
-@@ -1722,6 +1722,7 @@ Yahui Cao <yahui.cao@intel.com>
+@@ -1630,6 +1630,7 @@ Yahui Cao <yahui.cao@intel.com>
@@ -56 +58 @@
-index 45879ca743..9dda60c0e1 100644
+index 9b6f08fba8..077f77d406 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'buildtools: fix some Python regex syntax warnings' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (31 preceding siblings ...)
2025-02-18 12:34 ` patch 'eal/linux: fix memseg length in legacy mem init' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'use Python raw string notation' " Xueming Li
` (58 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, Robin Jarry, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d139f13116e3e901f36a6701c79c694b39ce89fc
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d139f13116e3e901f36a6701c79c694b39ce89fc Mon Sep 17 00:00:00 2001
From: Ariel Otilibili <otilibil@eurecom.fr>
Date: Fri, 13 Dec 2024 15:40:58 +0100
Subject: [PATCH] buildtools: fix some Python regex syntax warnings
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 5506d5a71031c003d8c0b740dbb72eb7a4968edb ]
* invalid escape sequences now generate SyntaxWarning
* therefore changed syntax to raw string noration.
Fixes: 0aeaf75df879 ("test: define unit tests suites based on test types")
Fixes: 25065ef1f6c0 ("test: emit warning for orphaned tests")
Link: https://docs.python.org/3/library/re.html#module-re
Signed-off-by: Ariel Otilibili <otilibil@eurecom.fr>
Acked-by: Robin Jarry <rjarry@redhat.com>
---
buildtools/get-test-suites.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/buildtools/get-test-suites.py b/buildtools/get-test-suites.py
index c61f6a273f..fd22d25f36 100644
--- a/buildtools/get-test-suites.py
+++ b/buildtools/get-test-suites.py
@@ -6,10 +6,10 @@ import sys
import re
input_list = sys.argv[1:]
-test_def_regex = re.compile("REGISTER_([A-Z]+)_TEST\s*\(\s*([a-z0-9_]+)")
+test_def_regex = re.compile(r"REGISTER_([A-Z]+)_TEST\s*\(\s*([a-z0-9_]+)")
test_suites = {}
# track tests not in any test suite.
-non_suite_regex = re.compile("REGISTER_TEST_COMMAND\s*\(\s*([a-z0-9_]+)")
+non_suite_regex = re.compile(r"REGISTER_TEST_COMMAND\s*\(\s*([a-z0-9_]+)")
non_suite_tests = []
def get_fast_test_params(test_name, ln):
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.927931024 +0800
+++ 0033-buildtools-fix-some-Python-regex-syntax-warnings.patch 2025-02-18 19:39:00.528244065 +0800
@@ -1 +1 @@
-From 5506d5a71031c003d8c0b740dbb72eb7a4968edb Mon Sep 17 00:00:00 2001
+From d139f13116e3e901f36a6701c79c694b39ce89fc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5506d5a71031c003d8c0b740dbb72eb7a4968edb ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'use Python raw string notation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (32 preceding siblings ...)
2025-02-18 12:34 ` patch 'buildtools: fix some Python regex syntax warnings' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/af_packet: fix socket close on device stop' " Xueming Li
` (57 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, Robin Jarry, Luca Vizzarro, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=837d7d50fc98f48c06cfbe2b17ebd1e3542348b0
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 837d7d50fc98f48c06cfbe2b17ebd1e3542348b0 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 +-
dts/tests/TestSuite_smoke_tests.py | 2 +-
3 files changed, 3 insertions(+), 3 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:
diff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py
index 5e897cf5d2..e130a6b603 100644
--- a/dts/tests/TestSuite_smoke_tests.py
+++ b/dts/tests/TestSuite_smoke_tests.py
@@ -91,7 +91,7 @@ class SmokeTests(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(
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.956691919 +0800
+++ 0034-use-Python-raw-string-notation.patch 2025-02-18 19:39:00.528244065 +0800
@@ -1 +1 @@
-From d3e90e5e37872f1040f37a08b056102c1a302bb3 Mon Sep 17 00:00:00 2001
+From 837d7d50fc98f48c06cfbe2b17ebd1e3542348b0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d3e90e5e37872f1040f37a08b056102c1a302bb3 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -21,5 +23,4 @@
- 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 +-
+ dts/tests/TestSuite_smoke_tests.py | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
@@ -53,12 +53,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]
@@ -66 +55 @@
-index bc3a2a6bf9..ab5ad44850 100644
+index 5e897cf5d2..e130a6b603 100644
@@ -69 +58 @@
-@@ -136,7 +136,7 @@ class TestSmokeTests(TestSuite):
+@@ -91,7 +91,7 @@ class SmokeTests(TestSuite):
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/af_packet: fix socket close on device stop' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (33 preceding siblings ...)
2025-02-18 12:34 ` patch 'use Python raw string notation' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'ethdev: fix functions available in new device event' " Xueming Li
` (56 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Tudor Cornea; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6594bba195d9047e43e30d22170baab5f103d08a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6594bba195d9047e43e30d22170baab5f103d08a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:01.988448413 +0800
+++ 0035-net-af_packet-fix-socket-close-on-device-stop.patch 2025-02-18 19:39:00.528244065 +0800
@@ -1 +1 @@
-From 872e846f6bb31afbdd508903380cf05a3d313a3a Mon Sep 17 00:00:00 2001
+From 6594bba195d9047e43e30d22170baab5f103d08a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 872e846f6bb31afbdd508903380cf05a3d313a3a ]
@@ -77 +79,0 @@
-Cc: stable@dpdk.org
@@ -85 +87 @@
-index 7fcd27ee0c..ab34285ed9 100644
+index 6b7b16f348..0b059bfd0b 100644
@@ -88 +90 @@
-@@ -363,27 +363,12 @@ static int
+@@ -332,27 +332,12 @@ static int
@@ -116 +118 @@
-@@ -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 +126 @@
-@@ -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] 138+ messages in thread
* patch 'ethdev: fix functions available in new device event' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (34 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/af_packet: fix socket close on device stop' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'vhost: add null callback checks' " Xueming Li
` (55 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Huisong Li; +Cc: xuemingl, Thomas Monjalon, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c1c2fd8405a0f6bef24a1a1375ddafdecf285f7e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c1c2fd8405a0f6bef24a1a1375ddafdecf285f7e 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 dfcdf76fee..86fd457f78 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -600,9 +600,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
struct rte_eth_dev *ethdev;
int ret;
- 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);
@@ -635,8 +636,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 545799c341..089bf3626d 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -4029,7 +4029,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.017703608 +0800
+++ 0036-ethdev-fix-functions-available-in-new-device-event.patch 2025-02-18 19:39:00.538244063 +0800
@@ -1 +1 @@
-From 0b8f35358ceb0178878f72b66a36dc0ab7924377 Mon Sep 17 00:00:00 2001
+From c1c2fd8405a0f6bef24a1a1375ddafdecf285f7e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0b8f35358ceb0178878f72b66a36dc0ab7924377 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +20,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 +24 @@
-index b7cb26f0d3..c4079bb924 100644
+index dfcdf76fee..86fd457f78 100644
@@ -25 +27 @@
-@@ -602,9 +602,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
+@@ -600,9 +600,10 @@ rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
@@ -36 +38 @@
- RTE_ETHDEV_LOG_LINE(ERR, "Port ID %"PRIu16" is not allocated",
+ RTE_ETHDEV_LOG(ERR, "Port ID %"PRIu16" is not allocated\n",
@@ -38 +40 @@
-@@ -637,8 +638,15 @@ int
+@@ -635,8 +636,15 @@ int
@@ -56 +58 @@
-index 978104d232..40d97b17d4 100644
+index 545799c341..089bf3626d 100644
@@ -59,5 +61,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.
+@@ -4029,7 +4029,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 +71,2 @@
- */
- RTE_ETH_EVENT_NEW,
++ */
++ RTE_ETH_EVENT_NEW,
@@ -68,0 +74,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] 138+ messages in thread
* patch 'vhost: add null callback checks' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (35 preceding siblings ...)
2025-02-18 12:34 ` patch 'ethdev: fix functions available in new device event' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'build: force GCC 15 to initialize padding bits' " Xueming Li
` (54 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Kevin Traynor; +Cc: xuemingl, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c452aa7dc067ca90419d85ba633ca8dedbae312c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c452aa7dc067ca90419d85ba633ca8dedbae312c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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/vduse.c | 3 ++-
lib/vhost/vhost.c | 5 +++--
lib/vhost/vhost_user.c | 3 ++-
3 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c
index b46f0e53c7..3b1a3b008e 100644
--- a/lib/vhost/vduse.c
+++ b/lib/vhost/vduse.c
@@ -317,7 +317,8 @@ vduse_device_start(struct virtio_net *dev)
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++) {
diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 8a1f992d9d..276c5f12b7 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -750,10 +750,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 14808bd5bc..e01675e478 100644
--- a/lib/vhost/vhost_user.c
+++ b/lib/vhost/vhost_user.c
@@ -3280,7 +3280,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.055757102 +0800
+++ 0037-vhost-add-null-callback-checks.patch 2025-02-18 19:39:00.548244061 +0800
@@ -1 +1 @@
-From 66be1a05a480a0484b02c1a0194126763f4dbb99 Mon Sep 17 00:00:00 2001
+From c452aa7dc067ca90419d85ba633ca8dedbae312c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 66be1a05a480a0484b02c1a0194126763f4dbb99 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 8ba58555f9..be548f051e 100644
+index b46f0e53c7..3b1a3b008e 100644
@@ -27 +29 @@
-@@ -318,7 +318,8 @@ vduse_device_start(struct virtio_net *dev, bool reconnect)
+@@ -317,7 +317,8 @@ vduse_device_start(struct virtio_net *dev)
@@ -38 +40 @@
-index 2f34d3500e..f01ae6130e 100644
+index 8a1f992d9d..276c5f12b7 100644
@@ -41 +43 @@
-@@ -751,10 +751,11 @@ vhost_destroy_device_notify(struct virtio_net *dev)
+@@ -750,10 +750,11 @@ vhost_destroy_device_notify(struct virtio_net *dev)
@@ -56 +58 @@
-index 52d8078d7c..26dc0bde97 100644
+index 14808bd5bc..e01675e478 100644
@@ -59 +61 @@
-@@ -3301,7 +3301,8 @@ unlock:
+@@ -3280,7 +3280,8 @@ unlock:
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'build: force GCC 15 to initialize padding bits' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (36 preceding siblings ...)
2025-02-18 12:34 ` patch 'vhost: add null callback checks' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/bnxt: fix indication of allocation' " Xueming Li
` (53 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Stephen Hemminger
Cc: xuemingl, Morten Brørup, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=9fa42e1aec84ff057805160f38ee1537e74608b0
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 9fa42e1aec84ff057805160f38ee1537e74608b0 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 898b719929..394d612924 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -303,7 +303,7 @@ endif
# 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',
@@ -324,22 +324,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.089365896 +0800
+++ 0038-build-force-GCC-15-to-initialize-padding-bits.patch 2025-02-18 19:39:00.548244061 +0800
@@ -1 +1 @@
-From 3c015da37afecbeaa7c9ebf8cf2adcb20ab0e54d Mon Sep 17 00:00:00 2001
+From 9fa42e1aec84ff057805160f38ee1537e74608b0 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3c015da37afecbeaa7c9ebf8cf2adcb20ab0e54d ]
@@ -20,2 +22,0 @@
-Cc: stable@dpdk.org
-
@@ -26,2 +27,2 @@
- config/meson.build | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
+ config/meson.build | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
@@ -30 +31 @@
-index 710206095b..f31fef216c 100644
+index 898b719929..394d612924 100644
@@ -33 +34 @@
-@@ -310,7 +310,7 @@ endif
+@@ -303,7 +303,7 @@ endif
@@ -42,2 +43,2 @@
-@@ -330,16 +330,19 @@ warning_flags = [
- # globally disabled warnings
+@@ -324,22 +324,25 @@ warning_flags = [
+ '-Wno-address-of-packed-member',
@@ -50 +51,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 +67,0 @@
-
-@@ -351,7 +354,7 @@ if cc.has_argument('-Wvla')
- endif
- endif
-
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/bnxt: fix indication of allocation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (37 preceding siblings ...)
2025-02-18 12:34 ` patch 'build: force GCC 15 to initialize padding bits' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/bnxt: fix crash when representor is re-attached' " Xueming Li
` (52 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Andre Muezerie; +Cc: xuemingl, Ajit Khaparde, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=378ab42db956366cf0160937cf6eb6db61530787
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 378ab42db956366cf0160937cf6eb6db61530787 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 87e8882fed..0dffd74cd5 100644
--- a/drivers/net/bnxt/tf_core/tf_sram_mgr.c
+++ b/drivers/net/bnxt/tf_core/tf_sram_mgr.c
@@ -949,7 +949,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;
}
@@ -964,7 +964,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.121518390 +0800
+++ 0039-net-bnxt-fix-indication-of-allocation.patch 2025-02-18 19:39:00.548244061 +0800
@@ -1 +1 @@
-From 8531f9ba0062032454121f4959cd3d495cd4147e Mon Sep 17 00:00:00 2001
+From 378ab42db956366cf0160937cf6eb6db61530787 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8531f9ba0062032454121f4959cd3d495cd4147e ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/bnxt: fix crash when representor is re-attached' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (38 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/bnxt: fix indication of allocation' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix Netlink socket leak' " Xueming Li
` (51 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Sangtani Parag Satishbhai
Cc: xuemingl, Somnath Kotur, Kalesh AP, Ajit Khaparde, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5bdead115568a2e275aa60e36752d22ad25dad61
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5bdead115568a2e275aa60e36752d22ad25dad61 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 988895a065..35d9e0b53b 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -6440,6 +6440,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)
@@ -6449,14 +6451,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", 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.154466185 +0800
+++ 0040-net-bnxt-fix-crash-when-representor-is-re-attached.patch 2025-02-18 19:39:00.548244061 +0800
@@ -1 +1 @@
-From fca6cf68bbcf9b84e4388239031fb168a6624375 Mon Sep 17 00:00:00 2001
+From 5bdead115568a2e275aa60e36752d22ad25dad61 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fca6cf68bbcf9b84e4388239031fb168a6624375 ]
@@ -23 +25,0 @@
-Cc: stable@dpdk.org
@@ -34 +36 @@
-index b18247feb2..144d4377bd 100644
+index 988895a065..35d9e0b53b 100644
@@ -37 +39 @@
-@@ -6993,6 +6993,8 @@ static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -6440,6 +6440,8 @@ static int bnxt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -46 +48 @@
-@@ -7002,14 +7004,20 @@ static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
+@@ -6449,14 +6451,20 @@ static int bnxt_pci_remove(struct rte_pci_device *pci_dev)
@@ -50 +52 @@
-- 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 +54 @@
-- if (rte_eth_dev_is_repr(eth_dev))
+- if (eth_dev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR)
@@ -59 +61 @@
-+ PMD_DRV_LOG_LINE(DEBUG, "BNXT Port:%d pci remove", port_id);
++ PMD_DRV_LOG(DEBUG, "BNXT Port:%d pci remove", port_id);
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix Netlink socket leak' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (39 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/bnxt: fix crash when representor is re-attached' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: adjust actions per rule limitation' " Xueming Li
` (50 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Minggang Li (Gavin); +Cc: xuemingl, Viacheslav Ovsiienko, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e0ddea424190d6214b8b532ef03c1a45c88a1174
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e0ddea424190d6214b8b532ef03c1a45c88a1174 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 60eac79c6b..6984cb9940 100644
--- a/.mailmap
+++ b/.mailmap
@@ -982,6 +982,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 9dcdc8581a..fdc4dc1cf8 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -2968,10 +2968,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.186725979 +0800
+++ 0041-net-mlx5-fix-Netlink-socket-leak.patch 2025-02-18 19:39:00.558244060 +0800
@@ -1 +1 @@
-From 556a5f4ccd452d9281c3476b120d1306e0093e01 Mon Sep 17 00:00:00 2001
+From e0ddea424190d6214b8b532ef03c1a45c88a1174 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 556a5f4ccd452d9281c3476b120d1306e0093e01 ]
@@ -7 +9,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index 4bc9721321..dc3dd9e5a2 100644
+index 60eac79c6b..6984cb9940 100644
@@ -20 +22 @@
-@@ -1036,6 +1036,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
+@@ -982,6 +982,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
@@ -29 +31 @@
-index 996c97a6a9..169c229172 100644
+index 9dcdc8581a..fdc4dc1cf8 100644
@@ -32 +34 @@
-@@ -3070,10 +3070,15 @@ mlx5_os_dev_shared_handler_install(struct mlx5_dev_ctx_shared *sh)
+@@ -2968,10 +2968,15 @@ mlx5_os_dev_shared_handler_install(struct mlx5_dev_ctx_shared *sh)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: adjust actions per rule limitation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (40 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/mlx5: fix Netlink socket leak' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix flush of non-template flow rules' " Xueming Li
` (49 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Maayan Kashani; +Cc: xuemingl, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=191a7d7a4979262752fb5213c9027de86a34f36a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 191a7d7a4979262752fb5213c9027de86a34f36a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 01f0eab1fa..9d18a576ae 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -1422,7 +1422,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 3dc26d5a0b..54f264a03c 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -14,9 +14,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.222995573 +0800
+++ 0042-net-mlx5-adjust-actions-per-rule-limitation.patch 2025-02-18 19:39:00.578244056 +0800
@@ -1 +1 @@
-From ab54e17fe2f5207d7b988d568344570e156551ad Mon Sep 17 00:00:00 2001
+From 191a7d7a4979262752fb5213c9027de86a34f36a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ab54e17fe2f5207d7b988d568344570e156551ad ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 93c2406abc..445c9cdb4b 100644
+index 01f0eab1fa..9d18a576ae 100644
@@ -25 +27 @@
-@@ -1583,7 +1583,7 @@ struct mlx5_hw_modify_header_action {
+@@ -1422,7 +1422,7 @@ struct mlx5_hw_modify_header_action {
@@ -35 +37 @@
-index 2b62711413..501bf33f94 100644
+index 3dc26d5a0b..54f264a03c 100644
@@ -38,3 +40,3 @@
-@@ -21,9 +21,6 @@
- /** Fast path async flow API functions. */
- static struct rte_flow_fp_ops mlx5_flow_hw_fp_ops;
+@@ -14,9 +14,6 @@
+ #if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
+ #include "mlx5_hws_cnt.h"
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix flush of non-template flow rules' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (41 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/mlx5: adjust actions per rule limitation' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix GRE flow match with SWS' " Xueming Li
` (48 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Maayan Kashani; +Cc: xuemingl, Bing Zhao, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ef46fae0d4f7dd2cba8356f2700725d868d56b87
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ef46fae0d4f7dd2cba8356f2700725d868d56b87 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 1e9484f372..97f678ff4e 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -8104,7 +8104,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.270644365 +0800
+++ 0043-net-mlx5-fix-flush-of-non-template-flow-rules.patch 2025-02-18 19:39:00.588244055 +0800
@@ -1 +1 @@
-From 716929be9456b78875d0eb20bc54c13acf99efc0 Mon Sep 17 00:00:00 2001
+From ef46fae0d4f7dd2cba8356f2700725d868d56b87 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 716929be9456b78875d0eb20bc54c13acf99efc0 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index bfc44f25bf..a2ee237841 100644
+index 1e9484f372..97f678ff4e 100644
@@ -23 +25 @@
-@@ -8118,7 +8118,6 @@ mlx5_flow_list_flush(struct rte_eth_dev *dev, enum mlx5_flow_type type,
+@@ -8104,7 +8104,6 @@ mlx5_flow_list_flush(struct rte_eth_dev *dev, enum mlx5_flow_type type,
@@ -30 +32 @@
- MLX5_IPOOL_FOREACH(priv->flows[type], fidx, flow) {
+
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix GRE flow match with SWS' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (42 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/mlx5: fix flush of non-template flow rules' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix deadlock when writing i225 register' " Xueming Li
` (47 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Maayan Kashani; +Cc: xuemingl, Bing Zhao, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b81990ea04c23689ce76df612e7ada1eb9c6de76
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b81990ea04c23689ce76df612e7ada1eb9c6de76 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 09c7068339..80edb4e966 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -9476,23 +9476,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);
+ else
+ MLX5_SET(fte_match_set_lyr_2_4, headers_v, ip_protocol,
+ IPPROTO_GRE);
+ /* HWS mask logic only */
+ if (key_type & MLX5_SET_MATCHER_HS_M) {
if (!gre_m)
gre_m = &rte_flow_item_gre_mask;
gre_v = gre_m;
- } 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) {
- gre_m = &rte_flow_item_gre_mask;
- }
- if (key_type == MLX5_SET_MATCHER_HS_V)
- gre_m = gre_v;
+ } 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.306600159 +0800
+++ 0044-net-mlx5-fix-GRE-flow-match-with-SWS.patch 2025-02-18 19:39:00.608244051 +0800
@@ -1 +1 @@
-From 05db99c117e36c0cd28cda8f558309efd20055da Mon Sep 17 00:00:00 2001
+From b81990ea04c23689ce76df612e7ada1eb9c6de76 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 05db99c117e36c0cd28cda8f558309efd20055da ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index 41ebe0b61a..633c41e358 100644
+index 09c7068339..80edb4e966 100644
@@ -30 +32 @@
-@@ -9839,23 +9839,26 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
+@@ -9476,23 +9476,26 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix deadlock when writing i225 register' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (43 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/mlx5: fix GRE flow match with SWS' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix infinite loop' " Xueming Li
` (46 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Dima Ruinskiy; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c18541adee3de649ebd672acc4166fcb499ab608
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c18541adee3de649ebd672acc4166fcb499ab608 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 6984cb9940..acf910ab3b 100644
--- a/.mailmap
+++ b/.mailmap
@@ -337,6 +337,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.350614651 +0800
+++ 0045-net-igc-base-fix-deadlock-when-writing-i225-register.patch 2025-02-18 19:39:00.618244049 +0800
@@ -1 +1 @@
-From f05363dceac78694638f86a8af1acd173ca9e3e0 Mon Sep 17 00:00:00 2001
+From c18541adee3de649ebd672acc4166fcb499ab608 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f05363dceac78694638f86a8af1acd173ca9e3e0 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +19,2 @@
- .mailmap | 1 +
- drivers/net/intel/igc/base/igc_phy.c | 4 ----
+ .mailmap | 1 +
+ drivers/net/igc/base/igc_phy.c | 4 ----
@@ -22 +24 @@
-index dc3dd9e5a2..9ea6bd1df3 100644
+index 6984cb9940..acf910ab3b 100644
@@ -25 +27 @@
-@@ -358,6 +358,7 @@ Dhruv Tripathi <dhruv.tripathi@arm.com>
+@@ -337,6 +337,7 @@ Dheemanth Mallikarjun <dheemanthm@vmware.com>
@@ -33 +35 @@
-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 +37,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] 138+ messages in thread
* patch 'net/igc/base: fix infinite loop' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (44 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix deadlock when writing i225 register' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix bitwise operation type' " Xueming Li
` (45 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Dima Ruinskiy; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5509313e7a3a1f7649f9ea6e4b0f03023c221e02
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5509313e7a3a1f7649f9ea6e4b0f03023c221e02 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 17a1573064..8f01f8d918 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -333,8 +333,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.385297545 +0800
+++ 0046-net-igc-base-fix-infinite-loop.patch 2025-02-18 19:39:00.628244048 +0800
@@ -1 +1 @@
-From 532e495e4a20cf09e1f42d01bcbe782f7e2bb03f Mon Sep 17 00:00:00 2001
+From 5509313e7a3a1f7649f9ea6e4b0f03023c221e02 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 532e495e4a20cf09e1f42d01bcbe782f7e2bb03f ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_i225.c | 11 +++++++++--
+ drivers/net/igc/base/igc_i225.c | 11 +++++++++--
@@ -19 +21 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -21,2 +23,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix bitwise operation type' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (45 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix infinite loop' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: increase PHY power up delay' " Xueming Li
` (44 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Przemyslaw Ciesielski
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=db6aeefc21daa8e53e2e35defbf11db8347b8081
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From db6aeefc21daa8e53e2e35defbf11db8347b8081 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 8f01f8d918..1277f59885 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -344,7 +344,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.417389739 +0800
+++ 0047-net-igc-base-fix-bitwise-operation-type.patch 2025-02-18 19:39:00.628244048 +0800
@@ -1 +1 @@
-From bf51125b75b18a3a43439edb2c6e1f0b14793d51 Mon Sep 17 00:00:00 2001
+From db6aeefc21daa8e53e2e35defbf11db8347b8081 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bf51125b75b18a3a43439edb2c6e1f0b14793d51 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 +-
+ drivers/net/igc/base/igc_i225.c | 2 +-
@@ -19 +21 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -21,2 +23,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: increase PHY power up delay' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (46 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix bitwise operation type' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: reset loop variable' " Xueming Li
` (43 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Sasha Neftin; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=57259a101251c4a56d155628f77f5c357dbce621
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 57259a101251c4a56d155628f77f5c357dbce621 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.447288334 +0800
+++ 0048-net-igc-base-increase-PHY-power-up-delay.patch 2025-02-18 19:39:00.628244048 +0800
@@ -1 +1 @@
-From a8a4acb46fa6bbe0a669b4eca0f73f112a7646ac Mon Sep 17 00:00:00 2001
+From 57259a101251c4a56d155628f77f5c357dbce621 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a8a4acb46fa6bbe0a669b4eca0f73f112a7646ac ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_phy.c | 1 +
+ drivers/net/igc/base/igc_phy.c | 1 +
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/igc/base: reset loop variable' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (47 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: increase PHY power up delay' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix LTR for i225' " Xueming Li
` (42 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Sasha Neftin; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d50c5a9ace9d836d20e57b1ed41c87a54bbdeb01
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d50c5a9ace9d836d20e57b1ed41c87a54bbdeb01 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 1277f59885..003c060215 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -565,6 +565,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.481714328 +0800
+++ 0049-net-igc-base-reset-loop-variable.patch 2025-02-18 19:39:00.628244048 +0800
@@ -1 +1 @@
-From 60dca8e0f6b2d8526dc9dc8b54e59b5d68964e8e Mon Sep 17 00:00:00 2001
+From d50c5a9ace9d836d20e57b1ed41c87a54bbdeb01 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 60dca8e0f6b2d8526dc9dc8b54e59b5d68964e8e ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
- drivers/net/intel/igc/base/igc_i225.c | 1 +
+ drivers/net/igc/base/igc_i225.c | 1 +
@@ -21 +23 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -23,2 +25,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix LTR for i225' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (48 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: reset loop variable' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix typo in LTR calculation' " Xueming Li
` (41 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Sasha Neftin; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c6cf6d3f9760c8788b2fb76f4eff1f42b41aace7
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c6cf6d3f9760c8788b2fb76f4eff1f42b41aace7 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 003c060215..e701d00f80 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1071,7 +1071,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.512308323 +0800
+++ 0050-net-igc-base-fix-LTR-for-i225.patch 2025-02-18 19:39:00.638244046 +0800
@@ -1 +1 @@
-From 6a304bc65269cfd86193663e9b94c73299b54d00 Mon Sep 17 00:00:00 2001
+From c6cf6d3f9760c8788b2fb76f4eff1f42b41aace7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6a304bc65269cfd86193663e9b94c73299b54d00 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 ++
+ drivers/net/igc/base/igc_i225.c | 2 ++
@@ -19 +21 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -21,2 +23,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix typo in LTR calculation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (49 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix LTR for i225' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix unused value' " Xueming Li
` (40 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Dima Ruinskiy; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=705c1170bc39b4fa436aefd91fd705179f549c94
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 705c1170bc39b4fa436aefd91fd705179f549c94 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 e701d00f80..c7c2ec8ffe 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1086,7 +1086,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.543004918 +0800
+++ 0051-net-igc-base-fix-typo-in-LTR-calculation.patch 2025-02-18 19:39:00.638244046 +0800
@@ -1 +1 @@
-From ce11274c5c7188322cc141cdce8cd0680e76f79f Mon Sep 17 00:00:00 2001
+From 705c1170bc39b4fa436aefd91fd705179f549c94 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ce11274c5c7188322cc141cdce8cd0680e76f79f ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
- drivers/net/intel/igc/base/igc_i225.c | 2 +-
+ drivers/net/igc/base/igc_i225.c | 2 +-
@@ -21 +23 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -23,2 +25,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix unused value' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (50 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix typo in LTR calculation' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix semaphore timeout " Xueming Li
` (39 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Dima Ruinskiy; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ef2e66caed01481bea22fcb5f75a2dc2fa4ef12c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ef2e66caed01481bea22fcb5f75a2dc2fa4ef12c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 c7c2ec8ffe..23c68a3948 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -1114,10 +1114,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.574924312 +0800
+++ 0052-net-igc-base-fix-unused-value.patch 2025-02-18 19:39:00.638244046 +0800
@@ -1 +1 @@
-From c506cc8305b4ca17bae903a54daaeaf5b7005038 Mon Sep 17 00:00:00 2001
+From ef2e66caed01481bea22fcb5f75a2dc2fa4ef12c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c506cc8305b4ca17bae903a54daaeaf5b7005038 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
- drivers/net/intel/igc/base/igc_i225.c | 4 +---
+ drivers/net/igc/base/igc_i225.c | 4 +---
@@ -21 +23 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -23,2 +25,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix semaphore timeout value' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (51 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix unused value' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix iterator type' " Xueming Li
` (38 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Pawel Malinowski; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=1bede44e32af68399255b39b605f8af624d33f29
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 1bede44e32af68399255b39b605f8af624d33f29 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 280570b157..3cb2f430c5 100644
--- a/drivers/net/igc/base/igc_defines.h
+++ b/drivers/net/igc/base/igc_defines.h
@@ -525,6 +525,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 23c68a3948..7352ba240a 100644
--- a/drivers/net/igc/base/igc_i225.c
+++ b/drivers/net/igc/base/igc_i225.c
@@ -388,7 +388,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.606733607 +0800
+++ 0053-net-igc-base-fix-semaphore-timeout-value.patch 2025-02-18 19:39:00.638244046 +0800
@@ -1 +1 @@
-From 7caabb9834bc9596190c03279eae8980b1c24800 Mon Sep 17 00:00:00 2001
+From 1bede44e32af68399255b39b605f8af624d33f29 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7caabb9834bc9596190c03279eae8980b1c24800 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +24,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 +28 @@
-diff --git a/drivers/net/intel/igc/base/igc_defines.h b/drivers/net/intel/igc/base/igc_defines.h
+diff --git a/drivers/net/igc/base/igc_defines.h b/drivers/net/igc/base/igc_defines.h
@@ -28,2 +30,2 @@
---- a/drivers/net/intel/igc/base/igc_defines.h
-+++ b/drivers/net/intel/igc/base/igc_defines.h
+--- a/drivers/net/igc/base/igc_defines.h
++++ b/drivers/net/igc/base/igc_defines.h
@@ -38 +40 @@
-diff --git a/drivers/net/intel/igc/base/igc_i225.c b/drivers/net/intel/igc/base/igc_i225.c
+diff --git a/drivers/net/igc/base/igc_i225.c b/drivers/net/igc/base/igc_i225.c
@@ -40,2 +42,2 @@
---- a/drivers/net/intel/igc/base/igc_i225.c
-+++ b/drivers/net/intel/igc/base/igc_i225.c
+--- a/drivers/net/igc/base/igc_i225.c
++++ b/drivers/net/igc/base/igc_i225.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/igc/base: fix iterator type' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (52 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix semaphore timeout " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix MAC address hash bit shift' " Xueming Li
` (37 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Amir Avivi; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6268d4391b5c00a1b43c5f5ab7e106bf0b80ce9e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6268d4391b5c00a1b43c5f5ab7e106bf0b80ce9e 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 acf910ab3b..b479ac34a0 100644
--- a/.mailmap
+++ b/.mailmap
@@ -80,6 +80,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.639875401 +0800
+++ 0054-net-igc-base-fix-iterator-type.patch 2025-02-18 19:39:00.648244044 +0800
@@ -1 +1 @@
-From c7da9dab82190564d68f0d928ba3e381dcc74d9f Mon Sep 17 00:00:00 2001
+From 6268d4391b5c00a1b43c5f5ab7e106bf0b80ce9e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c7da9dab82190564d68f0d928ba3e381dcc74d9f ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +19,2 @@
- .mailmap | 1 +
- drivers/net/intel/igc/base/igc_phy.c | 3 ++-
+ .mailmap | 1 +
+ drivers/net/igc/base/igc_phy.c | 3 ++-
@@ -22 +24 @@
-index 9ea6bd1df3..ab03985acd 100644
+index acf910ab3b..b479ac34a0 100644
@@ -25 +27 @@
-@@ -84,6 +84,7 @@ Amaranath Somalapuram <asomalap@amd.com>
+@@ -80,6 +80,7 @@ Amaranath Somalapuram <asomalap@amd.com>
@@ -33 +35 @@
-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 +37,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] 138+ messages in thread
* patch 'net/igc/base: fix MAC address hash bit shift' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (53 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix iterator type' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix data type in MAC hash' " Xueming Li
` (36 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Aleksandr Loktionov
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=a9583ad550e01cef45cf1e0b18c36665f8a964fe
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From a9583ad550e01cef45cf1e0b18c36665f8a964fe 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.673692295 +0800
+++ 0055-net-igc-base-fix-MAC-address-hash-bit-shift.patch 2025-02-18 19:39:00.648244044 +0800
@@ -1 +1 @@
-From bccccacfb6f6f2e84a24c6733c7e3d4af05f73b5 Mon Sep 17 00:00:00 2001
+From a9583ad550e01cef45cf1e0b18c36665f8a964fe Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bccccacfb6f6f2e84a24c6733c7e3d4af05f73b5 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
- drivers/net/intel/igc/base/igc_mac.c | 4 ++--
+ drivers/net/igc/base/igc_mac.c | 4 ++--
@@ -24 +26 @@
-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 +28,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] 138+ messages in thread
* patch 'net/igc/base: fix data type in MAC hash' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (54 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix MAC address hash bit shift' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix NVM data type in bit shift' " Xueming Li
` (35 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Barbara Skobiej; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e5a7115f56331726dbfdc910e5b333ac8ff12c5a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e5a7115f56331726dbfdc910e5b333ac8ff12c5a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.705312790 +0800
+++ 0056-net-igc-base-fix-data-type-in-MAC-hash.patch 2025-02-18 19:39:00.648244044 +0800
@@ -1 +1 @@
-From cad5c51ec3a0e965d6d4bb98166890499597f23a Mon Sep 17 00:00:00 2001
+From e5a7115f56331726dbfdc910e5b333ac8ff12c5a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit cad5c51ec3a0e965d6d4bb98166890499597f23a ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_mac.c | 6 ++++--
+ drivers/net/igc/base/igc_mac.c | 6 ++++--
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/igc/base: fix NVM data type in bit shift' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (55 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix data type in MAC hash' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix semaphore timeout value' " Xueming Li
` (34 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Przemyslaw Ciesielski
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=fed480fbadeab2f9284a22535016d365f9530994
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From fed480fbadeab2f9284a22535016d365f9530994 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.740686284 +0800
+++ 0057-net-igc-base-fix-NVM-data-type-in-bit-shift.patch 2025-02-18 19:39:00.648244044 +0800
@@ -1 +1 @@
-From d6ad4cdad361558bfb2c04112bd6650debbc9c7f Mon Sep 17 00:00:00 2001
+From fed480fbadeab2f9284a22535016d365f9530994 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d6ad4cdad361558bfb2c04112bd6650debbc9c7f ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/igc/base/igc_nvm.c | 4 ++--
+ drivers/net/igc/base/igc_nvm.c | 4 ++--
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/e1000/base: fix semaphore timeout value' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (56 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/igc/base: fix NVM data type in bit shift' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: correct mPHY access logic' " Xueming Li
` (33 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Pawel Malinowski; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=7379e53203fa403e448a13b26253767eba721731
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 7379e53203fa403e448a13b26253767eba721731 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.772001278 +0800
+++ 0058-net-e1000-base-fix-semaphore-timeout-value.patch 2025-02-18 19:39:00.658244042 +0800
@@ -1 +1 @@
-From c8bcaf0f2a02995b447c121e860fd550b9c55114 Mon Sep 17 00:00:00 2001
+From 7379e53203fa403e448a13b26253767eba721731 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c8bcaf0f2a02995b447c121e860fd550b9c55114 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +24,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 +28 @@
-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 +30,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 +40 @@
-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 +42,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] 138+ messages in thread
* patch 'net/e1000/base: correct mPHY access logic' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (57 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix semaphore timeout value' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix iterator type' " Xueming Li
` (32 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: xuemingl, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5ea60d834c1800358f8f050b34321c3df7388693
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5ea60d834c1800358f8f050b34321c3df7388693 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.805349973 +0800
+++ 0059-net-e1000-base-correct-mPHY-access-logic.patch 2025-02-18 19:39:00.658244042 +0800
@@ -1 +1 @@
-From 62adddef81d4ddb9789e9f0e5a0899b399bd5d8d Mon Sep 17 00:00:00 2001
+From 5ea60d834c1800358f8f050b34321c3df7388693 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 62adddef81d4ddb9789e9f0e5a0899b399bd5d8d ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
- drivers/net/intel/e1000/base/e1000_phy.c | 22 ++++++++++------------
+ drivers/net/e1000/base/e1000_phy.c | 22 ++++++++++------------
@@ -22 +24 @@
-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 +26,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] 138+ messages in thread
* patch 'net/e1000/base: fix iterator type' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (58 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: correct mPHY access logic' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix MAC address hash bit shift' " Xueming Li
` (31 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Amir Avivi; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=44d281ffbcc3d8dba59210851bb6d8a030facbb3
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 44d281ffbcc3d8dba59210851bb6d8a030facbb3 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.838044567 +0800
+++ 0060-net-e1000-base-fix-iterator-type.patch 2025-02-18 19:39:00.658244042 +0800
@@ -1 +1 @@
-From 3d3605399170d5871ba80448de236f7acbbe8f98 Mon Sep 17 00:00:00 2001
+From 44d281ffbcc3d8dba59210851bb6d8a030facbb3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3d3605399170d5871ba80448de236f7acbbe8f98 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
- drivers/net/intel/e1000/base/e1000_phy.c | 3 ++-
+ drivers/net/e1000/base/e1000_phy.c | 3 ++-
@@ -20 +22 @@
-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 +24,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] 138+ messages in thread
* patch 'net/e1000/base: fix MAC address hash bit shift' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (59 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix iterator type' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix data type in MAC hash' " Xueming Li
` (30 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Aleksandr Loktionov
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5b1825dc24c291cd19f94bcb92c7947c5cc11e54
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5b1825dc24c291cd19f94bcb92c7947c5cc11e54 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.870345661 +0800
+++ 0061-net-e1000-base-fix-MAC-address-hash-bit-shift.patch 2025-02-18 19:39:00.668244041 +0800
@@ -1 +1 @@
-From 1749e662f68ba6571ed81cd264cffd1107abc307 Mon Sep 17 00:00:00 2001
+From 5b1825dc24c291cd19f94bcb92c7947c5cc11e54 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1749e662f68ba6571ed81cd264cffd1107abc307 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -21,2 +23,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 +27 @@
-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 +29,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 +49 @@
-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 +51,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] 138+ messages in thread
* patch 'net/e1000/base: fix data type in MAC hash' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (60 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix MAC address hash bit shift' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix uninitialized variable' " Xueming Li
` (29 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Barbara Skobiej; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=aa5d1f8824a72dfc6217232c7f372d9c8c985893
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From aa5d1f8824a72dfc6217232c7f372d9c8c985893 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.901986456 +0800
+++ 0062-net-e1000-base-fix-data-type-in-MAC-hash.patch 2025-02-18 19:39:00.668244041 +0800
@@ -1 +1 @@
-From 458734aaac3225d98aeee5f4c45b3d39a7d82949 Mon Sep 17 00:00:00 2001
+From aa5d1f8824a72dfc6217232c7f372d9c8c985893 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 458734aaac3225d98aeee5f4c45b3d39a7d82949 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +18,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 +22 @@
-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 +24,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 +39 @@
-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 +41,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] 138+ messages in thread
* patch 'net/e1000/base: fix uninitialized variable' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (61 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix data type in MAC hash' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix bitwise operation type' " Xueming Li
` (28 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Jakub Buchocki; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ab2ad1b126e0eedf153583c78e87ced7ac03b699
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ab2ad1b126e0eedf153583c78e87ced7ac03b699 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 b479ac34a0..90b3d473b7 100644
--- a/.mailmap
+++ b/.mailmap
@@ -585,6 +585,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.935028950 +0800
+++ 0063-net-e1000-base-fix-uninitialized-variable.patch 2025-02-18 19:39:00.668244041 +0800
@@ -1 +1 @@
-From 4be9a7008efe063fbd326fea9965f946c8969039 Mon Sep 17 00:00:00 2001
+From ab2ad1b126e0eedf153583c78e87ced7ac03b699 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4be9a7008efe063fbd326fea9965f946c8969039 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +18,2 @@
- .mailmap | 1 +
- drivers/net/intel/e1000/base/e1000_vf.c | 2 +-
+ .mailmap | 1 +
+ drivers/net/e1000/base/e1000_vf.c | 2 +-
@@ -21 +23 @@
-index ab03985acd..af83b4e129 100644
+index b479ac34a0..90b3d473b7 100644
@@ -24 +26,2 @@
-@@ -620,6 +620,7 @@ Jacek Piasecki <jacekx.piasecki@intel.com>
+@@ -585,6 +585,7 @@ Jacek Naczyk <jacek.naczyk@intel.com>
+ Jacek Piasecki <jacekx.piasecki@intel.com>
@@ -26 +28,0 @@
- Jack Bond-Preston <jack.bond-preston@foss.arm.com> <jack.bond-preston@arm.com>
@@ -32 +34 @@
-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 +36,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] 138+ messages in thread
* patch 'net/e1000/base: fix bitwise operation type' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (62 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix uninitialized variable' " Xueming Li
@ 2025-02-18 12:34 ` Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix NVM data type in bit shift' " Xueming Li
` (27 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:34 UTC (permalink / raw)
To: Przemyslaw Ciesielski
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e9e13a7032e5230e382c336cc55303220505878a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e9e13a7032e5230e382c336cc55303220505878a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.967446245 +0800
+++ 0064-net-e1000-base-fix-bitwise-operation-type.patch 2025-02-18 19:39:00.668244041 +0800
@@ -1 +1 @@
-From c848457b38851f175893488c0be713995cb19bf2 Mon Sep 17 00:00:00 2001
+From e9e13a7032e5230e382c336cc55303220505878a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c848457b38851f175893488c0be713995cb19bf2 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/e1000/base/e1000_80003es2lan.c | 2 +-
+ drivers/net/e1000/base/e1000_80003es2lan.c | 2 +-
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/e1000/base: fix NVM data type in bit shift' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (63 preceding siblings ...)
2025-02-18 12:34 ` patch 'net/e1000/base: fix bitwise operation type' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix reset for 82580' " Xueming Li
` (26 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Przemyslaw Ciesielski
Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=7b701f1df0774ec43b248b48c2f1d4cf99c596ff
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 7b701f1df0774ec43b248b48c2f1d4cf99c596ff 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:02.998587839 +0800
+++ 0065-net-e1000-base-fix-NVM-data-type-in-bit-shift.patch 2025-02-18 19:39:00.678244039 +0800
@@ -1 +1 @@
-From b932270c66d0179824118afbfd7cfb347ddf07d2 Mon Sep 17 00:00:00 2001
+From 7b701f1df0774ec43b248b48c2f1d4cf99c596ff Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b932270c66d0179824118afbfd7cfb347ddf07d2 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/e1000/base/e1000_nvm.c | 4 ++--
+ drivers/net/e1000/base/e1000_nvm.c | 4 ++--
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/e1000/base: fix reset for 82580' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (64 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/e1000/base: fix NVM data type in bit shift' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix unchecked return' " Xueming Li
` (25 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Barbara Skobiej; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c1bf1797d4abd42b94ae697d0436bc452cdf42bc
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c1bf1797d4abd42b94ae697d0436bc452cdf42bc 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 53900cf8f1..948c80f2fa 100644
--- a/drivers/net/e1000/base/e1000_82575.c
+++ b/drivers/net/e1000/base/e1000_82575.c
@@ -2280,7 +2280,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");
@@ -2345,7 +2345,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.026714635 +0800
+++ 0066-net-e1000-base-fix-reset-for-82580.patch 2025-02-18 19:39:00.678244039 +0800
@@ -1 +1 @@
-From 88a1eb79ef08d309af58ad4921db7200fa7c5073 Mon Sep 17 00:00:00 2001
+From c1bf1797d4abd42b94ae697d0436bc452cdf42bc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 88a1eb79ef08d309af58ad4921db7200fa7c5073 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
- drivers/net/intel/e1000/base/e1000_82575.c | 5 +++--
+ drivers/net/e1000/base/e1000_82575.c | 5 +++--
@@ -20 +22 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_82575.c b/drivers/net/intel/e1000/base/e1000_82575.c
+diff --git a/drivers/net/e1000/base/e1000_82575.c b/drivers/net/e1000/base/e1000_82575.c
@@ -22,2 +24,2 @@
---- a/drivers/net/intel/e1000/base/e1000_82575.c
-+++ b/drivers/net/intel/e1000/base/e1000_82575.c
+--- a/drivers/net/e1000/base/e1000_82575.c
++++ b/drivers/net/e1000/base/e1000_82575.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/e1000/base: fix unchecked return' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (65 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/e1000/base: fix reset for 82580' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: skip management check for 82575' " Xueming Li
` (24 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Dima Ruinskiy; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5e89940b48fea2192a3d213f9b67b43d3642a9ae
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5e89940b48fea2192a3d213f9b67b43d3642a9ae 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.058190129 +0800
+++ 0067-net-e1000-base-fix-unchecked-return.patch 2025-02-18 19:39:00.678244039 +0800
@@ -1 +1 @@
-From b0b6b50c20b03170c83985194fd9acef9467ded6 Mon Sep 17 00:00:00 2001
+From 5e89940b48fea2192a3d213f9b67b43d3642a9ae Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b0b6b50c20b03170c83985194fd9acef9467ded6 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/e1000/base/e1000_ich8lan.c | 2 ++
+ drivers/net/e1000/base/e1000_ich8lan.c | 2 ++
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'net/e1000/base: skip management check for 82575' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (66 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/e1000/base: fix unchecked return' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'common/idpf: fix void function returning a value' " Xueming Li
` (23 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Carolyn Wyborny; +Cc: xuemingl, Anatoly Burakov, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=79196f75abaa248cadbe9dee500bd12dd78acb50
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 79196f75abaa248cadbe9dee500bd12dd78acb50 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.091666723 +0800
+++ 0068-net-e1000-base-skip-management-check-for-82575.patch 2025-02-18 19:39:00.678244039 +0800
@@ -1 +1 @@
-From d107a23f60c6a8b9543c386ecc48abc4f92f50d3 Mon Sep 17 00:00:00 2001
+From 79196f75abaa248cadbe9dee500bd12dd78acb50 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d107a23f60c6a8b9543c386ecc48abc4f92f50d3 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/e1000/base/e1000_base.c | 3 ++-
+ drivers/net/e1000/base/e1000_base.c | 3 ++-
@@ -19 +21 @@
-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 +23,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] 138+ messages in thread
* patch 'common/idpf: fix void function returning a value' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (67 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/e1000/base: skip management check for 82575' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/intel: fix void functions " Xueming Li
` (22 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Andre Muezerie; +Cc: xuemingl, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b60a546487237f2b2c011d921db850c71ba6c5e0
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b60a546487237f2b2c011d921db850c71ba6c5e0 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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/common/idpf/idpf_common_rxtx_avx512.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/common/idpf/idpf_common_rxtx_avx512.c b/drivers/common/idpf/idpf_common_rxtx_avx512.c
index 5abafc729b..617ef092d1 100644
--- a/drivers/common/idpf/idpf_common_rxtx_avx512.c
+++ b/drivers/common/idpf/idpf_common_rxtx_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
@@ -607,8 +609,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);
+ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.120612718 +0800
+++ 0069-common-idpf-fix-void-function-returning-a-value.patch 2025-02-18 19:39:00.688244037 +0800
@@ -1 +1 @@
-From c39e89b467c510923295a73e5b76a6a44c72dd1b Mon Sep 17 00:00:00 2001
+From b60a546487237f2b2c011d921db850c71ba6c5e0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c39e89b467c510923295a73e5b76a6a44c72dd1b ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 6fbfee1b2d..b630d1fcd9 100644
+index 5abafc729b..617ef092d1 100644
@@ -26 +28 @@
-@@ -133,8 +133,10 @@ idpf_singleq_rearm(struct idpf_rx_queue *rxq)
+@@ -137,8 +137,10 @@ idpf_singleq_rearm(struct idpf_rx_queue *rxq)
@@ -39 +41 @@
-@@ -603,8 +605,10 @@ idpf_splitq_rearm(struct idpf_rx_queue *rx_bufq)
+@@ -607,8 +609,10 @@ idpf_splitq_rearm(struct idpf_rx_queue *rx_bufq)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/intel: fix void functions returning a value' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (68 preceding siblings ...)
2025-02-18 12:35 ` patch 'common/idpf: fix void function returning a value' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/intel: fix build with icx' " Xueming Li
` (21 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Andre Muezerie; +Cc: xuemingl, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=774b751b986957a586dbf4f3305021f8c62be09e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 774b751b986957a586dbf4f3305021f8c62be09e 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 2 +-
drivers/net/iavf/iavf_rxtx_vec_avx2.c | 2 +-
drivers/net/ice/ice_rxtx_vec_avx2.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
index 19cf0ac718..3e95a6a1df 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 62fce19dc4..3bf0faf066 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
@@ -24,7 +24,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);
}
#ifndef RTE_LIBRTE_I40E_16BYTE_RX_DESC
diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
index 49d41af953..cdb48438da 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 d6e88dbb29..02bfb9b15d 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.153662913 +0800
+++ 0070-net-intel-fix-void-functions-returning-a-value.patch 2025-02-18 19:39:00.688244037 +0800
@@ -1 +1 @@
-From bc64580a631ee4ad67d7a2a9ae96a63e8d4a02b1 Mon Sep 17 00:00:00 2001
+From 774b751b986957a586dbf4f3305021f8c62be09e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bc64580a631ee4ad67d7a2a9ae96a63e8d4a02b1 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -20,4 +22,4 @@
- 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 +-
+ drivers/net/i40e/i40e_rxtx_vec_avx2.c | 2 +-
+ drivers/net/i40e/i40e_rxtx_vec_avx512.c | 2 +-
+ drivers/net/iavf/iavf_rxtx_vec_avx2.c | 2 +-
+ drivers/net/ice/ice_rxtx_vec_avx2.c | 2 +-
@@ -26,5 +28,5 @@
-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 @@
+diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+index 19cf0ac718..3e95a6a1df 100644
+--- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c
++++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c
+@@ -22,7 +22,7 @@
@@ -39,5 +41,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 @@
+diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+index 62fce19dc4..3bf0faf066 100644
+--- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c
++++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c
+@@ -24,7 +24,7 @@
@@ -52,5 +54,5 @@
-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 @@
+diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/iavf/iavf_rxtx_vec_avx2.c
+index 49d41af953..cdb48438da 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 +67,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 d6e88dbb29..02bfb9b15d 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] 138+ messages in thread
* patch 'net/intel: fix build with icx' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (69 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/intel: fix void functions " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/hns3: fix copper port initialization' " Xueming Li
` (20 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Bruce Richardson; +Cc: xuemingl, Ian Stokes, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=9c13d0d07a36076a1fd7a4fd25b46afcdf70c841
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 9c13d0d07a36076a1fd7a4fd25b46afcdf70c841 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 +++
drivers/net/iavf/meson.build | 3 +++
drivers/net/ice/meson.build | 3 +++
3 files changed, 9 insertions(+)
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index 80171b9dc6..e3b19e60a1 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -71,6 +71,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',
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index a6ce2725c3..982ac2707b 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -50,6 +50,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
iavf_avx512_lib = static_library('iavf_avx512_lib',
'iavf_rxtx_vec_avx512.c',
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index a957fc5d3a..4016ee976b 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -51,6 +51,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
ice_avx512_lib = static_library('ice_avx512_lib',
'ice_rxtx_vec_avx512.c',
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.187417707 +0800
+++ 0071-net-intel-fix-build-with-icx.patch 2025-02-18 19:39:00.688244037 +0800
@@ -1 +1 @@
-From 2641704664267dd3ebe4ad77784ae28440dfaf60 Mon Sep 17 00:00:00 2001
+From 9c13d0d07a36076a1fd7a4fd25b46afcdf70c841 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 2641704664267dd3ebe4ad77784ae28440dfaf60 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -23,12 +25,11 @@
- 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 +++
+ drivers/net/iavf/meson.build | 3 +++
+ drivers/net/ice/meson.build | 3 +++
+ 3 files changed, 9 insertions(+)
+
+diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
+index 80171b9dc6..e3b19e60a1 100644
+--- a/drivers/net/i40e/meson.build
++++ b/drivers/net/i40e/meson.build
+@@ -71,6 +71,9 @@ if arch_subdir == 'x86'
+ avx512_args = [cflags, '-mavx512f', '-mavx512bw']
@@ -43,6 +44,6 @@
-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
+diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
+index a6ce2725c3..982ac2707b 100644
+--- a/drivers/net/iavf/meson.build
++++ b/drivers/net/iavf/meson.build
+@@ -50,6 +50,9 @@ if arch_subdir == 'x86'
+ avx512_args = [cflags, '-mavx512f', '-mavx512bw']
@@ -57,4 +58,4 @@
-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
+diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
+index a957fc5d3a..4016ee976b 100644
+--- a/drivers/net/ice/meson.build
++++ b/drivers/net/ice/meson.build
@@ -62 +63 @@
- avx512_args = cflags + cc_avx512_flags
+ avx512_args = [cflags, '-mavx512f', '-mavx512bw']
@@ -71,14 +71,0 @@
-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] 138+ messages in thread
* patch 'net/hns3: fix copper port initialization' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (70 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/intel: fix build with icx' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/hns3: fix reset timeout' " Xueming Li
` (19 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Dengdui Huang; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e0999f779484a90d6622ffc2644f029329d6185a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e0999f779484a90d6622ffc2644f029329d6185a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 dde27715c0..dd450cddaa 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4852,7 +4852,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];
@@ -4886,6 +4886,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.217410402 +0800
+++ 0072-net-hns3-fix-copper-port-initialization.patch 2025-02-18 19:39:00.698244036 +0800
@@ -1 +1 @@
-From 763546c33ea9600e76790c470d2921808068eb3d Mon Sep 17 00:00:00 2001
+From e0999f779484a90d6622ffc2644f029329d6185a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 763546c33ea9600e76790c470d2921808068eb3d ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 72d1c30a7b..9f7119b734 100644
+index dde27715c0..dd450cddaa 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/hns3: fix reset timeout' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (71 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/hns3: fix copper port initialization' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/cpfl: fix representor parsing log' " Xueming Li
` (18 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Dengdui Huang; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d6d17fcb1e2175c0a6e798c8749b06aa97948e87
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d6d17fcb1e2175c0a6e798c8749b06aa97948e87 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 2c1664485b..62da6dd160 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);
@@ -611,9 +620,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 79a8c1edad..4d707c13b2 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.254276995 +0800
+++ 0073-net-hns3-fix-reset-timeout.patch 2025-02-18 19:39:00.698244036 +0800
@@ -1 +1 @@
-From 9f7c28c5e98062576dfbf555cd5ede7e33d6624b Mon Sep 17 00:00:00 2001
+From d6d17fcb1e2175c0a6e798c8749b06aa97948e87 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9f7c28c5e98062576dfbf555cd5ede7e33d6624b ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 146444e2fa..398b75384e 100644
+index 2c1664485b..62da6dd160 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/cpfl: fix representor parsing log' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (72 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/hns3: fix reset timeout' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " Xueming Li
` (17 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b72de1a305023ba4c040be69aff2d67593a8414b
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b72de1a305023ba4c040be69aff2d67593a8414b Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 5 Feb 2025 08:23:03 -0800
Subject: [PATCH] net/cpfl: fix representor parsing log
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 7501478b95fc79b178fc525246482215a6018651 ]
The log message would always refer to str variable which
is NULL here. Looks like author intended to print original
parameter.
Link: https://pvs-studio.com/en/blog/posts/cpp/1183/
Fixes: 65899b9e6538 ("net/cpfl: parse representor devargs")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/cpfl/cpfl_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
index 7697aea0ce..c24dfba575 100644
--- a/drivers/net/cpfl/cpfl_ethdev.c
+++ b/drivers/net/cpfl/cpfl_ethdev.c
@@ -1576,7 +1576,7 @@ parse_repr(const char *key __rte_unused, const char *value, void *args)
RTE_DIM(eth_da->representor_ports));
done:
if (str == NULL) {
- RTE_LOG(ERR, EAL, "wrong representor format: %s\n", str);
+ PMD_DRV_LOG(ERR, "wrong representor format: %s", value);
return -1;
}
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.284908990 +0800
+++ 0074-net-cpfl-fix-representor-parsing-log.patch 2025-02-18 19:39:00.708244034 +0800
@@ -1 +1 @@
-From 7501478b95fc79b178fc525246482215a6018651 Mon Sep 17 00:00:00 2001
+From b72de1a305023ba4c040be69aff2d67593a8414b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7501478b95fc79b178fc525246482215a6018651 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/cpfl/cpfl_ethdev.c | 2 +-
+ drivers/net/cpfl/cpfl_ethdev.c | 2 +-
@@ -19,5 +21,5 @@
-diff --git a/drivers/net/intel/cpfl/cpfl_ethdev.c b/drivers/net/intel/cpfl/cpfl_ethdev.c
-index 6f6707a0bd..1817221652 100644
---- a/drivers/net/intel/cpfl/cpfl_ethdev.c
-+++ b/drivers/net/intel/cpfl/cpfl_ethdev.c
-@@ -1580,7 +1580,7 @@ parse_repr(const char *key __rte_unused, const char *value, void *args)
+diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
+index 7697aea0ce..c24dfba575 100644
+--- a/drivers/net/cpfl/cpfl_ethdev.c
++++ b/drivers/net/cpfl/cpfl_ethdev.c
+@@ -1576,7 +1576,7 @@ parse_repr(const char *key __rte_unused, const char *value, void *args)
@@ -27 +29 @@
-- PMD_DRV_LOG(ERR, "wrong representor format: %s", str);
+- RTE_LOG(ERR, EAL, "wrong representor format: %s\n", str);
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'raw/cnxk_gpio: fix file descriptor leak' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (73 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/cpfl: fix representor parsing log' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'eal: fix devargs layers parsing out of bounds' " Xueming Li
` (16 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=377196266e55301379293a097d1b864b5d48819c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 377196266e55301379293a097d1b864b5d48819c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.319039184 +0800
+++ 0075-raw-cnxk_gpio-fix-file-descriptor-leak.patch 2025-02-18 19:39:00.708244034 +0800
@@ -1 +1 @@
-From 67f0beaf0f5bf2cf239219c737ed8d93aaaaa673 Mon Sep 17 00:00:00 2001
+From 377196266e55301379293a097d1b864b5d48819c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 67f0beaf0f5bf2cf239219c737ed8d93aaaaa673 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 2f3973a7b5..a0d9942f20 100644
+index 10742b5dc4..907535c08e 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'eal: fix devargs layers parsing out of bounds' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (74 preceding siblings ...)
2025-02-18 12:35 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/qede: fix debug messages array' " Xueming Li
` (15 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=248cf72eda718248d2f6dc7380e7b4d0cfcdbfa3
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 248cf72eda718248d2f6dc7380e7b4d0cfcdbfa3 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.349516179 +0800
+++ 0076-eal-fix-devargs-layers-parsing-out-of-bounds.patch 2025-02-18 19:39:00.708244034 +0800
@@ -1 +1 @@
-From 42f91490ebc97a816ea11ce9c995f455c169a77a Mon Sep 17 00:00:00 2001
+From 248cf72eda718248d2f6dc7380e7b4d0cfcdbfa3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 42f91490ebc97a816ea11ce9c995f455c169a77a ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index a64805b268..dd857fc839 100644
+index fb5d0a293b..2f1515d7c9 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/qede: fix debug messages array' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (75 preceding siblings ...)
2025-02-18 12:35 ` patch 'eal: fix devargs layers parsing out of bounds' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/hinic: fix flow type bitmask overflow' " Xueming Li
` (14 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2ee76ce24899848a129be04a7d77024f64ed340c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 2ee76ce24899848a129be04a7d77024f64ed340c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.380524874 +0800
+++ 0077-net-qede-fix-debug-messages-array.patch 2025-02-18 19:39:00.708244034 +0800
@@ -1 +1 @@
-From 60c68da0392e31ea4c163e0be8f1236a00cd350c Mon Sep 17 00:00:00 2001
+From 2ee76ce24899848a129be04a7d77024f64ed340c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 60c68da0392e31ea4c163e0be8f1236a00cd350c ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/hinic: fix flow type bitmask overflow' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (76 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/qede: fix debug messages array' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " Xueming Li
` (13 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c7fe575456e57cd305d332209e0944f664877746
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c7fe575456e57cd305d332209e0944f664877746 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 d1a564a163..9441525aa2 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.416644567 +0800
+++ 0078-net-hinic-fix-flow-type-bitmask-overflow.patch 2025-02-18 19:39:00.718244032 +0800
@@ -1 +1 @@
-From a357d5b703253b5920aba808a24877386a22720e Mon Sep 17 00:00:00 2001
+From c7fe575456e57cd305d332209e0944f664877746 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a357d5b703253b5920aba808a24877386a22720e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 8fdd5a35be..6b1ca6ff88 100644
+index d1a564a163..9441525aa2 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/dpaa2_sec: fix bitmask truncation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (77 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/hinic: fix flow type bitmask overflow' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'crypto/dpaa_sec: " Xueming Li
` (12 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ea50d3b95bb31fb24e608b3c9bb4811c7c5b2f54
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ea50d3b95bb31fb24e608b3c9bb4811c7c5b2f54 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 bd5590c02d..b9826c4fcf 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -1461,8 +1461,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);
@@ -1751,7 +1751,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;
}
@@ -4051,7 +4051,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.449900662 +0800
+++ 0079-crypto-dpaa2_sec-fix-bitmask-truncation.patch 2025-02-18 19:39:00.718244032 +0800
@@ -1 +1 @@
-From 013ddc85bff5fdb85eb6006315ebdaa0c12eeece Mon Sep 17 00:00:00 2001
+From ea50d3b95bb31fb24e608b3c9bb4811c7c5b2f54 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 013ddc85bff5fdb85eb6006315ebdaa0c12eeece ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index ec6577f64c..7ad8fd47dd 100644
+index bd5590c02d..b9826c4fcf 100644
@@ -24 +26 @@
-@@ -1491,8 +1491,8 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1461,8 +1461,8 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -35 +37 @@
-@@ -1772,7 +1772,7 @@ dpaa2_sec_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
+@@ -1751,7 +1751,7 @@ dpaa2_sec_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
@@ -44 +46 @@
-@@ -4055,7 +4055,7 @@ dpaa2_sec_process_atomic_event(struct qbman_swp *swp __rte_unused,
+@@ -4051,7 +4051,7 @@ dpaa2_sec_process_atomic_event(struct qbman_swp *swp __rte_unused,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/dpaa_sec: fix bitmask truncation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (78 preceding siblings ...)
2025-02-18 12:35 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'event/dpaa: " Xueming Li
` (11 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2327043ff494d807aaaec57f42b2c5d78389c8a7
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 2327043ff494d807aaaec57f42b2c5d78389c8a7 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 131cd90c94..502e4fbed1 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -1903,13 +1903,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);
}
}
@@ -3447,7 +3446,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.484912756 +0800
+++ 0080-crypto-dpaa_sec-fix-bitmask-truncation.patch 2025-02-18 19:39:00.718244032 +0800
@@ -1 +1 @@
-From 7c18f573c1f5368f70e6e956c4ba0c6f97b19cb1 Mon Sep 17 00:00:00 2001
+From 2327043ff494d807aaaec57f42b2c5d78389c8a7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7c18f573c1f5368f70e6e956c4ba0c6f97b19cb1 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 3fa88ca968..e117cd77a6 100644
+index 131cd90c94..502e4fbed1 100644
@@ -25 +27 @@
-@@ -1907,13 +1907,12 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1903,13 +1903,12 @@ dpaa_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -41 +43 @@
-@@ -3500,7 +3499,7 @@ dpaa_sec_process_atomic_event(void *event,
+@@ -3447,7 +3446,7 @@ dpaa_sec_process_atomic_event(void *event,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'event/dpaa: fix bitmask truncation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (79 preceding siblings ...)
2025-02-18 12:35 ` patch 'crypto/dpaa_sec: " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/dpaa: " Xueming Li
` (10 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=0c943314f2fb50d446cbe0635816d3f68fc5e3d4
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 0c943314f2fb50d446cbe0635816d3f68fc5e3d4 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 46a9b88c73..6b931e8054 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.517993150 +0800
+++ 0081-event-dpaa-fix-bitmask-truncation.patch 2025-02-18 19:39:00.728244030 +0800
@@ -1 +1 @@
-From a82888ed6edc599f82263a1bd067a7edb7cceeee Mon Sep 17 00:00:00 2001
+From 0c943314f2fb50d446cbe0635816d3f68fc5e3d4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a82888ed6edc599f82263a1bd067a7edb7cceeee ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 853cc1ecf9..400e0ecd1c 100644
+index 46a9b88c73..6b931e8054 100644
@@ -21 +23 @@
-@@ -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 +32 @@
-@@ -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 +46 @@
-@@ -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] 138+ messages in thread
* patch 'net/dpaa: fix bitmask truncation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (80 preceding siblings ...)
2025-02-18 12:35 ` patch 'event/dpaa: " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/dpaa2: " Xueming Li
` (9 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e32bf2b78128db48cfff0aa83e18a301e649ce5a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e32bf2b78128db48cfff0aa83e18a301e649ce5a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.549323745 +0800
+++ 0082-net-dpaa-fix-bitmask-truncation.patch 2025-02-18 19:39:00.728244030 +0800
@@ -1 +1 @@
-From 8f64c187ad8e4e0b953439b2ce92d8573721eda3 Mon Sep 17 00:00:00 2001
+From e32bf2b78128db48cfff0aa83e18a301e649ce5a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8f64c187ad8e4e0b953439b2ce92d8573721eda3 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 247e7b92ba..05bd73becf 100644
+index 018d55bbdc..31412c0715 100644
@@ -25 +27 @@
-@@ -842,7 +842,7 @@ dpaa_rx_cb_atomic(void *event,
+@@ -683,7 +683,7 @@ dpaa_rx_cb_atomic(void *event,
@@ -34 +36 @@
-@@ -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] 138+ messages in thread
* patch 'net/dpaa2: fix bitmask truncation' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (81 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/dpaa: " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'net/qede: fix nested loops' " Xueming Li
` (8 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, Hemant Agrawal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6fc5a6901a4ee4a9ccb5ce242c20e4fc4b7a0c36
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6fc5a6901a4ee4a9ccb5ce242c20e4fc4b7a0c36 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 b64232b88f..f65603aa09 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -923,7 +923,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;
}
@@ -1304,7 +1304,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;
}
@@ -1543,7 +1543,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.581705839 +0800
+++ 0083-net-dpaa2-fix-bitmask-truncation.patch 2025-02-18 19:39:00.728244030 +0800
@@ -1 +1 @@
-From e4591c38b50e23fc6ac6b73803e78d49142ecf57 Mon Sep 17 00:00:00 2001
+From 6fc5a6901a4ee4a9ccb5ce242c20e4fc4b7a0c36 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e4591c38b50e23fc6ac6b73803e78d49142ecf57 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index bfb5542bbc..cad15d8f75 100644
+index b64232b88f..f65603aa09 100644
@@ -25 +27 @@
-@@ -933,7 +933,7 @@ dpaa2_dev_process_atomic_event(struct qbman_swp *swp __rte_unused,
+@@ -923,7 +923,7 @@ dpaa2_dev_process_atomic_event(struct qbman_swp *swp __rte_unused,
@@ -34 +36 @@
-@@ -1317,7 +1317,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
+@@ -1304,7 +1304,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
@@ -43 +45 @@
-@@ -1575,7 +1575,7 @@ dpaa2_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
+@@ -1543,7 +1543,7 @@ dpaa2_set_enqueue_descriptor(struct dpaa2_queue *dpaa2_q,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/qede: fix nested loops' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (82 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/dpaa2: " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'examples/l3fwd: fix socket ID check' " Xueming Li
` (7 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=14ee2e354918873110f7d602138c08fceff0f485
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 14ee2e354918873110f7d602138c08fceff0f485 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.613071934 +0800
+++ 0084-net-qede-fix-nested-loops.patch 2025-02-18 19:39:00.728244030 +0800
@@ -1 +1 @@
-From c8b3833965dc84914e94776cadfc8fb48c34459b Mon Sep 17 00:00:00 2001
+From 14ee2e354918873110f7d602138c08fceff0f485 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c8b3833965dc84914e94776cadfc8fb48c34459b ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'examples/l3fwd: fix socket ID check' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (83 preceding siblings ...)
2025-02-18 12:35 ` patch 'net/qede: fix nested loops' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'common/cnxk: fix null " Xueming Li
` (6 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=69dc0d8ed261b364449f78cb1ad2e727e0c3fc10
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 69dc0d8ed261b364449f78cb1ad2e727e0c3fc10 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 7640b5a9a3..b11336e0b9 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -1411,8 +1411,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 a239869ada..56d295d76f 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -307,8 +307,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.643829128 +0800
+++ 0085-examples-l3fwd-fix-socket-ID-check.patch 2025-02-18 19:39:00.738244029 +0800
@@ -1 +1 @@
-From a7216f081767c7259dd3fba5eda0ca7b0bcb4595 Mon Sep 17 00:00:00 2001
+From 69dc0d8ed261b364449f78cb1ad2e727e0c3fc10 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a7216f081767c7259dd3fba5eda0ca7b0bcb4595 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index d279e664b3..e27b8531b5 100644
+index 7640b5a9a3..b11336e0b9 100644
@@ -28 +30 @@
-@@ -1412,8 +1412,8 @@ check_lcore_params(void)
+@@ -1411,8 +1411,8 @@ check_lcore_params(void)
@@ -40 +42 @@
-index 994b7dd8e5..ae3b4f6439 100644
+index a239869ada..56d295d76f 100644
@@ -43 +45 @@
-@@ -311,8 +311,9 @@ check_lcore_params(void)
+@@ -307,8 +307,9 @@ check_lcore_params(void)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'common/cnxk: fix null check' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (84 preceding siblings ...)
2025-02-18 12:35 ` patch 'examples/l3fwd: fix socket ID check' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'eal/linux: remove useless assignments' " Xueming Li
` (5 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b1f0f150ca2f9fc29c9a6f1607fb432deb320869
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b1f0f150ca2f9fc29c9a6f1607fb432deb320869 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.674812223 +0800
+++ 0086-common-cnxk-fix-null-check.patch 2025-02-18 19:39:00.738244029 +0800
@@ -1 +1 @@
-From 1bab0289c6a58c3847ffbde2718b73a9b988deca Mon Sep 17 00:00:00 2001
+From b1f0f150ca2f9fc29c9a6f1607fb432deb320869 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1bab0289c6a58c3847ffbde2718b73a9b988deca ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 882cf65474..db70bafd9b 100644
+index e966494e21..3d674dbe84 100644
@@ -21 +23 @@
-@@ -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] 138+ messages in thread
* patch 'eal/linux: remove useless assignments' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (85 preceding siblings ...)
2025-02-18 12:35 ` patch 'common/cnxk: fix null " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-02-18 12:35 ` patch 'mempool: fix errno in empty create' " Xueming Li
` (4 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2a8873d4ce501d6c623ed204b04d34f54d8c91a9
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 2a8873d4ce501d6c623ed204b04d34f54d8c91a9 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.706393117 +0800
+++ 0087-eal-linux-remove-useless-assignments.patch 2025-02-18 19:39:00.738244029 +0800
@@ -1 +1 @@
-From 36128ec5d93591700b72f3fc01bfe6216eaee905 Mon Sep 17 00:00:00 2001
+From 2a8873d4ce501d6c623ed204b04d34f54d8c91a9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 36128ec5d93591700b72f3fc01bfe6216eaee905 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index e63f24d108..be97f56424 100644
+index c0ba98852b..0d9053b409 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'mempool: fix errno in empty create' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (86 preceding siblings ...)
2025-02-18 12:35 ` patch 'eal/linux: remove useless assignments' " Xueming Li
@ 2025-02-18 12:35 ` Xueming Li
2025-04-08 7:44 ` patch " Xueming Li
` (3 subsequent siblings)
91 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-02-18 12:35 UTC (permalink / raw)
To: Ariel Otilibili; +Cc: xuemingl, Chengwen Feng, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5a7e0e1cfe70bc32fc87ef7141fac01bc27ae73f
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5a7e0e1cfe70bc32fc87ef7141fac01bc27ae73f 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 7a7a9bf6db..038bd967ab 100644
--- a/lib/mempool/rte_mempool.c
+++ b/lib/mempool/rte_mempool.c
@@ -927,8 +927,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-02-18 19:39:03.739092212 +0800
+++ 0088-mempool-fix-errno-in-empty-create.patch 2025-02-18 19:39:00.738244029 +0800
@@ -1 +1 @@
-From a81d8ceff4e961995c78df6dbc9353dbbfbd8c32 Mon Sep 17 00:00:00 2001
+From 5a7e0e1cfe70bc32fc87ef7141fac01bc27ae73f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a81d8ceff4e961995c78df6dbc9353dbbfbd8c32 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index d8e39e5c20..1e4f24783c 100644
+index 7a7a9bf6db..038bd967ab 100644
@@ -26 +28 @@
-@@ -928,8 +928,10 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
+@@ -927,8 +927,10 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (87 preceding siblings ...)
2025-02-18 12:35 ` patch 'mempool: fix errno in empty create' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'ci: build with MSVC in GHA' " Xueming Li
` (13 more replies)
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (2 subsequent siblings)
91 siblings, 14 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Xueming Li; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=01e066b31661fe07fcf59ddc1b320cc2e5e44b04
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 01e066b31661fe07fcf59ddc1b320cc2e5e44b04 Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@nvidia.com>
Date: Tue, 8 Apr 2025 15:39:05 +0800
Subject: [PATCH] *** SUBJECT HERE ***
Cc: Xueming Li <xuemingl@nvidia.com>
*** BLURB HERE ***
Alexander Kozyrev (1):
net/mlx5/hws: fix fragmented packet type matching
Anatoly Burakov (2):
net/e1000: fix crashes in secondary processes
net/ixgbe: fix crashes in secondary processes
Andre Muezerie (1):
stack: fix pop in C11 implementation
Arkadiusz Kusztal (2):
test/crypto: fix check for OOP header data
crypto/qat: fix SM3 state size
Bruce Richardson (4):
test/dma: fix pointers in IOVA as PA mode
net/iavf: check interrupt registration failure
net/iavf: fix crash on app exit on FreeBSD
eal: fix undetected NUMA nodes
Chengwen Feng (2):
app/testpmd: show all DCB priority TC map
app/testpmd: avoid crash in DCB config
David Marchand (2):
ci: build with MSVC in GHA
net/mlx5: fix leak in HWS flow counter action
Gowrishankar Muthukrishnan (4):
vhost/crypto: skip fetch before vring init
examples/vhost_crypto: fix user callbacks
crypto/cnxk: fix asymmetric operation status code
crypto/openssl: validate incorrect RSA signature
Gregory Etelson (1):
net/mlx5: fix IPIP tunnel verification
Long Li (3):
net/netvsc: scan all net devices under the PCI device
net/netvsc: remove device if its net devices removed
net/mana: fix multi-process tracking
Long Wu (1):
net/nfp: fix VF link speed problem
Maayan Kashani (5):
net/mlx5: fix hairpin queue release
net/mlx5: fix LACP packet handling in isolated mode
net/mlx5/hws: fix crash using represented port without ID
net/mlx5/hws: fix GTP flags matching
net/mlx5: fix GRE matching on root table
Matthew Smith (1):
net/ice: fix dropped packets when using VRRP
Mingjin Ye (1):
net/ixgbe: fix minimum Rx/Tx descriptors
Nicolas Chautru (1):
test/bbdev: update FFT test vectors
Nithin Dabilpuram (1):
common/cnxk: fix inbound IPsec SA setup
Nithinsen Kaithakadan (1):
examples/ipsec-secgw: fix IV length in CTR 192/256
Praveen Kaligineedi (1):
net/gve: allocate Rx QPL pages using malloc
Shani Peretz (1):
bus/pci: fix registered device name
Shaokai Zhang (2):
test/crypto: fix AES-ECB test lengths
test/crypto: remove unused variable
Shijith Thotton (1):
test/event: fix number of queues in eventdev conf
Stephen Hemminger (4):
doc: fix feature flags for queue start/stop
app/testpmd: fix out-of-bound reference in offload config
pdump: clear statistics when enabled
examples/ptpclient: fix message parsing
Tejasree Kondoj (1):
examples/ipsec-secgw: fix cryptodev and eventdev IDs
Viacheslav Ovsiienko (1):
net/mlx5: fix hardware packet type translation
Vladimir Medvedkin (1):
net/ice: fix flow engines order
Xueming Li (2):
fix ptp
test/crypto: fix backport merge
Yang Ming (1):
net/iavf: fix mbuf release in Arm multi-process
Yunjian Wang (1):
vhost: check descriptor chains length
Zaiyu Wang (1):
net/txgbe: remove useless condition for SW-FW sync
.github/workflows/build.yml | 38 +
.mailmap | 2 +
app/test-bbdev/test_vectors/fft_9.data | 870 ------------------
app/test-bbdev/test_vectors/fft_byp_28.data | 48 +-
app/test-pmd/cmdline.c | 63 +-
app/test-pmd/config.c | 4 +-
app/test/test_cryptodev.c | 26 +
app/test/test_cryptodev.h | 1 -
app/test/test_cryptodev_aes_test_vectors.h | 6 +-
app/test/test_dmadev_api.c | 16 +-
app/test/test_event_eth_rx_adapter.c | 2 +-
doc/guides/nics/e1000em.rst | 5 +
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 -
doc/guides/nics/igb.rst | 13 +
doc/guides/nics/igc.rst | 5 +
doc/guides/nics/ixgbe.rst | 22 +-
drivers/bus/pci/pci_common.c | 14 +-
drivers/common/cnxk/cnxk_security.c | 2 +-
drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 2 +
drivers/crypto/openssl/rte_openssl_pmd.c | 10 +-
drivers/crypto/qat/qat_sym_session.c | 3 +-
drivers/net/e1000/em_ethdev.c | 80 ++
drivers/net/e1000/igb_ethdev.c | 176 ++++
drivers/net/gve/gve_ethdev.c | 139 ++-
drivers/net/gve/gve_ethdev.h | 5 +-
drivers/net/gve/gve_rx.c | 2 +-
drivers/net/iavf/iavf_ethdev.c | 15 +-
drivers/net/iavf/iavf_rxtx.c | 3 +
drivers/net/iavf/iavf_rxtx.h | 2 +
drivers/net/iavf/iavf_rxtx_vec_neon.c | 8 +-
drivers/net/ice/ice_ethdev.c | 4 +
drivers/net/ice/ice_generic_flow.c | 11 +-
drivers/net/igc/igc_ethdev.c | 96 ++
drivers/net/ixgbe/ixgbe_ethdev.c | 242 +++++
drivers/net/ixgbe/ixgbe_rxtx.h | 2 +-
drivers/net/mana/mana.c | 103 ++-
drivers/net/mana/mana.h | 6 +-
drivers/net/mana/mp.c | 2 +-
drivers/net/mlx5/hws/mlx5dr_definer.c | 30 +-
drivers/net/mlx5/hws/mlx5dr_definer.h | 18 +-
drivers/net/mlx5/mlx5.h | 1 +
drivers/net/mlx5/mlx5_flow.c | 4 +-
drivers/net/mlx5/mlx5_flow_dv.c | 12 +-
drivers/net/mlx5/mlx5_hws_cnt.c | 3 +-
drivers/net/mlx5/mlx5_rx.h | 1 +
drivers/net/mlx5/mlx5_rxq.c | 12 +-
drivers/net/mlx5/mlx5_rxtx.c | 80 ++
drivers/net/mlx5/mlx5_trigger.c | 4 +-
drivers/net/netvsc/hn_ethdev.c | 29 +-
drivers/net/netvsc/hn_vf.c | 13 +-
drivers/net/nfp/flower/nfp_flower_ctrl.c | 14 +
.../net/nfp/flower/nfp_flower_representor.c | 2 +-
.../net/nfp/flower/nfp_flower_representor.h | 2 +
drivers/net/txgbe/base/txgbe_phy.c | 8 +-
examples/ipsec-secgw/event_helper.c | 2 +-
examples/ipsec-secgw/sa.c | 4 +-
examples/ptpclient/ptpclient.c | 2 +-
examples/vhost_crypto/main.c | 4 +-
lib/eal/common/eal_common_lcore.c | 18 +-
lib/pdump/rte_pdump.c | 3 +
lib/stack/rte_stack_lf_c11.h | 2 +-
lib/vhost/vhost_crypto.c | 25 +-
lib/vhost/virtio_net.c | 10 +
68 files changed, 1237 insertions(+), 1120 deletions(-)
delete mode 100644 app/test-bbdev/test_vectors/fft_9.data
--
2.34.1
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'ci: build with MSVC in GHA' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'net/netvsc: scan all net devices under the PCI device' " Xueming Li
` (12 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: David Marchand; +Cc: Xueming Li, Aaron Conole, Andre Muezerie, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ad0280c3e34343021cd727eca3411d3a4d47cfdb
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ad0280c3e34343021cd727eca3411d3a4d47cfdb Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 12 Feb 2025 17:46:16 +0100
Subject: [PATCH] ci: build with MSVC in GHA
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 6d80989ab2dcae3d70c0deeccf104c00b49d029c ]
Add a build target in Windows 2022 for MSVC.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
Acked-by: Andre Muezerie <andremue@linux.microsoft.com>
---
.github/workflows/build.yml | 38 +++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6b35c56da0..056b15c2fd 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -152,6 +152,44 @@ jobs:
build/meson-logs/meson-log.txt
build/meson-logs/testlog.txt
+ windows-vm-builds:
+ name: ${{ join(matrix.config.*, '-') }}
+ runs-on: ${{ matrix.config.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - os: windows-2022
+ compiler: msvc
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v4
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+ - name: Install dependencies
+ run: python -m pip install meson==1.6.1 ninja
+ - name: Configure
+ shell: cmd
+ run: |
+ call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
+ meson setup -Denable_stdatomic=true build
+ - name: Build
+ shell: cmd
+ run: |
+ call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
+ meson compile -C build
+ - name: Upload logs on failure
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: meson-logs-${{ join(matrix.config.*, '-') }}
+ path: |
+ build/.ninja_log
+ build/meson-logs/meson-log.txt
+
prepare-container-images:
name: ${{ join(matrix.config.*, '-') }}
runs-on: ubuntu-latest
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.115373020 +0800
+++ 0001-ci-build-with-MSVC-in-GHA.patch 2025-04-08 15:39:05.846436607 +0800
@@ -1 +1 @@
-From 6d80989ab2dcae3d70c0deeccf104c00b49d029c Mon Sep 17 00:00:00 2001
+From ad0280c3e34343021cd727eca3411d3a4d47cfdb Mon Sep 17 00:00:00 2001
@@ -4,0 +5 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
@@ -6 +7 @@
-Add a build target in Windows 2022 for MSVC.
+[ upstream commit 6d80989ab2dcae3d70c0deeccf104c00b49d029c ]
@@ -8 +9 @@
-Cc: stable@dpdk.org
+Add a build target in Windows 2022 for MSVC.
@@ -18 +19 @@
-index dcafb4a8f5..aef692ca1f 100644
+index 6b35c56da0..056b15c2fd 100644
@@ -21 +22 @@
-@@ -174,6 +174,44 @@ jobs:
+@@ -152,6 +152,44 @@ jobs:
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/netvsc: scan all net devices under the PCI device' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
2025-04-08 7:44 ` patch 'ci: build with MSVC in GHA' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'net/netvsc: remove device if its net devices removed' " Xueming Li
` (11 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Long Li; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8ba3b764b2ce365201ffb95f391af504b3ce33f0
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 8ba3b764b2ce365201ffb95f391af504b3ce33f0 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 1736cb5d07..f848157b49 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.137544313 +0800
+++ 0002-net-netvsc-scan-all-net-devices-under-the-PCI-device.patch 2025-04-08 15:39:05.856436604 +0800
@@ -1 +1 @@
-From 7690b9ca7b0e5f54ffa7e94957e3fc04bcdc92e4 Mon Sep 17 00:00:00 2001
+From 8ba3b764b2ce365201ffb95f391af504b3ce33f0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7690b9ca7b0e5f54ffa7e94957e3fc04bcdc92e4 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/netvsc: remove device if its net devices removed' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
2025-04-08 7:44 ` patch 'ci: build with MSVC in GHA' " Xueming Li
2025-04-08 7:44 ` patch 'net/netvsc: scan all net devices under the PCI device' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'doc: fix feature flags for queue start/stop' " Xueming Li
` (10 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Long Li; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8848621c74fa30b4ebe3566438bd2ac25b555def
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 8848621c74fa30b4ebe3566438bd2ac25b555def 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 a4e958419d..7d61376e63 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.160262106 +0800
+++ 0003-net-netvsc-remove-device-if-its-net-devices-removed.patch 2025-04-08 15:39:05.856436604 +0800
@@ -1 +1 @@
-From 1ec0995e173da14f2871ee19326f275f94f412c4 Mon Sep 17 00:00:00 2001
+From 8848621c74fa30b4ebe3566438bd2ac25b555def Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1ec0995e173da14f2871ee19326f275f94f412c4 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index b664beaa5d..5d8058774d 100644
+index a4e958419d..7d61376e63 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'doc: fix feature flags for queue start/stop' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (2 preceding siblings ...)
2025-04-08 7:44 ` patch 'net/netvsc: remove device if its net devices removed' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: show all DCB priority TC map' " Xueming Li
` (9 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=72c75dbc79f0e32a4dc066a8e664c8095a257e85
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 72c75dbc79f0e32a4dc066a8e664c8095a257e85 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 7b48e4e991..d5147c5a6b 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 838edd456a..b28aecf40c 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 42fd3327d2..db555ffe27 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.180295899 +0800
+++ 0004-doc-fix-feature-flags-for-queue-start-stop.patch 2025-04-08 15:39:05.856436604 +0800
@@ -1 +1 @@
-From 4f6641cbdd571433d38fd82781916e0f1e64908b Mon Sep 17 00:00:00 2001
+From 72c75dbc79f0e32a4dc066a8e664c8095a257e85 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4f6641cbdd571433d38fd82781916e0f1e64908b ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index 8bd448139e..a075c057ec 100644
+index 7b48e4e991..d5147c5a6b 100644
@@ -41 +43 @@
-index 8dfa229bb0..f18b829eda 100644
+index 838edd456a..b28aecf40c 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'app/testpmd: show all DCB priority TC map' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (3 preceding siblings ...)
2025-04-08 7:44 ` patch 'doc: fix feature flags for queue start/stop' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: avoid crash in DCB config' " Xueming Li
` (8 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Chengwen Feng; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c3a4115601ddf63f693a90c16774910b8bdcce5c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c3a4115601ddf63f693a90c16774910b8bdcce5c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 9c3d668e56..a70086c85a 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -6909,8 +6909,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.203058792 +0800
+++ 0005-app-testpmd-show-all-DCB-priority-TC-map.patch 2025-04-08 15:39:05.856436604 +0800
@@ -1 +1 @@
-From 164d7ac277bba10b27dd96821536e6b4a71cfebf Mon Sep 17 00:00:00 2001
+From c3a4115601ddf63f693a90c16774910b8bdcce5c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 164d7ac277bba10b27dd96821536e6b4a71cfebf ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 08a8ab02ea..e89af21cec 100644
+index 9c3d668e56..a70086c85a 100644
@@ -22 +24 @@
-@@ -7273,8 +7273,8 @@ port_dcb_info_display(portid_t port_id)
+@@ -6909,8 +6909,8 @@ port_dcb_info_display(portid_t port_id)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'app/testpmd: avoid crash in DCB config' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (4 preceding siblings ...)
2025-04-08 7:44 ` patch 'app/testpmd: show all DCB priority TC map' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'net/mana: fix multi-process tracking' " Xueming Li
` (7 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Chengwen Feng; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=afcc3d93754bba06e1797f4e3ab2f4b88c5d9cf4
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From afcc3d93754bba06e1797f4e3ab2f4b88c5d9cf4 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 bf6794ee1d..c150315eb8 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3120,6 +3120,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) {
@@ -6322,6 +6325,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.228737283 +0800
+++ 0006-app-testpmd-avoid-crash-in-DCB-config.patch 2025-04-08 15:39:05.866436601 +0800
@@ -1 +1 @@
-From d646e219b34ffc4d531f3703fc317e7cff9a25ae Mon Sep 17 00:00:00 2001
+From afcc3d93754bba06e1797f4e3ab2f4b88c5d9cf4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d646e219b34ffc4d531f3703fc317e7cff9a25ae ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 6b0d8af4f6..6ca3eedb92 100644
+index bf6794ee1d..c150315eb8 100644
@@ -21 +23 @@
-@@ -3462,6 +3462,9 @@ cmd_config_dcb_parsed(void *parsed_result,
+@@ -3120,6 +3120,9 @@ cmd_config_dcb_parsed(void *parsed_result,
@@ -31 +33 @@
-@@ -6664,6 +6667,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
+@@ -6322,6 +6325,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mana: fix multi-process tracking' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (5 preceding siblings ...)
2025-04-08 7:44 ` patch 'app/testpmd: avoid crash in DCB config' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: fix out-of-bound reference in offload config' " Xueming Li
` (6 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Long Li; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=60357a01f1fd647417e59ed35c16e25023ea620e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 60357a01f1fd647417e59ed35c16e25023ea620e Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Thu, 20 Feb 2025 15:32:02 -0800
Subject: [PATCH] net/mana: fix multi-process tracking
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 57aa3ec91ecf13ab2f11e4dc0dc74c50a2afa0cc ]
The driver uses mana_shared_data for tracking usage count for primary
process. This is not correct as the mana_shared_data is allocated
by the primary and is meant to track usage of secondary process by the
primary process. And it creates a race condition when the device is
removed because the counter is no longer available if this shared
memory is freed.
Move the usage count tracking to mana_local_data and fix the race
condition in mana_pci_remove().
Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment")
Signed-off-by: Long Li <longli@microsoft.com>
---
drivers/net/mana/mana.c | 103 +++++++++++++++++++++++-----------------
drivers/net/mana/mana.h | 6 +--
drivers/net/mana/mp.c | 2 +-
3 files changed, 61 insertions(+), 50 deletions(-)
diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c
index 65ca139be5..c0ff132fe1 100644
--- a/drivers/net/mana/mana.c
+++ b/drivers/net/mana/mana.c
@@ -23,9 +23,14 @@
#include "mana.h"
/* Shared memory between primary/secondary processes, per driver */
-/* Data to track primary/secondary usage */
struct mana_shared_data *mana_shared_data;
-static struct mana_shared_data mana_local_data;
+
+/* Local data to track device instance usage for primary/secondary processes */
+static struct mana_local_data {
+ int init_done;
+ unsigned int primary_cnt;
+ unsigned int secondary_cnt;
+} mana_local_data;
/* The memory region for the above data */
static const struct rte_memzone *mana_shared_mz;
@@ -1163,8 +1168,12 @@ mana_init_shared_data(void)
rte_spinlock_lock(&mana_shared_data_lock);
/* Skip if shared data is already initialized */
- if (mana_shared_data)
+ if (mana_shared_data) {
+ DRV_LOG(INFO, "shared data is already initialized");
goto exit;
+ }
+
+ memset(&mana_local_data, 0, sizeof(mana_local_data));
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
mana_shared_mz = rte_memzone_reserve(MZ_MANA_SHARED_DATA,
@@ -1177,8 +1186,8 @@ mana_init_shared_data(void)
}
mana_shared_data = mana_shared_mz->addr;
- memset(mana_shared_data, 0, sizeof(*mana_shared_data));
- rte_spinlock_init(&mana_shared_data->lock);
+ rte_atomic_store_explicit(&mana_shared_data->secondary_cnt, 0,
+ rte_memory_order_relaxed);
} else {
secondary_mz = rte_memzone_lookup(MZ_MANA_SHARED_DATA);
if (!secondary_mz) {
@@ -1188,7 +1197,6 @@ mana_init_shared_data(void)
}
mana_shared_data = secondary_mz->addr;
- memset(&mana_local_data, 0, sizeof(mana_local_data));
}
exit:
@@ -1209,11 +1217,11 @@ mana_init_once(void)
if (ret)
return ret;
- rte_spinlock_lock(&mana_shared_data->lock);
+ rte_spinlock_lock(&mana_shared_data_lock);
switch (rte_eal_process_type()) {
case RTE_PROC_PRIMARY:
- if (mana_shared_data->init_done)
+ if (mana_local_data.init_done)
break;
ret = mana_mp_init_primary();
@@ -1221,7 +1229,7 @@ mana_init_once(void)
break;
DRV_LOG(ERR, "MP INIT PRIMARY");
- mana_shared_data->init_done = 1;
+ mana_local_data.init_done = 1;
break;
case RTE_PROC_SECONDARY:
@@ -1244,7 +1252,7 @@ mana_init_once(void)
break;
}
- rte_spinlock_unlock(&mana_shared_data->lock);
+ rte_spinlock_unlock(&mana_shared_data_lock);
return ret;
}
@@ -1315,11 +1323,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
eth_dev->tx_pkt_burst = mana_tx_burst_removed;
eth_dev->rx_pkt_burst = mana_rx_burst_removed;
- rte_spinlock_lock(&mana_shared_data->lock);
- mana_shared_data->secondary_cnt++;
- mana_local_data.secondary_cnt++;
- rte_spinlock_unlock(&mana_shared_data->lock);
-
rte_eth_copy_pci_info(eth_dev, pci_dev);
rte_eth_dev_probing_finish(eth_dev);
@@ -1402,10 +1405,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
goto failed;
}
- rte_spinlock_lock(&mana_shared_data->lock);
- mana_shared_data->primary_cnt++;
- rte_spinlock_unlock(&mana_shared_data->lock);
-
eth_dev->device = &pci_dev->device;
DRV_LOG(INFO, "device %s at port %u", name, eth_dev->data->port_id);
@@ -1548,13 +1547,38 @@ mana_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
count = mana_pci_probe_mac(pci_dev, NULL);
}
+ /* If no device is found, clean up resources if this is the last one */
if (!count) {
- rte_memzone_free(mana_shared_mz);
- mana_shared_mz = NULL;
- ret = -ENODEV;
+ rte_spinlock_lock(&mana_shared_data_lock);
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ if (!mana_local_data.primary_cnt) {
+ mana_mp_uninit_primary();
+ rte_memzone_free(mana_shared_mz);
+ mana_shared_mz = NULL;
+ mana_shared_data = NULL;
+ }
+ } else {
+ if (!mana_local_data.secondary_cnt) {
+ mana_mp_uninit_secondary();
+ mana_shared_data = NULL;
+ }
+ }
+ rte_spinlock_unlock(&mana_shared_data_lock);
+ return -ENODEV;
}
- return ret;
+ /* At least one eth_dev is probed, increase counter for shared data */
+ rte_spinlock_lock(&mana_shared_data_lock);
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ mana_local_data.primary_cnt++;
+ } else {
+ rte_atomic_fetch_add_explicit(&mana_shared_data->secondary_cnt, 1,
+ rte_memory_order_relaxed);
+ mana_local_data.secondary_cnt++;
+ }
+ rte_spinlock_unlock(&mana_shared_data_lock);
+
+ return 0;
}
static int
@@ -1569,45 +1593,36 @@ mana_dev_uninit(struct rte_eth_dev *dev)
static int
mana_pci_remove(struct rte_pci_device *pci_dev)
{
+ rte_spinlock_lock(&mana_shared_data_lock);
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
- rte_spinlock_lock(&mana_shared_data_lock);
-
- rte_spinlock_lock(&mana_shared_data->lock);
+ RTE_VERIFY(mana_local_data.primary_cnt > 0);
+ mana_local_data.primary_cnt--;
- RTE_VERIFY(mana_shared_data->primary_cnt > 0);
- mana_shared_data->primary_cnt--;
- if (!mana_shared_data->primary_cnt) {
+ if (!mana_local_data.primary_cnt) {
DRV_LOG(DEBUG, "mp uninit primary");
mana_mp_uninit_primary();
- }
-
- rte_spinlock_unlock(&mana_shared_data->lock);
- /* Also free the shared memory if this is the last */
- if (!mana_shared_data->primary_cnt) {
+ /* Also free the shared memory if this is the last */
DRV_LOG(DEBUG, "free shared memezone data");
rte_memzone_free(mana_shared_mz);
mana_shared_mz = NULL;
+ mana_shared_data = NULL;
}
-
- rte_spinlock_unlock(&mana_shared_data_lock);
} else {
- rte_spinlock_lock(&mana_shared_data_lock);
-
- rte_spinlock_lock(&mana_shared_data->lock);
- RTE_VERIFY(mana_shared_data->secondary_cnt > 0);
- mana_shared_data->secondary_cnt--;
- rte_spinlock_unlock(&mana_shared_data->lock);
+ RTE_VERIFY(rte_atomic_load_explicit(&mana_shared_data->secondary_cnt,
+ rte_memory_order_relaxed) > 0);
+ rte_atomic_fetch_sub_explicit(&mana_shared_data->secondary_cnt, 1,
+ rte_memory_order_relaxed);
RTE_VERIFY(mana_local_data.secondary_cnt > 0);
mana_local_data.secondary_cnt--;
if (!mana_local_data.secondary_cnt) {
DRV_LOG(DEBUG, "mp uninit secondary");
mana_mp_uninit_secondary();
+ mana_shared_data = NULL;
}
-
- rte_spinlock_unlock(&mana_shared_data_lock);
}
+ rte_spinlock_unlock(&mana_shared_data_lock);
return rte_eth_dev_pci_generic_remove(pci_dev, mana_dev_uninit);
}
diff --git a/drivers/net/mana/mana.h b/drivers/net/mana/mana.h
index 822b8a1f15..7931a443a4 100644
--- a/drivers/net/mana/mana.h
+++ b/drivers/net/mana/mana.h
@@ -8,12 +8,8 @@
#define PCI_VENDOR_ID_MICROSOFT 0x1414
#define PCI_DEVICE_ID_MICROSOFT_MANA 0x00ba
-/* Shared data between primary/secondary processes */
struct mana_shared_data {
- rte_spinlock_t lock;
- int init_done;
- unsigned int primary_cnt;
- unsigned int secondary_cnt;
+ RTE_ATOMIC(uint32_t) secondary_cnt;
};
#define MANA_MAX_MTU 9000
diff --git a/drivers/net/mana/mp.c b/drivers/net/mana/mp.c
index 738487f65a..3d0aa0d493 100644
--- a/drivers/net/mana/mp.c
+++ b/drivers/net/mana/mp.c
@@ -305,7 +305,7 @@ mana_mp_req_on_rxtx(struct rte_eth_dev *dev, enum mana_mp_req_type type)
return;
}
- if (!mana_shared_data->secondary_cnt)
+ if (rte_atomic_load_explicit(&mana_shared_data->secondary_cnt, rte_memory_order_relaxed) == 0)
return;
mp_init_msg(&mp_req, type, dev->data->port_id);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.259162174 +0800
+++ 0007-net-mana-fix-multi-process-tracking.patch 2025-04-08 15:39:05.876436597 +0800
@@ -1 +1 @@
-From 57aa3ec91ecf13ab2f11e4dc0dc74c50a2afa0cc Mon Sep 17 00:00:00 2001
+From 60357a01f1fd647417e59ed35c16e25023ea620e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 57aa3ec91ecf13ab2f11e4dc0dc74c50a2afa0cc ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index c37c4e3444..2934da29f7 100644
+index 65ca139be5..c0ff132fe1 100644
@@ -47 +49 @@
-@@ -1167,8 +1172,12 @@ mana_init_shared_data(void)
+@@ -1163,8 +1168,12 @@ mana_init_shared_data(void)
@@ -61 +63 @@
-@@ -1181,8 +1190,8 @@ mana_init_shared_data(void)
+@@ -1177,8 +1186,8 @@ mana_init_shared_data(void)
@@ -72 +74 @@
-@@ -1192,7 +1201,6 @@ mana_init_shared_data(void)
+@@ -1188,7 +1197,6 @@ mana_init_shared_data(void)
@@ -80 +82 @@
-@@ -1213,11 +1221,11 @@ mana_init_once(void)
+@@ -1209,11 +1217,11 @@ mana_init_once(void)
@@ -94 +96 @@
-@@ -1225,7 +1233,7 @@ mana_init_once(void)
+@@ -1221,7 +1229,7 @@ mana_init_once(void)
@@ -103 +105 @@
-@@ -1248,7 +1256,7 @@ mana_init_once(void)
+@@ -1244,7 +1252,7 @@ mana_init_once(void)
@@ -112,3 +114,3 @@
-@@ -1319,11 +1327,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
- eth_dev->tx_pkt_burst = mana_tx_burst;
- eth_dev->rx_pkt_burst = mana_rx_burst;
+@@ -1315,11 +1323,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
+ eth_dev->tx_pkt_burst = mana_tx_burst_removed;
+ eth_dev->rx_pkt_burst = mana_rx_burst_removed;
@@ -124 +126 @@
-@@ -1406,10 +1409,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
+@@ -1402,10 +1405,6 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
@@ -135 +137 @@
-@@ -1552,13 +1551,38 @@ mana_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -1548,13 +1547,38 @@ mana_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -178 +180 @@
-@@ -1573,45 +1597,36 @@ mana_dev_uninit(struct rte_eth_dev *dev)
+@@ -1569,45 +1593,36 @@ mana_dev_uninit(struct rte_eth_dev *dev)
@@ -237 +239 @@
-index 41a0ca6dfe..855d98911b 100644
+index 822b8a1f15..7931a443a4 100644
@@ -255 +257 @@
-index 34b45ed832..5467d385ce 100644
+index 738487f65a..3d0aa0d493 100644
@@ -258 +260 @@
-@@ -306,7 +306,7 @@ mana_mp_req_on_rxtx(struct rte_eth_dev *dev, enum mana_mp_req_type type)
+@@ -305,7 +305,7 @@ mana_mp_req_on_rxtx(struct rte_eth_dev *dev, enum mana_mp_req_type type)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'app/testpmd: fix out-of-bound reference in offload config' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (6 preceding siblings ...)
2025-04-08 7:44 ` patch 'net/mana: fix multi-process tracking' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'net/txgbe: remove useless condition for SW-FW sync' " Xueming Li
` (5 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Xueming Li, Huisong Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ee6a1cdc5a990f7b2360b9d547e702d8373bf947
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ee6a1cdc5a990f7b2360b9d547e702d8373bf947 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 57 +++++++++++++++++++++++-------------------
1 file changed, 31 insertions(+), 26 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index c150315eb8..d40f0fb7bb 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -11055,7 +11055,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;
@@ -11063,12 +11063,13 @@ cmd_rx_offload_get_configuration_parsed(
int q;
int ret;
- 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 = &ports[port_id];
+ printf("Rx Offloading Configuration of port %d :\n", port_id);
+
port_offloads = dev_conf.rxmode.offloads;
printf(" Port :");
print_rx_offloads(port_offloads);
@@ -11169,12 +11170,17 @@ static void
config_port_rx_offload(portid_t port_id, char *name, bool on)
{
struct rte_eth_dev_info dev_info;
- struct rte_port *port = &ports[port_id];
+ struct rte_port *port;
uint16_t nb_rx_queues;
uint64_t offload;
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",
@@ -11182,10 +11188,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 {
@@ -11371,10 +11373,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 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",
@@ -11382,10 +11389,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",
@@ -11573,7 +11576,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;
@@ -11581,12 +11584,12 @@ cmd_tx_offload_get_configuration_parsed(
int q;
int ret;
- 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;
+ printf("Tx Offloading Configuration of port %d :\n", port_id);
+ port = &ports[port_id];
port_offloads = dev_conf.txmode.offloads;
printf(" Port :");
print_tx_offloads(port_offloads);
@@ -11691,12 +11694,17 @@ static void
config_port_tx_offload(portid_t port_id, char *name, bool on)
{
struct rte_eth_dev_info dev_info;
- struct rte_port *port = &ports[port_id];
+ struct rte_port *port;
uint16_t nb_tx_queues;
uint64_t offload;
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",
@@ -11704,10 +11712,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 {
@@ -11897,10 +11901,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 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",
@@ -11908,10 +11917,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.284276766 +0800
+++ 0008-app-testpmd-fix-out-of-bound-reference-in-offload-co.patch 2025-04-08 15:39:05.886436594 +0800
@@ -1 +1 @@
-From 8f847023dd16cb6e5858756d7ec16c940ac6eee9 Mon Sep 17 00:00:00 2001
+From ee6a1cdc5a990f7b2360b9d547e702d8373bf947 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8f847023dd16cb6e5858756d7ec16c940ac6eee9 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 6ca3eedb92..d4bb3ec998 100644
+index c150315eb8..d40f0fb7bb 100644
@@ -24 +26 @@
-@@ -11633,7 +11633,7 @@ cmd_rx_offload_get_configuration_parsed(
+@@ -11055,7 +11055,7 @@ cmd_rx_offload_get_configuration_parsed(
@@ -33 +35 @@
-@@ -11641,12 +11641,13 @@ cmd_rx_offload_get_configuration_parsed(
+@@ -11063,12 +11063,13 @@ cmd_rx_offload_get_configuration_parsed(
@@ -49 +51 @@
-@@ -11747,12 +11748,17 @@ static void
+@@ -11169,12 +11170,17 @@ static void
@@ -68 +70 @@
-@@ -11760,10 +11766,6 @@ config_port_rx_offload(portid_t port_id, char *name, bool on)
+@@ -11182,10 +11188,6 @@ config_port_rx_offload(portid_t port_id, char *name, bool on)
@@ -79 +81 @@
-@@ -11949,10 +11951,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
+@@ -11371,10 +11373,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
@@ -96 +98 @@
-@@ -11960,10 +11967,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
+@@ -11382,10 +11389,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
@@ -107 +109 @@
-@@ -12151,7 +12154,7 @@ cmd_tx_offload_get_configuration_parsed(
+@@ -11573,7 +11576,7 @@ cmd_tx_offload_get_configuration_parsed(
@@ -116 +118 @@
-@@ -12159,12 +12162,12 @@ cmd_tx_offload_get_configuration_parsed(
+@@ -11581,12 +11584,12 @@ cmd_tx_offload_get_configuration_parsed(
@@ -131 +133 @@
-@@ -12269,12 +12272,17 @@ static void
+@@ -11691,12 +11694,17 @@ static void
@@ -150 +152 @@
-@@ -12282,10 +12290,6 @@ config_port_tx_offload(portid_t port_id, char *name, bool on)
+@@ -11704,10 +11712,6 @@ config_port_tx_offload(portid_t port_id, char *name, bool on)
@@ -161 +163 @@
-@@ -12475,10 +12479,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
+@@ -11897,10 +11901,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
@@ -178 +180 @@
-@@ -12486,10 +12495,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
+@@ -11908,10 +11917,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/txgbe: remove useless condition for SW-FW sync' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (7 preceding siblings ...)
2025-04-08 7:44 ` patch 'app/testpmd: fix out-of-bound reference in offload config' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'bus/pci: fix registered device name' " Xueming Li
` (4 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Zaiyu Wang; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=3c97e2b5f5485ef06154a1a7c26450442eea8307
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 3c97e2b5f5485ef06154a1a7c26450442eea8307 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 d87af656d5..ce6882e262 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.315281756 +0800
+++ 0009-net-txgbe-remove-useless-condition-for-SW-FW-sync.patch 2025-04-08 15:39:05.886436594 +0800
@@ -1 +1 @@
-From 0d6b122c28b4a3ab4cbb79103f305e49a9edfcae Mon Sep 17 00:00:00 2001
+From 3c97e2b5f5485ef06154a1a7c26450442eea8307 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0d6b122c28b4a3ab4cbb79103f305e49a9edfcae ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'bus/pci: fix registered device name' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (8 preceding siblings ...)
2025-04-08 7:44 ` patch 'net/txgbe: remove useless condition for SW-FW sync' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'vhost/crypto: skip fetch before vring init' " Xueming Li
` (3 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Shani Peretz; +Cc: Xueming Li, Stephen Hemminger, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=a1fa35eb4562849ef4d0d3633af234c8280d01f7
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From a1fa35eb4562849ef4d0d3633af234c8280d01f7 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 889a48d2af..1b3fe4783e 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.338255948 +0800
+++ 0010-bus-pci-fix-registered-device-name.patch 2025-04-08 15:39:05.886436594 +0800
@@ -1 +1 @@
-From bd786765996fc2654770049043021ea618fc23f0 Mon Sep 17 00:00:00 2001
+From a1fa35eb4562849ef4d0d3633af234c8280d01f7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bd786765996fc2654770049043021ea618fc23f0 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 1173f0887c..70faae4e44 100644
+index 889a48d2af..1b3fe4783e 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost/crypto: skip fetch before vring init' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (9 preceding siblings ...)
2025-04-08 7:44 ` patch 'bus/pci: fix registered device name' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'examples/vhost_crypto: fix user callbacks' " Xueming Li
` (2 subsequent siblings)
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Gowrishankar Muthukrishnan
Cc: Xueming Li, Akhil Goyal, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2d91d69fb5e5fae47919afa5390231121f5e629f
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 2d91d69fb5e5fae47919afa5390231121f5e629f Mon Sep 17 00:00:00 2001
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Date: Fri, 28 Feb 2025 19:17:09 +0530
Subject: [PATCH] vhost/crypto: skip fetch before vring init
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit b03cb9c87a61054ce34b1c19c89170c80d75d27d ]
Until virtio avail ring is initialized (by VHOST_USER_SET_VRING_ADDR),
worker thread should not try to fetch crypto op, which would lead to
memory fault.
Fixes: 939066d96563 ("vhost/crypto: add public function implementation")
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/vhost/vhost_crypto.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index 7b22281815..23eb59459e 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -7,6 +7,7 @@
#include <rte_mbuf.h>
#include <rte_cryptodev.h>
+#include "iotlb.h"
#include "rte_vhost_crypto.h"
#include "vhost.h"
#include "vhost_user.h"
@@ -1579,6 +1580,20 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
vq = dev->virtqueue[qid];
+ if (unlikely(vq == NULL)) {
+ VC_LOG_ERR("Invalid virtqueue %u", qid);
+ return 0;
+ }
+
+ if (unlikely(rte_rwlock_read_trylock(&vq->access_lock) != 0))
+ return 0;
+
+ vhost_user_iotlb_rd_lock(vq);
+ if (unlikely(!vq->access_ok)) {
+ VC_LOG_DBG("Virtqueue %u vrings not yet initialized", qid);
+ goto out_unlock;
+ }
+
avail_idx = *((volatile uint16_t *)&vq->avail->idx);
start_idx = vq->last_used_idx;
count = avail_idx - start_idx;
@@ -1586,7 +1601,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
count = RTE_MIN(count, nb_ops);
if (unlikely(count == 0))
- return 0;
+ goto out_unlock;
/* for zero copy, we need 2 empty mbufs for src and dst, otherwise
* we need only 1 mbuf as src and dst
@@ -1596,7 +1611,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
if (unlikely(rte_mempool_get_bulk(vcrypto->mbuf_pool,
(void **)mbufs, count * 2) < 0)) {
VC_LOG_ERR("Insufficient memory");
- return 0;
+ goto out_unlock;
}
for (i = 0; i < count; i++) {
@@ -1626,7 +1641,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
if (unlikely(rte_mempool_get_bulk(vcrypto->mbuf_pool,
(void **)mbufs, count) < 0)) {
VC_LOG_ERR("Insufficient memory");
- return 0;
+ goto out_unlock;
}
for (i = 0; i < count; i++) {
@@ -1655,6 +1670,10 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
vq->last_used_idx += i;
+out_unlock:
+ vhost_user_iotlb_rd_unlock(vq);
+ rte_rwlock_read_unlock(&vq->access_lock);
+
return i;
}
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.361153041 +0800
+++ 0011-vhost-crypto-skip-fetch-before-vring-init.patch 2025-04-08 15:39:05.886436594 +0800
@@ -1 +1 @@
-From b03cb9c87a61054ce34b1c19c89170c80d75d27d Mon Sep 17 00:00:00 2001
+From 2d91d69fb5e5fae47919afa5390231121f5e629f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b03cb9c87a61054ce34b1c19c89170c80d75d27d ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 4c36df9cb2..38c5a7f06f 100644
+index 7b22281815..23eb59459e 100644
@@ -24 +26 @@
-@@ -8,6 +8,7 @@
+@@ -7,6 +7,7 @@
@@ -32 +34 @@
-@@ -1586,6 +1587,20 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1579,6 +1580,20 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
@@ -53 +55 @@
-@@ -1593,7 +1608,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1586,7 +1601,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
@@ -62 +64 @@
-@@ -1603,7 +1618,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1596,7 +1611,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
@@ -71 +73 @@
-@@ -1633,7 +1648,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1626,7 +1641,7 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
@@ -80 +82 @@
-@@ -1662,6 +1677,10 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
+@@ -1655,6 +1670,10 @@ rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'examples/vhost_crypto: fix user callbacks' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (10 preceding siblings ...)
2025-04-08 7:44 ` patch 'vhost/crypto: skip fetch before vring init' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'vhost: check descriptor chains length' " Xueming Li
2025-04-08 7:44 ` patch 'test/bbdev: update FFT test vectors' " Xueming Li
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Gowrishankar Muthukrishnan
Cc: Xueming Li, Akhil Goyal, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=223162169d8b9339f9aa9eab612ab6ef8221f391
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 223162169d8b9339f9aa9eab612ab6ef8221f391 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.382814734 +0800
+++ 0012-examples-vhost_crypto-fix-user-callbacks.patch 2025-04-08 15:39:05.886436594 +0800
@@ -1 +1 @@
-From f7cf44d49b1115238a87c5852db4b47290bfdc25 Mon Sep 17 00:00:00 2001
+From 223162169d8b9339f9aa9eab612ab6ef8221f391 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f7cf44d49b1115238a87c5852db4b47290bfdc25 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 558c09a60f..b1fe4120b9 100644
+index 02987ebd76..b00daf74e7 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'vhost: check descriptor chains length' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (11 preceding siblings ...)
2025-04-08 7:44 ` patch 'examples/vhost_crypto: fix user callbacks' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
2025-04-08 7:44 ` patch 'test/bbdev: update FFT test vectors' " Xueming Li
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Yunjian Wang; +Cc: Xueming Li, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=15b6460353de1a96760ed2a5d66e887a4d6bf07a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 15b6460353de1a96760ed2a5d66e887a4d6bf07a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 d81b518462..da14271c6d 100644
--- a/lib/vhost/virtio_net.c
+++ b/lib/vhost/virtio_net.c
@@ -3932,6 +3932,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.405682226 +0800
+++ 0013-vhost-check-descriptor-chains-length.patch 2025-04-08 15:39:05.896436591 +0800
@@ -1 +1 @@
-From e31b57e732d52f3cd8c707824f79fef8c117df95 Mon Sep 17 00:00:00 2001
+From 15b6460353de1a96760ed2a5d66e887a4d6bf07a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e31b57e732d52f3cd8c707824f79fef8c117df95 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 0bf49169db..0348e8dac3 100644
+index d81b518462..da14271c6d 100644
@@ -23 +25 @@
-@@ -3960,6 +3960,16 @@ virtio_dev_tx_async_single_packed(struct virtio_net *dev,
+@@ -3932,6 +3932,16 @@ virtio_dev_tx_async_single_packed(struct virtio_net *dev,
@@ -29 +31 @@
-+ VHOST_DATA_LOG(dev->ifname, ERR, "Invalid buffer length.");
++ VHOST_LOG_DATA(dev->ifname, ERR, "Invalid buffer length.\n");
@@ -39 +41 @@
- 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] 138+ messages in thread
* patch 'test/bbdev: update FFT test vectors' has been queued to stable release 23.11.4
2025-04-08 7:44 ` patch " Xueming Li
` (12 preceding siblings ...)
2025-04-08 7:44 ` patch 'vhost: check descriptor chains length' " Xueming Li
@ 2025-04-08 7:44 ` Xueming Li
13 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 7:44 UTC (permalink / raw)
To: Nicolas Chautru; +Cc: Xueming Li, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=b66b9905329d85e22a6d5f9133d4abbe96ff8419
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From b66b9905329d85e22a6d5f9133d4abbe96ff8419 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.429815919 +0800
+++ 0014-test-bbdev-update-FFT-test-vectors.patch 2025-04-08 15:39:05.896436591 +0800
@@ -1 +1 @@
-From 283591f1781c7c409393c0ade76ac8acfbd0bd5f Mon Sep 17 00:00:00 2001
+From b66b9905329d85e22a6d5f9133d4abbe96ff8419 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 283591f1781c7c409393c0ade76ac8acfbd0bd5f ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/event: fix number of queues in eventdev conf' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (88 preceding siblings ...)
2025-04-08 7:44 ` patch " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/e1000: fix crashes in secondary processes' " Xueming Li
` (18 more replies)
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
91 siblings, 19 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Shijith Thotton; +Cc: Xueming Li, Pavan Nikhilesh, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ffe74d11302323c3e6c964c2e9bb3d893c8f55c1
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ffe74d11302323c3e6c964c2e9bb3d893c8f55c1 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 0233c87779..9a60e34352 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.454216711 +0800
+++ 0015-test-event-fix-number-of-queues-in-eventdev-conf.patch 2025-04-08 15:39:05.896436591 +0800
@@ -1 +1 @@
-From baa3cc13c1df10eb36a158c45a921ede2e806f75 Mon Sep 17 00:00:00 2001
+From ffe74d11302323c3e6c964c2e9bb3d893c8f55c1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit baa3cc13c1df10eb36a158c45a921ede2e806f75 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/e1000: fix crashes in secondary processes' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/ixgbe: " Xueming Li
` (17 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=63e8bec024d537684da0bdffa122de96b8c565b2
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 63e8bec024d537684da0bdffa122de96b8c565b2 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 13 +++
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 | 96 ++++++++++++++++++
6 files changed, 375 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 e3a91c316b..3f7a4156ff 100644
--- a/doc/guides/nics/igb.rst
+++ b/doc/guides/nics/igb.rst
@@ -31,3 +31,16 @@ Features of the IGB PMD are:
* Checksum offload
* 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.
diff --git a/doc/guides/nics/igc.rst b/doc/guides/nics/igc.rst
index c5af806b7b..07a1b12bcb 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 f6875b0762..e26930f1d6 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -543,6 +543,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;
@@ -727,6 +735,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);
@@ -1016,6 +1032,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);
@@ -1027,6 +1047,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;
@@ -1654,6 +1678,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;
}
@@ -1663,6 +1695,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;
}
@@ -1724,6 +1764,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;
@@ -1775,6 +1823,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);
}
@@ -1784,6 +1840,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);
@@ -1793,6 +1857,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);
@@ -1837,6 +1909,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 222e359ed9..c83ce5bc80 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 690736b6d1..bc8e0e127c 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"
@@ -392,6 +393,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
@@ -404,6 +413,13 @@ 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
+ * 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
@@ -477,6 +493,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;
@@ -654,6 +678,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;
@@ -965,6 +997,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);
@@ -1548,7 +1588,15 @@ 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.
+ */
igc_get_fw_version(hw, &fw);
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+ return -E_RTE_SECONDARY;
+
/* if option rom is valid, display its version too */
if (fw.or_valid) {
@@ -1638,6 +1686,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;
}
@@ -1646,6 +1702,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;
}
@@ -2188,6 +2252,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;
@@ -2207,6 +2275,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;
@@ -2270,6 +2342,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;
@@ -2771,6 +2851,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);
@@ -2807,6 +2895,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 = IGC_READ_REG(hw, IGC_TSYNCTXCTL);
if (!(val & IGC_TSYNCTXCTL_VALID))
return -EINVAL;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.475437904 +0800
+++ 0016-net-e1000-fix-crashes-in-secondary-processes.patch 2025-04-08 15:39:05.906436588 +0800
@@ -1 +1 @@
-From b0ef6e7a970bc745537c5b5140d838431f118c5e Mon Sep 17 00:00:00 2001
+From 63e8bec024d537684da0bdffa122de96b8c565b2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b0ef6e7a970bc745537c5b5140d838431f118c5e ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -20,7 +22,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 | 13 +++
+ 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 | 96 ++++++++++++++++++
+ 6 files changed, 375 insertions(+)
@@ -63 +65 @@
-index c267431c5f..9790b58102 100644
+index c5af806b7b..07a1b12bcb 100644
@@ -75,5 +77,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 f6875b0762..e26930f1d6 100644
+--- a/drivers/net/e1000/em_ethdev.c
++++ b/drivers/net/e1000/em_ethdev.c
+@@ -543,6 +543,14 @@ eth_em_start(struct rte_eth_dev *dev)
@@ -94 +96 @@
-@@ -757,6 +765,14 @@ eth_em_stop(struct rte_eth_dev *dev)
+@@ -727,6 +735,14 @@ eth_em_stop(struct rte_eth_dev *dev)
@@ -109 +111 @@
-@@ -1048,6 +1064,10 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue
+@@ -1016,6 +1032,10 @@ eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue
@@ -120 +122 @@
-@@ -1059,6 +1079,10 @@ eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __rte_unused uint16_t queu
+@@ -1027,6 +1047,10 @@ eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __rte_unused uint16_t queu
@@ -131 +133 @@
-@@ -1688,6 +1712,14 @@ eth_em_led_on(struct rte_eth_dev *dev)
+@@ -1654,6 +1678,14 @@ eth_em_led_on(struct rte_eth_dev *dev)
@@ -146 +148 @@
-@@ -1697,6 +1729,14 @@ eth_em_led_off(struct rte_eth_dev *dev)
+@@ -1663,6 +1695,14 @@ eth_em_led_off(struct rte_eth_dev *dev)
@@ -161 +163 @@
-@@ -1758,6 +1798,14 @@ eth_em_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -1724,6 +1764,14 @@ eth_em_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -176 +178 @@
-@@ -1809,6 +1857,14 @@ eth_em_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -1775,6 +1823,14 @@ eth_em_rar_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -191 +193 @@
-@@ -1818,6 +1874,14 @@ eth_em_rar_clear(struct rte_eth_dev *dev, uint32_t index)
+@@ -1784,6 +1840,14 @@ eth_em_rar_clear(struct rte_eth_dev *dev, uint32_t index)
@@ -206 +208 @@
-@@ -1827,6 +1891,14 @@ static int
+@@ -1793,6 +1857,14 @@ static int
@@ -221 +223 @@
-@@ -1871,6 +1943,14 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
+@@ -1837,6 +1909,14 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -236,5 +238,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 222e359ed9..c83ce5bc80 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 +257 @@
-@@ -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 +272 @@
-@@ -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 +287 @@
-@@ -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 +302 @@
-@@ -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 +317 @@
-@@ -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 +332 @@
-@@ -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 +347 @@
-@@ -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 +362 @@
-@@ -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 +377 @@
-@@ -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 +392 @@
-@@ -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 +407 @@
-@@ -3207,6 +3295,14 @@ static int
+@@ -3156,6 +3244,14 @@ static int
@@ -420 +422 @@
-@@ -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 +437 @@
-@@ -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 +452 @@
-@@ -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 +467 @@
-@@ -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 +482 @@
-@@ -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 +497 @@
-@@ -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 +512 @@
-@@ -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 +527 @@
-@@ -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 +542 @@
-@@ -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 +557 @@
-@@ -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 +568 @@
-@@ -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 +579,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 690736b6d1..bc8e0e127c 100644
+--- a/drivers/net/igc/igc_ethdev.c
++++ b/drivers/net/igc/igc_ethdev.c
@@ -587 +589 @@
- #include "e1000_logs.h"
+ #include "igc_logs.h"
@@ -589 +591 @@
-@@ -397,6 +398,14 @@ eth_igc_set_link_up(struct rte_eth_dev *dev)
+@@ -392,6 +393,14 @@ eth_igc_set_link_up(struct rte_eth_dev *dev)
@@ -591 +593 @@
- struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -601,2 +603,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 +606 @@
-@@ -409,6 +418,14 @@ eth_igc_set_link_down(struct rte_eth_dev *dev)
+@@ -404,6 +413,13 @@ eth_igc_set_link_down(struct rte_eth_dev *dev)
@@ -606 +608 @@
- struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -610 +611,0 @@
-+ * function pointers, which are not guaranteed to be valid in secondary
@@ -616,2 +617,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 +620 @@
-@@ -482,6 +499,14 @@ eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete)
+@@ -477,6 +493,14 @@ eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete)
@@ -634 +635 @@
-@@ -659,6 +684,14 @@ eth_igc_stop(struct rte_eth_dev *dev)
+@@ -654,6 +678,14 @@ eth_igc_stop(struct rte_eth_dev *dev)
@@ -649 +650 @@
-@@ -970,6 +1003,14 @@ eth_igc_start(struct rte_eth_dev *dev)
+@@ -965,6 +997,14 @@ eth_igc_start(struct rte_eth_dev *dev)
@@ -662,4 +663,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);
+@@ -1548,7 +1588,15 @@ eth_igc_fw_version_get(struct rte_eth_dev *dev, char *fw_version,
+ struct igc_fw_version fw;
@@ -672,0 +674 @@
+ igc_get_fw_version(hw, &fw);
@@ -676 +677,0 @@
- e1000_get_fw_version(hw, &fw);
@@ -679 +680,2 @@
-@@ -1643,6 +1692,14 @@ eth_igc_led_on(struct rte_eth_dev *dev)
+ if (fw.or_valid) {
+@@ -1638,6 +1686,14 @@ eth_igc_led_on(struct rte_eth_dev *dev)
@@ -681 +683 @@
- struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -691 +693 @@
- return e1000_led_on(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
+ return igc_led_on(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
@@ -694 +696 @@
-@@ -1651,6 +1708,14 @@ eth_igc_led_off(struct rte_eth_dev *dev)
+@@ -1646,6 +1702,14 @@ eth_igc_led_off(struct rte_eth_dev *dev)
@@ -696 +698 @@
- struct e1000_hw *hw = IGC_DEV_PRIVATE_HW(dev);
+ struct igc_hw *hw = IGC_DEV_PRIVATE_HW(dev);
@@ -706 +708 @@
- return e1000_led_off(hw) == E1000_SUCCESS ? 0 : -ENOTSUP;
+ return igc_led_off(hw) == IGC_SUCCESS ? 0 : -ENOTSUP;
@@ -709 +711 @@
-@@ -2194,6 +2259,10 @@ eth_igc_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -2188,6 +2252,10 @@ eth_igc_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -720 +722 @@
-@@ -2213,6 +2282,10 @@ eth_igc_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -2207,6 +2275,10 @@ eth_igc_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -731 +733 @@
-@@ -2276,6 +2349,14 @@ eth_igc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -2270,6 +2342,14 @@ eth_igc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -746 +748 @@
-@@ -2777,6 +2858,14 @@ eth_igc_timesync_read_rx_timestamp(__rte_unused struct rte_eth_dev *dev,
+@@ -2771,6 +2851,14 @@ eth_igc_timesync_read_rx_timestamp(__rte_unused struct rte_eth_dev *dev,
@@ -761 +763 @@
-@@ -2813,6 +2902,14 @@ eth_igc_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
+@@ -2807,6 +2895,14 @@ eth_igc_timesync_read_tx_timestamp(struct rte_eth_dev *dev,
@@ -773,2 +775,2 @@
- val = E1000_READ_REG(hw, E1000_TSYNCTXCTL);
- if (!(val & E1000_TSYNCTXCTL_VALID))
+ val = IGC_READ_REG(hw, IGC_TSYNCTXCTL);
+ if (!(val & IGC_TSYNCTXCTL_VALID))
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ixgbe: fix crashes in secondary processes' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
2025-04-08 8:01 ` patch 'net/e1000: fix crashes in secondary processes' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " Xueming Li
` (16 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=3adf29498e49d1be5bda18d84ef334b68f89bd23
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 3adf29498e49d1be5bda18d84ef334b68f89bd23 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 14573b542e..e32eff6244 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 f4ec485d69..b915b4c090 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2622,6 +2622,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. */
@@ -2910,6 +2918,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 */
@@ -2972,6 +2988,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) {
@@ -3003,6 +3028,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) {
@@ -3865,6 +3899,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",
@@ -4765,6 +4807,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;
}
@@ -4774,6 +4824,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;
}
@@ -4847,6 +4905,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);
@@ -5052,6 +5118,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);
@@ -5200,6 +5274,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);
}
@@ -5209,6 +5291,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);
}
@@ -5217,6 +5307,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);
@@ -5376,6 +5474,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. */
@@ -5479,6 +5585,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;
@@ -5594,6 +5708,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 */
@@ -5822,6 +5944,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);
@@ -5844,6 +5970,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);
@@ -5864,6 +5994,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);
@@ -5891,6 +6025,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);
@@ -6168,6 +6306,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]
@@ -6194,6 +6340,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.
@@ -6234,6 +6388,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;
@@ -6420,6 +6582,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)
@@ -6711,6 +6881,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,
@@ -7118,6 +7296,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) ||
@@ -7138,6 +7324,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) ||
@@ -7158,6 +7352,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,
@@ -7203,6 +7405,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);
@@ -7794,6 +8004,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;
@@ -7816,6 +8034,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;
@@ -7841,6 +8067,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;
@@ -7865,6 +8099,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.508068193 +0800
+++ 0017-net-ixgbe-fix-crashes-in-secondary-processes.patch 2025-04-08 15:39:05.906436588 +0800
@@ -1 +1 @@
-From c092ecb6d1d4cc27eebbcaf43c2ad35c4cfed4e1 Mon Sep 17 00:00:00 2001
+From 3adf29498e49d1be5bda18d84ef334b68f89bd23 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c092ecb6d1d4cc27eebbcaf43c2ad35c4cfed4e1 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +20,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 +25 @@
-index c5c6a6c34b..8dcde7ae1c 100644
+index 14573b542e..e32eff6244 100644
@@ -44,5 +46,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 f4ec485d69..b915b4c090 100644
+--- a/drivers/net/ixgbe/ixgbe_ethdev.c
++++ b/drivers/net/ixgbe/ixgbe_ethdev.c
+@@ -2622,6 +2622,14 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
@@ -63 +65 @@
-@@ -2918,6 +2926,14 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2910,6 +2918,14 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -78 +80 @@
-@@ -2980,6 +2996,15 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -2972,6 +2988,15 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
@@ -94 +96 @@
-@@ -3011,6 +3036,15 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -3003,6 +3028,15 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
@@ -110 +112 @@
-@@ -3879,6 +3913,14 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
+@@ -3865,6 +3899,14 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
@@ -125 +127 @@
-@@ -4789,6 +4831,14 @@ ixgbe_dev_led_on(struct rte_eth_dev *dev)
+@@ -4765,6 +4807,14 @@ ixgbe_dev_led_on(struct rte_eth_dev *dev)
@@ -140 +142 @@
-@@ -4798,6 +4848,14 @@ ixgbe_dev_led_off(struct rte_eth_dev *dev)
+@@ -4774,6 +4824,14 @@ ixgbe_dev_led_off(struct rte_eth_dev *dev)
@@ -155 +157 @@
-@@ -4871,6 +4929,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -4847,6 +4905,14 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
@@ -170 +172 @@
-@@ -5076,6 +5142,14 @@ ixgbe_priority_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_pfc_conf *p
+@@ -5052,6 +5118,14 @@ ixgbe_priority_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_pfc_conf *p
@@ -185 +187 @@
-@@ -5224,6 +5298,14 @@ ixgbe_add_rar(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -5200,6 +5274,14 @@ ixgbe_add_rar(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -200 +202 @@
-@@ -5233,6 +5315,14 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
+@@ -5209,6 +5291,14 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
@@ -215 +217 @@
-@@ -5241,6 +5331,14 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
+@@ -5217,6 +5307,14 @@ ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *addr)
@@ -230 +232 @@
-@@ -5400,6 +5498,14 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
+@@ -5376,6 +5474,14 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
@@ -245 +247 @@
-@@ -5503,6 +5609,14 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
+@@ -5479,6 +5585,14 @@ ixgbevf_dev_stop(struct rte_eth_dev *dev)
@@ -260 +262 @@
-@@ -5618,6 +5732,14 @@ ixgbevf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -5594,6 +5708,14 @@ ixgbevf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -275 +277 @@
-@@ -5846,6 +5968,10 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5822,6 +5944,10 @@ ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -286 +288 @@
-@@ -5868,6 +5994,10 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5844,6 +5970,10 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -297 +299 @@
-@@ -5888,6 +6018,10 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5864,6 +5994,10 @@ ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -308 +310 @@
-@@ -5915,6 +6049,10 @@ ixgbe_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -5891,6 +6025,10 @@ ixgbe_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
@@ -319 +321 @@
-@@ -6194,6 +6332,14 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+@@ -6168,6 +6306,14 @@ ixgbevf_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
@@ -334 +336 @@
-@@ -6220,6 +6366,14 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)
+@@ -6194,6 +6340,14 @@ ixgbevf_remove_mac_addr(struct rte_eth_dev *dev, uint32_t index)
@@ -349 +351 @@
-@@ -6260,6 +6414,14 @@ ixgbevf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -6234,6 +6388,14 @@ ixgbevf_set_default_mac_addr(struct rte_eth_dev *dev,
@@ -364 +366 @@
-@@ -6446,6 +6608,14 @@ ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
+@@ -6420,6 +6582,14 @@ ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
@@ -379 +381 @@
-@@ -6737,6 +6907,14 @@ ixgbe_dev_set_mc_addr_list(struct rte_eth_dev *dev,
+@@ -6711,6 +6881,14 @@ ixgbe_dev_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -394 +396 @@
-@@ -7157,6 +7335,14 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
+@@ -7118,6 +7296,14 @@ ixgbe_get_eeprom(struct rte_eth_dev *dev,
@@ -409 +411 @@
-@@ -7177,6 +7363,14 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
+@@ -7138,6 +7324,14 @@ ixgbe_set_eeprom(struct rte_eth_dev *dev,
@@ -424 +426 @@
-@@ -7197,6 +7391,14 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
+@@ -7158,6 +7352,14 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
@@ -439 +441 @@
-@@ -7242,6 +7444,14 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
+@@ -7203,6 +7405,14 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
@@ -454 +456 @@
-@@ -7837,6 +8047,14 @@ ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev)
+@@ -7794,6 +8004,14 @@ ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev)
@@ -469 +471 @@
-@@ -7859,6 +8077,14 @@ ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev)
+@@ -7816,6 +8034,14 @@ ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev)
@@ -484 +486 @@
-@@ -7884,6 +8110,14 @@ ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)
+@@ -7841,6 +8067,14 @@ ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)
@@ -499 +501 @@
-@@ -7908,6 +8142,14 @@ ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev)
+@@ -7865,6 +8099,14 @@ ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ixgbe: fix minimum Rx/Tx descriptors' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
2025-04-08 8:01 ` patch 'net/e1000: fix crashes in secondary processes' " Xueming Li
2025-04-08 8:01 ` patch 'net/ixgbe: " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5/hws: fix fragmented packet type matching' " Xueming Li
` (15 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Mingjin Ye; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=05298e9879e2f51b87efdb91bc6b65336e5e423d
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 05298e9879e2f51b87efdb91bc6b65336e5e423d 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 e32eff6244..d54c20e1ea 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -68,13 +68,11 @@ 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
-These conditions are checked in the code.
+* rxq->nb_rx_desc <= IXGBE_MAX_RING_DESC
-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.
+These conditions are checked in the code.
By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
index ee89c89929..78f17a0825 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.539412783 +0800
+++ 0018-net-ixgbe-fix-minimum-Rx-Tx-descriptors.patch 2025-04-08 15:39:05.916436584 +0800
@@ -1 +1 @@
-From 6808ee1ceddc76846f80ae3d05aad374a34a1754 Mon Sep 17 00:00:00 2001
+From 05298e9879e2f51b87efdb91bc6b65336e5e423d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6808ee1ceddc76846f80ae3d05aad374a34a1754 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +21,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 +26 @@
-index 8dcde7ae1c..a03ec7a7e8 100644
+index e32eff6244..d54c20e1ea 100644
@@ -42 +44 @@
- 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.
@@ -44,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 ee89c89929..78f17a0825 100644
+--- a/drivers/net/ixgbe/ixgbe_rxtx.h
++++ b/drivers/net/ixgbe/ixgbe_rxtx.h
+@@ -24,7 +24,7 @@
@@ -54 +56 @@
- #define IXGBE_MAX_RING_DESC 8192
+ #define IXGBE_MAX_RING_DESC 4096
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5/hws: fix fragmented packet type matching' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (2 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5: fix leak in HWS flow counter action' " Xueming Li
` (14 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Alexander Kozyrev; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=9cdc6c49e8edcb75146184e536fc1d8292565d7f
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 9cdc6c49e8edcb75146184e536fc1d8292565d7f Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Thu, 19 Dec 2024 18:05:49 +0200
Subject: [PATCH] net/mlx5/hws: fix fragmented packet type matching
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 5782bb1a5902a498176cb2fd0903d7a97be1b01a ]
Fragmented PTYPE matching requires setting the mask to the exact
RTE_PTYPE_L4_FRAG value to avoid conflicts with other L4 types.
Adding L2 or L3 types to the same mask should be allowed,
but there is a check for the exact value for setting the definer.
This prevents the fragmented packets from matching in case of L2/L3
mask is provided as well. Mask out L2/L3 types when setting L4_FRAG.
Fixes: 761439a20f82 ("net/mlx5/hws: support fragmented packet type matching")
Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index ef437a6dbd..93e15122ed 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -1884,7 +1884,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
* Cannot be combined with Layer 4 Types (TCP/UDP).
* The exact value must be specified in the mask.
*/
- if (m->packet_type == RTE_PTYPE_L4_FRAG) {
+ if ((m->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_FRAG) {
fc = &cd->fc[DR_CALC_FNAME(PTYPE_FRAG, false)];
fc->item_idx = item_idx;
fc->tag_set = &mlx5dr_definer_ptype_frag_set;
@@ -1900,7 +1900,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
}
if (m->packet_type & RTE_PTYPE_INNER_L4_MASK) {
- if (m->packet_type == RTE_PTYPE_INNER_L4_FRAG) {
+ if ((m->packet_type & RTE_PTYPE_INNER_L4_MASK) == RTE_PTYPE_INNER_L4_FRAG) {
fc = &cd->fc[DR_CALC_FNAME(PTYPE_FRAG, true)];
fc->item_idx = item_idx;
fc->tag_set = &mlx5dr_definer_ptype_frag_set;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.561060976 +0800
+++ 0019-net-mlx5-hws-fix-fragmented-packet-type-matching.patch 2025-04-08 15:39:05.916436584 +0800
@@ -1 +1 @@
-From 5782bb1a5902a498176cb2fd0903d7a97be1b01a Mon Sep 17 00:00:00 2001
+From 9cdc6c49e8edcb75146184e536fc1d8292565d7f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5782bb1a5902a498176cb2fd0903d7a97be1b01a ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index e6d3dbfa46..837e0c47bd 100644
+index ef437a6dbd..93e15122ed 100644
@@ -26 +28 @@
-@@ -2205,7 +2205,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
+@@ -1884,7 +1884,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
@@ -35 +37 @@
-@@ -2227,7 +2227,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
+@@ -1900,7 +1900,7 @@ mlx5dr_definer_conv_item_ptype(struct mlx5dr_definer_conv_data *cd,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix leak in HWS flow counter action' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (3 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/mlx5/hws: fix fragmented packet type matching' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5: fix hardware packet type translation' " Xueming Li
` (13 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: David Marchand; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=c544957af5fc3e3a83342c8205af524bc711eff1
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From c544957af5fc3e3a83342c8205af524bc711eff1 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c
index 7a88a4001a..ca6fd51cc6 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.c
+++ b/drivers/net/mlx5/mlx5_hws_cnt.c
@@ -677,7 +677,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;
@@ -713,6 +713,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.612768759 +0800
+++ 0020-net-mlx5-fix-leak-in-HWS-flow-counter-action.patch 2025-04-08 15:39:05.916436584 +0800
@@ -1 +1 @@
-From 9e34fcc81c005a60c919c572ef83c10ebb0201af Mon Sep 17 00:00:00 2001
+From c544957af5fc3e3a83342c8205af524bc711eff1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9e34fcc81c005a60c919c572ef83c10ebb0201af ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 0197c098f6..eaceedd5ba 100644
+index 7a88a4001a..ca6fd51cc6 100644
@@ -22 +24 @@
-@@ -723,7 +723,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+@@ -677,7 +677,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
@@ -24,3 +26,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 +33,3 @@
-@@ -767,6 +767,7 @@ error:
- MLX5_ASSERT(ret);
+@@ -713,6 +713,7 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+ return cpool;
+ error:
@@ -34 +36,0 @@
- priv->hws_cpool = NULL;
@@ -36 +38 @@
- return ret;
+ return NULL;
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix hardware packet type translation' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (4 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/mlx5: fix leak in HWS flow counter action' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'common/cnxk: fix inbound IPsec SA setup' " Xueming Li
` (12 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Viacheslav Ovsiienko; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=08042c8a0f41212bfe61c4e8f7e69a6a48c96292
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 08042c8a0f41212bfe61c4e8f7e69a6a48c96292 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.635736352 +0800
+++ 0021-net-mlx5-fix-hardware-packet-type-translation.patch 2025-04-08 15:39:05.926436581 +0800
@@ -1 +1 @@
-From ed9935258f5c3cbb07b2828b6072dec9be8c3891 Mon Sep 17 00:00:00 2001
+From 08042c8a0f41212bfe61c4e8f7e69a6a48c96292 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ed9935258f5c3cbb07b2828b6072dec9be8c3891 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index eadadcdffb..9c075f6a56 100644
+index 54d410b513..6ed944fa78 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'common/cnxk: fix inbound IPsec SA setup' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (5 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/mlx5: fix hardware packet type translation' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'stack: fix pop in C11 implementation' " Xueming Li
` (11 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Nithin Dabilpuram; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f7d5fbc759dbf15aeb2a57c867087f3fdeda844d
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From f7d5fbc759dbf15aeb2a57c867087f3fdeda844d 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 40685d0912..1b51dab6b4 100644
--- a/drivers/common/cnxk/cnxk_security.c
+++ b/drivers/common/cnxk/cnxk_security.c
@@ -360,7 +360,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.657228745 +0800
+++ 0022-common-cnxk-fix-inbound-IPsec-SA-setup.patch 2025-04-08 15:39:05.926436581 +0800
@@ -1 +1 @@
-From 26e8a2ac205749441971f81e5de0eff57e94ce90 Mon Sep 17 00:00:00 2001
+From f7d5fbc759dbf15aeb2a57c867087f3fdeda844d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 26e8a2ac205749441971f81e5de0eff57e94ce90 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 3a747ed441..a3c06c1e88 100644
+index 40685d0912..1b51dab6b4 100644
@@ -21 +23 @@
-@@ -315,7 +315,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
+@@ -360,7 +360,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
@@ -23 +25 @@
- roc_ot_ipsec_inb_sa_init(sa);
+ roc_ot_ipsec_inb_sa_init(sa, is_inline);
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'stack: fix pop in C11 implementation' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (6 preceding siblings ...)
2025-04-08 8:01 ` patch 'common/cnxk: fix inbound IPsec SA setup' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: fix AES-ECB test lengths' " Xueming Li
` (10 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Andre Muezerie; +Cc: Xueming Li, David Marchand, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=ed66387d301de1dc8022128b4b2e3ad3223f3504
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From ed66387d301de1dc8022128b4b2e3ad3223f3504 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 9cb69983d5..3d83bad747 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 = rte_atomic_load_explicit(&list->len, rte_memory_order_relaxed);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.678600838 +0800
+++ 0023-stack-fix-pop-in-C11-implementation.patch 2025-04-08 15:39:05.926436581 +0800
@@ -1 +1 @@
-From 916424f2c6029cd8da5c56ed62847a4b09d7e0ac Mon Sep 17 00:00:00 2001
+From ed66387d301de1dc8022128b4b2e3ad3223f3504 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 916424f2c6029cd8da5c56ed62847a4b09d7e0ac ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 60d46e963b..ee1c79c095 100644
+index 9cb69983d5..3d83bad747 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/crypto: fix AES-ECB test lengths' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (7 preceding siblings ...)
2025-04-08 8:01 ` patch 'stack: fix pop in C11 implementation' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " Xueming Li
` (9 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Shaokai Zhang; +Cc: Xueming Li, Joey Xing, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6302c7969908210cbc261eabfde781aa29bc71bd
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6302c7969908210cbc261eabfde781aa29bc71bd 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 90b3d473b7..95d09b8ced 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1317,6 +1317,7 @@ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
Shani Peretz <shperetz@nvidia.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 7127156cc4..505e603b7e 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
}
};
@@ -5103,7 +5103,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.699525631 +0800
+++ 0024-test-crypto-fix-AES-ECB-test-lengths.patch 2025-04-08 15:39:05.936436578 +0800
@@ -1 +1 @@
-From 4d6b2633b030f6b469c78fd00f012c8192979332 Mon Sep 17 00:00:00 2001
+From 6302c7969908210cbc261eabfde781aa29bc71bd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4d6b2633b030f6b469c78fd00f012c8192979332 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 3ea758ca12..b3ffe83f46 100644
+index 90b3d473b7..95d09b8ced 100644
@@ -28 +30 @@
-@@ -1396,6 +1396,7 @@ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
+@@ -1317,6 +1317,7 @@ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (8 preceding siblings ...)
2025-04-08 8:01 ` patch 'test/crypto: fix AES-ECB test lengths' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'crypto/cnxk: fix asymmetric operation status code' " Xueming Li
` (8 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Nithinsen Kaithakadan; +Cc: Xueming Li, Anoob Joseph, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=0ac73425a8b36b3de6dd5430dec8f9c1c284902a
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 0ac73425a8b36b3de6dd5430dec8f9c1c284902a 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 95d09b8ced..7b2798a31a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1059,6 +1059,7 @@ Nipun Gupta <nipun.gupta@amd.com> <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>
Nizan Zorea <nizan.zorea@intel.com>
diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c
index 6ae0e49fd7..9956b240f0 100644
--- a/examples/ipsec-secgw/sa.c
+++ b/examples/ipsec-secgw/sa.c
@@ -104,14 +104,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.724204723 +0800
+++ 0025-examples-ipsec-secgw-fix-IV-length-in-CTR-192-256.patch 2025-04-08 15:39:05.936436578 +0800
@@ -1 +1 @@
-From 7e2a7c336737084d8d8ef89260e511ff5670edbf Mon Sep 17 00:00:00 2001
+From 0ac73425a8b36b3de6dd5430dec8f9c1c284902a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7e2a7c336737084d8d8ef89260e511ff5670edbf ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index b3ffe83f46..b8c482d0e5 100644
+index 95d09b8ced..7b2798a31a 100644
@@ -28 +30,2 @@
-@@ -1119,6 +1119,7 @@ Nir Efrati <nir.efrati@intel.com>
+@@ -1059,6 +1059,7 @@ Nipun Gupta <nipun.gupta@amd.com> <nipun.gupta@nxp.com>
+ Nir Efrati <nir.efrati@intel.com>
@@ -30 +32,0 @@
- Nishikant Nayak <nishikanta.nayak@intel.com>
@@ -37 +39 @@
-index 425bfbf590..313919b4b5 100644
+index 6ae0e49fd7..9956b240f0 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/cnxk: fix asymmetric operation status code' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (9 preceding siblings ...)
2025-04-08 8:01 ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: remove unused variable' " Xueming Li
` (7 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Gowrishankar Muthukrishnan; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e570e9f5e694d13d49bf6293812a8b70cdee6698
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e570e9f5e694d13d49bf6293812a8b70cdee6698 Mon Sep 17 00:00:00 2001
From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Date: Sun, 16 Feb 2025 19:55:07 +0530
Subject: [PATCH] crypto/cnxk: fix asymmetric operation status code
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit a5c2058e22edd150ace5b23076fde7f9e722755d ]
Return error code in an asymmetric operation status
when none of the known conditions met.
Fixes: d29c4e0a4bea ("crypto/cnxk: fix ECDH public key verification")
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
drivers/crypto/cnxk/cn9k_cryptodev_ops.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
index eb5575b7ec..3ef4dce138 100644
--- a/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
+++ b/drivers/crypto/cnxk/cn9k_cryptodev_ops.c
@@ -592,6 +592,8 @@ cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop,
cop->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
return;
}
+ } else {
+ cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
}
} else
cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.746021716 +0800
+++ 0026-crypto-cnxk-fix-asymmetric-operation-status-code.patch 2025-04-08 15:39:05.936436578 +0800
@@ -1 +1 @@
-From a5c2058e22edd150ace5b23076fde7f9e722755d Mon Sep 17 00:00:00 2001
+From e570e9f5e694d13d49bf6293812a8b70cdee6698 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a5c2058e22edd150ace5b23076fde7f9e722755d ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 8d10bc9f9b..2b1bd70c6d 100644
+index eb5575b7ec..3ef4dce138 100644
@@ -21 +23 @@
-@@ -529,6 +529,8 @@ cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop,
+@@ -592,6 +592,8 @@ cn9k_cpt_dequeue_post_process(struct cnxk_cpt_qp *qp, struct rte_crypto_op *cop,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/crypto: remove unused variable' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (10 preceding siblings ...)
2025-04-08 8:01 ` patch 'crypto/cnxk: fix asymmetric operation status code' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'crypto/openssl: validate incorrect RSA signature' " Xueming Li
` (6 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Shaokai Zhang; +Cc: Xueming Li, Joey Xing, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e94b87d237b1157a64517d2024f9a5fac289f713
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e94b87d237b1157a64517d2024f9a5fac289f713 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 f2c417a267..feee8c3f42 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.767271009 +0800
+++ 0027-test-crypto-remove-unused-variable.patch 2025-04-08 15:39:05.946436575 +0800
@@ -1 +1 @@
-From dafeb6ae229bc572fc809e62e4e8e242b08ca2f7 Mon Sep 17 00:00:00 2001
+From e94b87d237b1157a64517d2024f9a5fac289f713 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit dafeb6ae229bc572fc809e62e4e8e242b08ca2f7 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index bb54a33d62..190a220c73 100644
+index f2c417a267..feee8c3f42 100644
@@ -27 +29 @@
-@@ -87,7 +87,6 @@ struct crypto_testsuite_params {
+@@ -90,7 +90,6 @@ struct crypto_testsuite_params {
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/openssl: validate incorrect RSA signature' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (11 preceding siblings ...)
2025-04-08 8:01 ` patch 'test/crypto: remove unused variable' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: fix check for OOP header data' " Xueming Li
` (5 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Gowrishankar Muthukrishnan; +Cc: Xueming Li, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=1beaef965d323ec092dd7ac589c10d44491c4bfa
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 1beaef965d323ec092dd7ac589c10d44491c4bfa 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 11734c4c21..1e6f0467e3 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -2803,9 +2803,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.788577203 +0800
+++ 0028-crypto-openssl-validate-incorrect-RSA-signature.patch 2025-04-08 15:39:05.946436575 +0800
@@ -1 +1 @@
-From 6c209dd8785f34bfdc99b869c14e063d084508c2 Mon Sep 17 00:00:00 2001
+From 1beaef965d323ec092dd7ac589c10d44491c4bfa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6c209dd8785f34bfdc99b869c14e063d084508c2 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index b090611bd0..5bfad92b7c 100644
+index 11734c4c21..1e6f0467e3 100644
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/crypto: fix check for OOP header data' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (12 preceding siblings ...)
2025-04-08 8:01 ` patch 'crypto/openssl: validate incorrect RSA signature' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'crypto/qat: fix SM3 state size' " Xueming Li
` (4 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Arkadiusz Kusztal; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=923c56406f200d77e6fb969b4b23b4010096b766
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 923c56406f200d77e6fb969b4b23b4010096b766 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 7d9fe29c02..48306266ba 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -12473,6 +12473,8 @@ test_authenticated_encryption_sessionless(
struct crypto_testsuite_params *ts_params = &testsuite_params;
struct crypto_unittest_params *ut_params = &unittest_params;
+ uint32_t i;
+ uint8_t *buffer_oop;
int retval;
uint8_t *ciphertext, *auth_tag;
uint16_t plaintext_pad_len;
@@ -12542,6 +12544,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);
@@ -12576,6 +12590,8 @@ test_authenticated_decryption_sessionless(
struct crypto_testsuite_params *ts_params = &testsuite_params;
struct crypto_unittest_params *ut_params = &unittest_params;
+ uint32_t i;
+ uint8_t *buffer_oop;
int retval;
uint8_t *plaintext;
uint8_t key[tdata->key.len + 1];
@@ -12656,6 +12672,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.811698895 +0800
+++ 0029-test-crypto-fix-check-for-OOP-header-data.patch 2025-04-08 15:39:05.956436571 +0800
@@ -1 +1 @@
-From 27eb74ea6e25966d3857539cb15ddd4f20f05ebe Mon Sep 17 00:00:00 2001
+From 923c56406f200d77e6fb969b4b23b4010096b766 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 27eb74ea6e25966d3857539cb15ddd4f20f05ebe ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -16,2 +18,2 @@
- app/test/test_cryptodev.c | 29 +++++++++++++++++++++++++++--
- 1 file changed, 27 insertions(+), 2 deletions(-)
+ app/test/test_cryptodev.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
@@ -20 +22 @@
-index 2e58819fca..bbab034c5f 100644
+index 7d9fe29c02..48306266ba 100644
@@ -23 +25 @@
-@@ -13798,8 +13798,9 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
+@@ -12473,6 +12473,8 @@ test_authenticated_encryption_sessionless(
@@ -27,0 +30 @@
++ uint8_t *buffer_oop;
@@ -29,2 +32 @@
-- uint8_t *ciphertext, *auth_tag;
-+ uint8_t *ciphertext, *auth_tag, *buffer_oop;
+ uint8_t *ciphertext, *auth_tag;
@@ -32,3 +34 @@
- struct rte_cryptodev_info dev_info;
-
-@@ -13875,6 +13876,18 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
+@@ -12542,6 +12544,18 @@ test_authenticated_encryption_sessionless(
@@ -53 +53 @@
-@@ -13907,8 +13920,9 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
+@@ -12576,6 +12590,8 @@ test_authenticated_decryption_sessionless(
@@ -57,0 +58 @@
++ uint8_t *buffer_oop;
@@ -59,6 +60,3 @@
-- uint8_t *plaintext;
-+ uint8_t *plaintext, *buffer_oop;
- struct rte_cryptodev_info dev_info;
-
- 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)
+ uint8_t *plaintext;
+ uint8_t key[tdata->key.len + 1];
+@@ -12656,6 +12672,17 @@ test_authenticated_decryption_sessionless(
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'crypto/qat: fix SM3 state size' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (13 preceding siblings ...)
2025-04-08 8:01 ` patch 'test/crypto: fix check for OOP header data' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'test/dma: fix pointers in IOVA as PA mode' " Xueming Li
` (3 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Arkadiusz Kusztal; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=aaef87c762874bcaaf2db0d7d32f3f1258e77330
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From aaef87c762874bcaaf2db0d7d32f3f1258e77330 Mon Sep 17 00:00:00 2001
From: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
Date: Wed, 26 Feb 2025 09:30:19 +0000
Subject: [PATCH] crypto/qat: fix SM3 state size
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 873577fac7e4bce6d6ae9bacfae8eebd08acfce7 ]
This commit fixes incorrectly set state size within
the QAT PMD.
Fixes: 75fd4bbc94ab ("crypto/qat: support SM3 hash algorithm")
Signed-off-by: Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
---
drivers/crypto/qat/qat_sym_session.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c
index 224cc0ab50..f6dd96497c 100644
--- a/drivers/crypto/qat/qat_sym_session.c
+++ b/drivers/crypto/qat/qat_sym_session.c
@@ -2297,7 +2297,8 @@ int qat_sym_cd_auth_set(struct qat_sym_session *cdesc,
qat_hash_get_block_size(cdesc->qat_hash_alg) >> 3;
auth_param->u2.inner_prefix_sz =
qat_hash_get_block_size(cdesc->qat_hash_alg);
- auth_param->hash_state_sz = digestsize;
+ auth_param->hash_state_sz = (hash_cd_ctrl->outer_prefix_sz +
+ auth_param->u2.inner_prefix_sz) >> 3;
if (qat_dev_gen == QAT_GEN4) {
ICP_QAT_FW_HASH_FLAG_MODE2_SET(
hash_cd_ctrl->hash_flags,
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.843381485 +0800
+++ 0030-crypto-qat-fix-SM3-state-size.patch 2025-04-08 15:39:05.966436568 +0800
@@ -1 +1 @@
-From 873577fac7e4bce6d6ae9bacfae8eebd08acfce7 Mon Sep 17 00:00:00 2001
+From aaef87c762874bcaaf2db0d7d32f3f1258e77330 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 873577fac7e4bce6d6ae9bacfae8eebd08acfce7 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 9b26f8a89b..7f370f03fb 100644
+index 224cc0ab50..f6dd96497c 100644
@@ -21 +23 @@
-@@ -2473,7 +2473,8 @@ int qat_sym_cd_auth_set(struct qat_sym_session *cdesc,
+@@ -2297,7 +2297,8 @@ int qat_sym_cd_auth_set(struct qat_sym_session *cdesc,
@@ -28,2 +30 @@
- if (qat_dev_gen == QAT_GEN4 || qat_dev_gen == QAT_GEN5 ||
- qat_dev_gen == QAT_VQAT) {
+ if (qat_dev_gen == QAT_GEN4) {
@@ -30,0 +32 @@
+ hash_cd_ctrl->hash_flags,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'test/dma: fix pointers in IOVA as PA mode' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (14 preceding siblings ...)
2025-04-08 8:01 ` patch 'crypto/qat: fix SM3 state size' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/iavf: fix mbuf release in Arm multi-process' " Xueming Li
` (2 subsequent siblings)
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Xueming Li, Chengwen Feng, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e640e4a1f0b62d5d15e00a1d0fc3f171db150ecb
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e640e4a1f0b62d5d15e00a1d0fc3f171db150ecb 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.867242277 +0800
+++ 0031-test-dma-fix-pointers-in-IOVA-as-PA-mode.patch 2025-04-08 15:39:05.966436568 +0800
@@ -1 +1 @@
-From 5879d209d847c1025d0852dad7f3bee3e5cff2f6 Mon Sep 17 00:00:00 2001
+From e640e4a1f0b62d5d15e00a1d0fc3f171db150ecb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5879d209d847c1025d0852dad7f3bee3e5cff2f6 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index d40c05cfbf..fb49fcb56b 100644
+index 4a181af90a..0e66784de7 100644
@@ -23 +25 @@
-@@ -515,7 +515,9 @@ test_dma_completed(void)
+@@ -441,7 +441,9 @@ test_dma_completed(void)
@@ -34 +36 @@
-@@ -537,7 +539,9 @@ test_dma_completed(void)
+@@ -463,7 +465,9 @@ test_dma_completed(void)
@@ -45 +47 @@
-@@ -572,7 +576,9 @@ test_dma_completed_status(void)
+@@ -498,7 +502,9 @@ test_dma_completed_status(void)
@@ -56 +58 @@
-@@ -591,7 +597,9 @@ test_dma_completed_status(void)
+@@ -517,7 +523,9 @@ test_dma_completed_status(void)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/iavf: fix mbuf release in Arm multi-process' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (15 preceding siblings ...)
2025-04-08 8:01 ` patch 'test/dma: fix pointers in IOVA as PA mode' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/ice: fix flow engines order' " Xueming Li
2025-04-08 8:01 ` patch 'net/ice: fix dropped packets when using VRRP' " Xueming Li
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Yang Ming; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=407880c33ec2927739644ee65608deeb9cbb61f6
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 407880c33ec2927739644ee65608deeb9cbb61f6 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 ced1c21c24..c4bd128043 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -411,6 +411,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 f432f9d956..d6731327f6 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -437,6 +437,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
@@ -760,6 +761,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.888909270 +0800
+++ 0032-net-iavf-fix-mbuf-release-in-Arm-multi-process.patch 2025-04-08 15:39:05.966436568 +0800
@@ -1 +1 @@
-From 289d1b2e348032543f9b823d2eaf3d0e0073af56 Mon Sep 17 00:00:00 2001
+From 407880c33ec2927739644ee65608deeb9cbb61f6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 289d1b2e348032543f9b823d2eaf3d0e0073af56 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19,3 +21,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 +26,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 ced1c21c24..c4bd128043 100644
+--- a/drivers/net/iavf/iavf_rxtx.c
++++ b/drivers/net/iavf/iavf_rxtx.c
+@@ -411,6 +411,9 @@ struct iavf_rxq_ops iavf_rxq_release_mbufs_ops[] = {
@@ -37,6 +39,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 f432f9d956..d6731327f6 100644
+--- a/drivers/net/iavf/iavf_rxtx.h
++++ b/drivers/net/iavf/iavf_rxtx.h
+@@ -437,6 +437,7 @@ enum iavf_rxtx_rel_mbufs_type {
@@ -50,2 +52,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);
+@@ -760,6 +761,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 +55 @@
- 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 +60,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 +84 @@
- rxq->mbuf_initializer = ci_rxq_mbuf_initializer(rxq->port_id);
- return 0;
+ return iavf_rxq_vec_setup_default(rxq);
@@ -84,0 +86 @@
+
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ice: fix flow engines order' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (16 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/iavf: fix mbuf release in Arm multi-process' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
2025-04-08 8:01 ` patch 'net/ice: fix dropped packets when using VRRP' " Xueming Li
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Vladimir Medvedkin; +Cc: Xueming Li, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=e42c10138ea18f856bc57d8822c65a68575090af
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From e42c10138ea18f856bc57d8822c65a68575090af Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 10 Mar 2025 17:40:28 +0000
Subject: [PATCH] net/ice: fix flow engines order
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit b309503d63159680d4ff8ca9e968fcb12ac609a0 ]
Currently, the driver evaluates rules with the engines in the order they
are executed in the hardware. However, in this situation, some
wildcarded flows that are also supported by the ACL engine are installed
as switch engine rules, which scales poorly with each distinct wildcard
mask configuration. Reorder flow engine evaluation for RTE flow rule
installation to fix this problem.
Fixes: fabc9e1322e2 ("net/ice: fix flows handling")
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/net/ice/ice_generic_flow.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
index 5c34e0385f..4049157eab 100644
--- a/drivers/net/ice/ice_generic_flow.c
+++ b/drivers/net/ice/ice_generic_flow.c
@@ -2239,9 +2239,9 @@ static struct ice_flow_parser *get_flow_parser(uint32_t group)
{
switch (group) {
case 0:
- return &ice_switch_parser;
- case 1:
return &ice_acl_parser;
+ case 1:
+ return &ice_switch_parser;
case 2:
return &ice_fdir_parser;
default:
@@ -2298,6 +2298,13 @@ ice_flow_process_filter(struct rte_eth_dev *dev,
}
for (int i = 0; i < ICE_FLOW_ENGINE_NB; i++) {
+ /**
+ * Evaluate parsers in the following order:
+ * ACL - for some subset of wildcard matching rules
+ * Switch - This engine is placed after ACL because
+ * it scales worse than ACL for different wildcard masks.
+ * FDIR - for exact match rules
+ **/
parser = get_flow_parser(i);
if (parser == NULL) {
rte_flow_error_set(error, EINVAL,
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.913016462 +0800
+++ 0033-net-ice-fix-flow-engines-order.patch 2025-04-08 15:39:05.976436565 +0800
@@ -1 +1 @@
-From b309503d63159680d4ff8ca9e968fcb12ac609a0 Mon Sep 17 00:00:00 2001
+From e42c10138ea18f856bc57d8822c65a68575090af Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b309503d63159680d4ff8ca9e968fcb12ac609a0 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
- drivers/net/intel/ice/ice_generic_flow.c | 11 +++++++++--
+ drivers/net/ice/ice_generic_flow.c | 11 +++++++++--
@@ -22 +24 @@
-diff --git a/drivers/net/intel/ice/ice_generic_flow.c b/drivers/net/intel/ice/ice_generic_flow.c
+diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
@@ -24,2 +26,2 @@
---- a/drivers/net/intel/ice/ice_generic_flow.c
-+++ b/drivers/net/intel/ice/ice_generic_flow.c
+--- a/drivers/net/ice/ice_generic_flow.c
++++ b/drivers/net/ice/ice_generic_flow.c
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/ice: fix dropped packets when using VRRP' has been queued to stable release 23.11.4
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
` (17 preceding siblings ...)
2025-04-08 8:01 ` patch 'net/ice: fix flow engines order' " Xueming Li
@ 2025-04-08 8:01 ` Xueming Li
18 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:01 UTC (permalink / raw)
To: Matthew Smith; +Cc: Xueming Li, Vladimir Medvedkin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=98daa1ca26436517376f8926f819d3258b74c6da
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 98daa1ca26436517376f8926f819d3258b74c6da 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 86f43050a5..be826d3108 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -1619,6 +1619,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.937186355 +0800
+++ 0034-net-ice-fix-dropped-packets-when-using-VRRP.patch 2025-04-08 15:39:05.976436565 +0800
@@ -1 +1 @@
-From 6f866eb93e796aaf226f66c689e4c4e1b2290c90 Mon Sep 17 00:00:00 2001
+From 98daa1ca26436517376f8926f819d3258b74c6da Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6f866eb93e796aaf226f66c689e4c4e1b2290c90 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
- drivers/net/intel/ice/ice_ethdev.c | 4 ++++
+ drivers/net/ice/ice_ethdev.c | 4 ++++
@@ -22,5 +24,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 86f43050a5..be826d3108 100644
+--- a/drivers/net/ice/ice_ethdev.c
++++ b/drivers/net/ice/ice_ethdev.c
+@@ -1619,6 +1619,10 @@ ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/iavf: check interrupt registration failure' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (89 preceding siblings ...)
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/iavf: fix crash on app exit on FreeBSD' " Xueming Li
` (8 more replies)
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
91 siblings, 9 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Xueming Li, Vladimir Medvedkin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=48a73ea8dcd161ae0a6842c122a4c1429b108b44
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 48a73ea8dcd161ae0a6842c122a4c1429b108b44 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 9f3658c48b..4971090001 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2738,18 +2738,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
ð_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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.964496346 +0800
+++ 0035-net-iavf-check-interrupt-registration-failure.patch 2025-04-08 15:39:05.976436565 +0800
@@ -1 +1 @@
-From 12e8844f0bda3c4e4e578e180dfa0136f9285182 Mon Sep 17 00:00:00 2001
+From 48a73ea8dcd161ae0a6842c122a4c1429b108b44 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 12e8844f0bda3c4e4e578e180dfa0136f9285182 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
- drivers/net/intel/iavf/iavf_ethdev.c | 12 +++++-------
+ drivers/net/iavf/iavf_ethdev.c | 12 +++++-------
@@ -20,5 +22,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 9f3658c48b..4971090001 100644
+--- a/drivers/net/iavf/iavf_ethdev.c
++++ b/drivers/net/iavf/iavf_ethdev.c
+@@ -2738,18 +2738,16 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/iavf: fix crash on app exit on FreeBSD' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix hairpin queue release' " Xueming Li
` (7 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Xueming Li, Vladimir Medvedkin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=0316705217039b687eb16f1f79a90718297e90d5
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 0316705217039b687eb16f1f79a90718297e90d5 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 4971090001..4472fd2c2d 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2611,6 +2611,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:06.991477837 +0800
+++ 0036-net-iavf-fix-crash-on-app-exit-on-FreeBSD.patch 2025-04-08 15:39:05.986436562 +0800
@@ -1 +1 @@
-From 44a86bcf2447d7d914d7195448285aa82eaedcba Mon Sep 17 00:00:00 2001
+From 0316705217039b687eb16f1f79a90718297e90d5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 44a86bcf2447d7d914d7195448285aa82eaedcba ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
- drivers/net/intel/iavf/iavf_ethdev.c | 3 +++
+ drivers/net/iavf/iavf_ethdev.c | 3 +++
@@ -19,5 +21,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 4971090001..4472fd2c2d 100644
+--- a/drivers/net/iavf/iavf_ethdev.c
++++ b/drivers/net/iavf/iavf_ethdev.c
+@@ -2611,6 +2611,9 @@ void
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix hairpin queue release' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
2025-04-08 8:10 ` patch 'net/iavf: fix crash on app exit on FreeBSD' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " Xueming Li
` (6 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Maayan Kashani; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=59d1fbfd973b943ac420afe477c84bfd9afd0533
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 59d1fbfd973b943ac420afe477c84bfd9afd0533 Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani@nvidia.com>
Date: Thu, 27 Feb 2025 12:14:14 +0200
Subject: [PATCH] net/mlx5: fix hairpin queue release
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit 6886b5f39d66770fb7e233fa1c8fc74ed1935116 ]
Fix an assert failure that occurs when releasing a hairpin queue. The issue
arises from incorrect handling of shared Rx queues during release.
Fixes: 09c2555303be ("net/mlx5: support shared Rx queue")
Signed-off-by: Maayan Kashani <mkashani@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
drivers/net/mlx5/mlx5.h | 1 +
drivers/net/mlx5/mlx5_flow.c | 4 ++--
drivers/net/mlx5/mlx5_rx.h | 1 +
drivers/net/mlx5/mlx5_rxq.c | 12 ++++++++----
4 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 55c29e31a2..a9129bf61b 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1886,6 +1886,7 @@ struct mlx5_priv {
uint32_t ctrl_flows; /* Control flow rules. */
rte_spinlock_t flow_list_lock;
struct mlx5_obj_ops obj_ops; /* HW objects operations. */
+ LIST_HEAD(rxq, mlx5_rxq_ctrl) rxqsctrl; /* DPDK Rx queues. */
LIST_HEAD(rxqobj, mlx5_rxq_obj) rxqsobj; /* Verbs/DevX Rx queues. */
struct mlx5_list *hrxqs; /* Hash Rx queues. */
LIST_HEAD(txq, mlx5_txq_ctrl) txqsctrl; /* DPDK Tx queues. */
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 97f678ff4e..bca16a916b 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1748,13 +1748,13 @@ flow_rxq_mark_flag_set(struct rte_eth_dev *dev)
opriv->domain_id != priv->domain_id ||
opriv->mark_enabled)
continue;
- LIST_FOREACH(rxq_ctrl, &opriv->sh->shared_rxqs, share_entry) {
+ LIST_FOREACH(rxq_ctrl, &opriv->rxqsctrl, next) {
rxq_ctrl->rxq.mark = 1;
}
opriv->mark_enabled = 1;
}
} else {
- LIST_FOREACH(rxq_ctrl, &priv->sh->shared_rxqs, share_entry) {
+ LIST_FOREACH(rxq_ctrl, &priv->rxqsctrl, next) {
rxq_ctrl->rxq.mark = 1;
}
priv->mark_enabled = 1;
diff --git a/drivers/net/mlx5/mlx5_rx.h b/drivers/net/mlx5/mlx5_rx.h
index db912adf2a..2205149458 100644
--- a/drivers/net/mlx5/mlx5_rx.h
+++ b/drivers/net/mlx5/mlx5_rx.h
@@ -151,6 +151,7 @@ struct mlx5_rxq_data {
/* RX queue control descriptor. */
struct mlx5_rxq_ctrl {
struct mlx5_rxq_data rxq; /* Data path structure. */
+ LIST_ENTRY(mlx5_rxq_ctrl) next; /* Pointer to the next element. */
LIST_HEAD(priv, mlx5_rxq_priv) owners; /* Owner rxq list. */
struct mlx5_rxq_obj *obj; /* Verbs/DevX elements. */
struct mlx5_dev_ctx_shared *sh; /* Shared context. */
diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index dccfc4eb36..7b377974d3 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -1037,6 +1037,7 @@ mlx5_rx_hairpin_queue_setup(struct rte_eth_dev *dev, uint16_t idx,
rte_errno = ENOMEM;
return -rte_errno;
}
+ rte_atomic_fetch_add_explicit(&rxq_ctrl->ctrl_ref, 1, rte_memory_order_relaxed);
DRV_LOG(DEBUG, "port %u adding hairpin Rx queue %u to list",
dev->data->port_id, idx);
dev->data->rx_queues[idx] = &rxq_ctrl->rxq;
@@ -1971,8 +1972,9 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
tmpl->rxq.shared = 1;
tmpl->share_group = conf->share_group;
tmpl->share_qid = conf->share_qid;
+ LIST_INSERT_HEAD(&priv->sh->shared_rxqs, tmpl, share_entry);
}
- LIST_INSERT_HEAD(&priv->sh->shared_rxqs, tmpl, share_entry);
+ LIST_INSERT_HEAD(&priv->rxqsctrl, tmpl, next);
rte_atomic_store_explicit(&tmpl->ctrl_ref, 1, rte_memory_order_relaxed);
return tmpl;
error:
@@ -2026,7 +2028,7 @@ mlx5_rxq_hairpin_new(struct rte_eth_dev *dev, struct mlx5_rxq_priv *rxq,
tmpl->rxq.idx = idx;
rxq->hairpin_conf = *hairpin_conf;
mlx5_rxq_ref(dev, idx);
- LIST_INSERT_HEAD(&priv->sh->shared_rxqs, tmpl, share_entry);
+ LIST_INSERT_HEAD(&priv->rxqsctrl, tmpl, next);
rte_atomic_store_explicit(&tmpl->ctrl_ref, 1, rte_memory_order_relaxed);
return tmpl;
}
@@ -2301,7 +2303,9 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
if (!rxq_ctrl->is_hairpin)
mlx5_mr_btree_free
(&rxq_ctrl->rxq.mr_ctrl.cache_bh);
- LIST_REMOVE(rxq_ctrl, share_entry);
+ if (rxq_ctrl->rxq.shared)
+ LIST_REMOVE(rxq_ctrl, share_entry);
+ LIST_REMOVE(rxq_ctrl, next);
mlx5_free(rxq_ctrl);
}
dev->data->rx_queues[idx] = NULL;
@@ -2327,7 +2331,7 @@ mlx5_rxq_verify(struct rte_eth_dev *dev)
struct mlx5_rxq_ctrl *rxq_ctrl;
int ret = 0;
- LIST_FOREACH(rxq_ctrl, &priv->sh->shared_rxqs, share_entry) {
+ LIST_FOREACH(rxq_ctrl, &priv->rxqsctrl, next) {
DRV_LOG(DEBUG, "port %u Rx Queue %u still referenced",
dev->data->port_id, rxq_ctrl->rxq.idx);
++ret;
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.013131230 +0800
+++ 0037-net-mlx5-fix-hairpin-queue-release.patch 2025-04-08 15:39:05.996436559 +0800
@@ -1 +1 @@
-From 6886b5f39d66770fb7e233fa1c8fc74ed1935116 Mon Sep 17 00:00:00 2001
+From 59d1fbfd973b943ac420afe477c84bfd9afd0533 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6886b5f39d66770fb7e233fa1c8fc74ed1935116 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 545ba48b3c..6df99c25e2 100644
+index 55c29e31a2..a9129bf61b 100644
@@ -25 +27 @@
-@@ -2023,6 +2023,7 @@ struct mlx5_priv {
+@@ -1886,6 +1886,7 @@ struct mlx5_priv {
@@ -34 +36 @@
-index f8b3e504b3..6169ebc13f 100644
+index 97f678ff4e..bca16a916b 100644
@@ -37 +39 @@
-@@ -1648,13 +1648,13 @@ flow_rxq_mark_flag_set(struct rte_eth_dev *dev)
+@@ -1748,13 +1748,13 @@ flow_rxq_mark_flag_set(struct rte_eth_dev *dev)
@@ -54 +56 @@
-index f80a2e3227..6380895502 100644
+index db912adf2a..2205149458 100644
@@ -57 +59 @@
-@@ -169,6 +169,7 @@ struct __rte_cache_aligned mlx5_rxq_data {
+@@ -151,6 +151,7 @@ struct mlx5_rxq_data {
@@ -66 +68 @@
-index a5971b5cdd..5cf7d4971b 100644
+index dccfc4eb36..7b377974d3 100644
@@ -77 +79 @@
-@@ -2006,8 +2007,9 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
+@@ -1971,8 +1972,9 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
@@ -88 +90 @@
-@@ -2061,7 +2063,7 @@ mlx5_rxq_hairpin_new(struct rte_eth_dev *dev, struct mlx5_rxq_priv *rxq,
+@@ -2026,7 +2028,7 @@ mlx5_rxq_hairpin_new(struct rte_eth_dev *dev, struct mlx5_rxq_priv *rxq,
@@ -97 +99 @@
-@@ -2336,7 +2338,9 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
+@@ -2301,7 +2303,9 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
@@ -108 +110 @@
-@@ -2362,7 +2366,7 @@ mlx5_rxq_verify(struct rte_eth_dev *dev)
+@@ -2327,7 +2331,7 @@ mlx5_rxq_verify(struct rte_eth_dev *dev)
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix LACP packet handling in isolated mode' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
2025-04-08 8:10 ` patch 'net/iavf: fix crash on app exit on FreeBSD' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix hairpin queue release' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix crash using represented port without ID' " Xueming Li
` (5 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Maayan Kashani; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=2da1209fe44545072d3023ca929ffb012eff2202
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 2da1209fe44545072d3023ca929ffb012eff2202 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 fe2c512c5c..a4887a8d20 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.046080419 +0800
+++ 0038-net-mlx5-fix-LACP-packet-handling-in-isolated-mode.patch 2025-04-08 15:39:06.006436555 +0800
@@ -1 +1 @@
-From d15d74fc4b22cf7f09194f7d4de8d8ee03ca63a6 Mon Sep 17 00:00:00 2001
+From 2da1209fe44545072d3023ca929ffb012eff2202 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d15d74fc4b22cf7f09194f7d4de8d8ee03ca63a6 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 79b3d4d982..4ee44e9165 100644
+index fe2c512c5c..a4887a8d20 100644
@@ -26 +28 @@
-@@ -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] 138+ messages in thread
* patch 'net/mlx5/hws: fix crash using represented port without ID' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (2 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix GTP flags matching' " Xueming Li
` (4 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Maayan Kashani; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6135fd39aa5d5fb6dc1f2cafc46d9ab4bcbba3ae
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 6135fd39aa5d5fb6dc1f2cafc46d9ab4bcbba3ae 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 93e15122ed..14caae6563 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -592,10 +592,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
@@ -1326,11 +1327,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
int item_idx)
{
struct mlx5dr_cmd_query_caps *caps = cd->ctx->caps;
- 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 (!caps->wire_regc_mask) {
DR_LOG(ERR, "Port ID item not supported, missing wire REGC mask");
rte_errno = ENOTSUP;
@@ -1347,10 +1349,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 = 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.067622112 +0800
+++ 0039-net-mlx5-hws-fix-crash-using-represented-port-withou.patch 2025-04-08 15:39:06.006436555 +0800
@@ -1 +1 @@
-From 1de93ca6aee6acb785c8080f84da26b09835af0f Mon Sep 17 00:00:00 2001
+From 6135fd39aa5d5fb6dc1f2cafc46d9ab4bcbba3ae Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 98d670fc1c..a4b9306d2b 100644
+index 93e15122ed..14caae6563 100644
@@ -26 +28 @@
-@@ -772,10 +772,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
+@@ -592,10 +592,11 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
@@ -34 +36 @@
-- port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
+- port_info = flow_hw_conv_port_id(v->port_id);
@@ -36 +38 @@
-+ port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
++ port_info = flow_hw_conv_port_id(v->port_id);
@@ -40 +42 @@
-@@ -1585,10 +1586,11 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+@@ -1326,11 +1327,12 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
@@ -47,0 +50 @@
+ uint8_t bit_offset = 0;
@@ -54,4 +57,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;
+@@ -1347,10 +1349,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 = caps->wire_regc_mask >> bit_offset;
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5/hws: fix GTP flags matching' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (3 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix crash using represented port without ID' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix IPIP tunnel verification' " Xueming Li
` (3 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Maayan Kashani; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=3003a65e36ba351e84d34da5742f15f97aa5931c
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 3003a65e36ba351e84d34da5742f15f97aa5931c 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 14caae6563..69a99d6785 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -166,7 +166,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) \
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) \
@@ -1204,7 +1204,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
if (!m)
return 0;
- if (m->hdr.plen || m->hdr.gtp_hdr_info & ~MLX5DR_DEFINER_GTP_EXT_HDR_BIT) {
+ if (m->msg_len) {
rte_errno = ENOTSUP;
return rte_errno;
}
@@ -1226,11 +1226,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 = 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 6f1c99e37a..5775c47fc3 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.h
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.h
@@ -77,6 +77,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,
@@ -534,12 +535,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.092159205 +0800
+++ 0040-net-mlx5-hws-fix-GTP-flags-matching.patch 2025-04-08 15:39:06.006436555 +0800
@@ -1 +1 @@
-From a31da10717be6a79877621e94eeb003f547c5f88 Mon Sep 17 00:00:00 2001
+From 3003a65e36ba351e84d34da5742f15f97aa5931c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a31da10717be6a79877621e94eeb003f547c5f88 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index a4b9306d2b..5272119bcb 100644
+index 14caae6563..69a99d6785 100644
@@ -24 +26 @@
-@@ -199,7 +199,7 @@ struct mlx5dr_definer_conv_data {
+@@ -166,7 +166,7 @@ struct mlx5dr_definer_conv_data {
@@ -33 +35 @@
-@@ -1463,7 +1463,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
+@@ -1204,7 +1204,7 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
@@ -42 +44 @@
-@@ -1485,11 +1485,11 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
+@@ -1226,11 +1226,11 @@ mlx5dr_definer_conv_item_gtp(struct mlx5dr_definer_conv_data *cd,
@@ -59 +61 @@
-index 092b1b3b10..d0c99399ae 100644
+index 6f1c99e37a..5775c47fc3 100644
@@ -62 +64 @@
-@@ -110,6 +110,7 @@ enum mlx5dr_definer_fname {
+@@ -77,6 +77,7 @@ enum mlx5dr_definer_fname {
@@ -70 +72 @@
-@@ -606,12 +607,17 @@ enum mlx5dr_definer_gtp {
+@@ -534,12 +535,17 @@ enum mlx5dr_definer_gtp {
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix IPIP tunnel verification' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (4 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix GTP flags matching' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix GRE matching on root table' " Xueming Li
` (2 subsequent siblings)
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Gregory Etelson; +Cc: Xueming Li, Dariusz Sosnowski, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=83a85b7ef9462635e7ddbc99f4e080342f2c0650
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 83a85b7ef9462635e7ddbc99f4e080342f2c0650 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 80edb4e966..1caec52ceb 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -7584,7 +7584,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;
}
@@ -7605,7 +7608,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.115746597 +0800
+++ 0041-net-mlx5-fix-IPIP-tunnel-verification.patch 2025-04-08 15:39:06.026436549 +0800
@@ -1 +1 @@
-From 3d80d35b118ecfb650e51fabafc682ea8a3adb8f Mon Sep 17 00:00:00 2001
+From 83a85b7ef9462635e7ddbc99f4e080342f2c0650 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3d80d35b118ecfb650e51fabafc682ea8a3adb8f ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index c77041317b..8703403b8f 100644
+index 80edb4e966..1caec52ceb 100644
@@ -29 +31 @@
-@@ -7925,7 +7925,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7584,7 +7584,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -41 +43 @@
-@@ -7949,7 +7952,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7605,7 +7608,10 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/mlx5: fix GRE matching on root table' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (5 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/mlx5: fix IPIP tunnel verification' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'pdump: clear statistics when enabled' " Xueming Li
2025-04-08 8:10 ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " Xueming Li
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Maayan Kashani; +Cc: Xueming Li, Bing Zhao, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d73bb7acd41e6cef0d2263e8e2bac1dad3478a83
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d73bb7acd41e6cef0d2263e8e2bac1dad3478a83 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 1caec52ceb..43889e8625 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -9491,7 +9491,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.148577286 +0800
+++ 0042-net-mlx5-fix-GRE-matching-on-root-table.patch 2025-04-08 15:39:06.036436546 +0800
@@ -1 +1 @@
-From 111bde25455114e1d4ad843e7b3a03c5ffd6eca5 Mon Sep 17 00:00:00 2001
+From d73bb7acd41e6cef0d2263e8e2bac1dad3478a83 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 111bde25455114e1d4ad843e7b3a03c5ffd6eca5 ]
@@ -24 +26,0 @@
-Cc: stable@dpdk.org
@@ -33 +35 @@
-index 8703403b8f..608c42db1d 100644
+index 1caec52ceb..43889e8625 100644
@@ -36 +38 @@
-@@ -9856,7 +9856,7 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
+@@ -9491,7 +9491,7 @@ flow_dv_translate_item_gre(void *key, const struct rte_flow_item *item,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'pdump: clear statistics when enabled' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (6 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/mlx5: fix GRE matching on root table' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
2025-04-08 8:10 ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " Xueming Li
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Stephen Hemminger
Cc: Xueming Li, Bruce Richardson, Vladimir Medvedkin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=7390205d1311798606e02388b012620706293d5b
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 7390205d1311798606e02388b012620706293d5b 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 5a1ec14d7a..56e1a8d598 100644
--- a/lib/pdump/rte_pdump.c
+++ b/lib/pdump/rte_pdump.c
@@ -200,6 +200,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;
@@ -258,6 +260,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.182378375 +0800
+++ 0043-pdump-clear-statistics-when-enabled.patch 2025-04-08 15:39:06.046436542 +0800
@@ -1 +1 @@
-From b8392fa204ed46b580d61e7621948f1b187c9f98 Mon Sep 17 00:00:00 2001
+From 7390205d1311798606e02388b012620706293d5b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b8392fa204ed46b580d61e7621948f1b187c9f98 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 679c3dd0b5..0e6ffc167b 100644
+index 5a1ec14d7a..56e1a8d598 100644
@@ -28 +30 @@
-@@ -199,6 +199,8 @@ pdump_register_rx_callbacks(enum pdump_version ver,
+@@ -200,6 +200,8 @@ pdump_register_rx_callbacks(enum pdump_version ver,
@@ -37 +39 @@
-@@ -257,6 +259,7 @@ pdump_register_tx_callbacks(enum pdump_version ver,
+@@ -258,6 +260,7 @@ pdump_register_tx_callbacks(enum pdump_version ver,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' has been queued to stable release 23.11.4
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
` (7 preceding siblings ...)
2025-04-08 8:10 ` patch 'pdump: clear statistics when enabled' " Xueming Li
@ 2025-04-08 8:10 ` Xueming Li
8 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:10 UTC (permalink / raw)
To: Tejasree Kondoj; +Cc: Xueming Li, Anoob Joseph, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=d25bda3cf7bfdbb99c4c185e871b1e325c791ef7
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From d25bda3cf7bfdbb99c4c185e871b1e325c791ef7 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.204496168 +0800
+++ 0044-examples-ipsec-secgw-fix-cryptodev-and-eventdev-IDs.patch 2025-04-08 15:39:06.046436542 +0800
@@ -1 +1 @@
-From c7b38c687d920000aef08659465e07106caa22c5 Mon Sep 17 00:00:00 2001
+From d25bda3cf7bfdbb99c4c185e871b1e325c791ef7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c7b38c687d920000aef08659465e07106caa22c5 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index dadddcb306..fc9fa1b000 100644
+index 89fb7e62a5..5d8ce4df0b 100644
@@ -21 +23 @@
-@@ -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] 138+ messages in thread
* patch 'eal: fix undetected NUMA nodes' has been queued to stable release 23.11.4
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
` (90 preceding siblings ...)
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
@ 2025-04-08 8:16 ` Xueming Li
2025-04-08 8:16 ` patch 'examples/ptpclient: fix message parsing' " Xueming Li
` (2 more replies)
91 siblings, 3 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:16 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=5a9b12d3dc38d893447312dcebf2f6ae065730cb
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 5a9b12d3dc38d893447312dcebf2f6ae065730cb 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
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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 | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/lib/eal/common/eal_common_lcore.c b/lib/eal/common/eal_common_lcore.c
index 6807a38247..208e73b465 100644
--- a/lib/eal/common/eal_common_lcore.c
+++ b/lib/eal/common/eal_common_lcore.c
@@ -144,7 +144,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
@@ -183,9 +187,12 @@ 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 */
@@ -201,12 +208,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.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.225769561 +0800
+++ 0045-eal-fix-undetected-NUMA-nodes.patch 2025-04-08 15:39:06.046436542 +0800
@@ -1 +1 @@
-From ef41b96461703c766e4a39ecf4bf7cb731d9617d Mon Sep 17 00:00:00 2001
+From 5a9b12d3dc38d893447312dcebf2f6ae065730cb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ef41b96461703c766e4a39ecf4bf7cb731d9617d ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -22,2 +24,2 @@
- lib/eal/common/eal_common_lcore.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
+ lib/eal/common/eal_common_lcore.c | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
@@ -26 +28 @@
-index 2ff9252c52..820a6534b1 100644
+index 6807a38247..208e73b465 100644
@@ -42 +44 @@
-@@ -183,9 +187,11 @@ rte_eal_cpu_init(void)
+@@ -183,9 +187,12 @@ rte_eal_cpu_init(void)
@@ -48 +50,2 @@
- 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 +58 @@
-@@ -201,12 +207,13 @@ rte_eal_cpu_init(void)
+@@ -201,12 +208,13 @@ rte_eal_cpu_init(void)
@@ -70 +73 @@
- 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] 138+ messages in thread
* patch 'examples/ptpclient: fix message parsing' has been queued to stable release 23.11.4
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
@ 2025-04-08 8:16 ` Xueming Li
2025-04-08 8:16 ` patch 'net/nfp: fix VF link speed problem' " Xueming Li
2025-04-08 8:16 ` patch 'net/gve: allocate Rx QPL pages using malloc' " Xueming Li
2 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:16 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Xueming Li, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=1f52611f51fe885417b25c13665ea26ede2a2276
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 1f52611f51fe885417b25c13665ea26ede2a2276 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 19 Feb 2025 09:16:05 -0800
Subject: [PATCH] examples/ptpclient: fix message parsing
Cc: Xueming Li <xuemingl@nvidia.com>
[ 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..92b54f240e 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_hdr->master_clock_id,
&ptp_hdr->source_port_id.clock_id,
sizeof(struct clock_id)) == 0) {
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.246833755 +0800
+++ 0046-examples-ptpclient-fix-message-parsing.patch 2025-04-08 15:39:06.046436542 +0800
@@ -1 +1 @@
-From 19630bd0d735badb06143086d4f1c50d726b7bad Mon Sep 17 00:00:00 2001
+From 1f52611f51fe885417b25c13665ea26ede2a2276 Mon Sep 17 00:00:00 2001
@@ -3 +3 @@
-Date: Wed, 5 Feb 2025 08:23:10 -0800
+Date: Wed, 19 Feb 2025 09:16:05 -0800
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 19630bd0d735badb06143086d4f1c50d726b7bad ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 27d06dd91d..c344e7db1e 100644
+index cdf2da64df..92b54f240e 100644
@@ -23 +25 @@
-@@ -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 +30 @@
-+ if (memcmp(&ptp_data->transmitter_clock_id,
++ if (memcmp(&ptp_hdr->master_clock_id,
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/nfp: fix VF link speed problem' has been queued to stable release 23.11.4
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
2025-04-08 8:16 ` patch 'examples/ptpclient: fix message parsing' " Xueming Li
@ 2025-04-08 8:16 ` Xueming Li
2025-04-08 8:16 ` patch 'net/gve: allocate Rx QPL pages using malloc' " Xueming Li
2 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:16 UTC (permalink / raw)
To: Long Wu; +Cc: Xueming Li, Chaoyong He, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=973f287b205f49b94aa117e1e0109dd3869a052e
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From 973f287b205f49b94aa117e1e0109dd3869a052e Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Mon, 24 Feb 2025 16:01:42 +0800
Subject: [PATCH] net/nfp: fix VF link speed problem
Cc: Xueming Li <xuemingl@nvidia.com>
[ upstream commit c43d2aab426bdc6e22142b4c5667d6d1634248de ]
The previous logic does not update the 'rte_eth_device' link status
when the port link status changed, which cause the firmware won't be
notified by the PMD.
Furthermore, the physical representor port should also notify firmware
its current speed with multi-pf firmware.
Fix these problems by modify the related logic, also add needed helper
function at the same time.
Fixes: eae7dadbe987 ("net/nfp: update link status reporting")
Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
drivers/net/nfp/flower/nfp_flower_ctrl.c | 14 ++++++++++++++
drivers/net/nfp/flower/nfp_flower_representor.c | 2 +-
drivers/net/nfp/flower/nfp_flower_representor.h | 2 ++
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/net/nfp/flower/nfp_flower_ctrl.c b/drivers/net/nfp/flower/nfp_flower_ctrl.c
index 102daa3d70..574e4fa056 100644
--- a/drivers/net/nfp/flower/nfp_flower_ctrl.c
+++ b/drivers/net/nfp/flower/nfp_flower_ctrl.c
@@ -419,6 +419,8 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_app_fw_flower *app_fw_flower,
struct rte_mbuf *pkt_burst)
{
uint32_t port;
+ uint16_t link_status;
+ struct rte_eth_dev *eth_dev;
struct nfp_flower_representor *repr;
struct nfp_flower_cmsg_port_mod *msg;
@@ -447,11 +449,23 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_app_fw_flower *app_fw_flower,
}
repr->link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+
+ link_status = repr->link.link_status;
if ((msg->info & NFP_FLOWER_CMSG_PORT_MOD_INFO_LINK) != 0)
repr->link.link_status = RTE_ETH_LINK_UP;
else
repr->link.link_status = RTE_ETH_LINK_DOWN;
+ if (link_status != repr->link.link_status) {
+ eth_dev = rte_eth_dev_get_by_name(repr->name);
+ if (eth_dev == NULL) {
+ PMD_DRV_LOG(ERR, "Can not get ethernet device by name %s.", repr->name);
+ return -EINVAL;
+ }
+
+ nfp_flower_repr_link_update(eth_dev, 0);
+ }
+
return 0;
}
diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c
index ada28d07c6..a86b6bb580 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.c
+++ b/drivers/net/nfp/flower/nfp_flower_representor.c
@@ -18,7 +18,7 @@ enum nfp_repr_type {
NFP_REPR_TYPE_MAX, /*<< Number of representor types */
};
-static int
+int
nfp_flower_repr_link_update(struct rte_eth_dev *dev,
__rte_unused int wait_to_complete)
{
diff --git a/drivers/net/nfp/flower/nfp_flower_representor.h b/drivers/net/nfp/flower/nfp_flower_representor.h
index 8053617562..ea912ddcd4 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.h
+++ b/drivers/net/nfp/flower/nfp_flower_representor.h
@@ -24,5 +24,7 @@ struct nfp_flower_representor {
};
int nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower);
+int nfp_flower_repr_link_update(struct rte_eth_dev *dev,
+ __rte_unused int wait_to_complete);
#endif /* __NFP_FLOWER_REPRESENTOR_H__ */
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-04-08 15:39:07.269372547 +0800
+++ 0047-net-nfp-fix-VF-link-speed-problem.patch 2025-04-08 15:39:06.056436539 +0800
@@ -1 +1 @@
-From c43d2aab426bdc6e22142b4c5667d6d1634248de Mon Sep 17 00:00:00 2001
+From 973f287b205f49b94aa117e1e0109dd3869a052e Mon Sep 17 00:00:00 2001
@@ -3,2 +3,5 @@
-Date: Wed, 18 Dec 2024 14:52:55 +0800
-Subject: [PATCH] net/nfp: fix VF link speed
+Date: Mon, 24 Feb 2025 16:01:42 +0800
+Subject: [PATCH] net/nfp: fix VF link speed problem
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c43d2aab426bdc6e22142b4c5667d6d1634248de ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -21,5 +23,4 @@
- drivers/net/nfp/flower/nfp_flower_ctrl.c | 14 ++++++++++++++
- .../net/nfp/flower/nfp_flower_representor.c | 19 +++++++++++++++++--
- .../net/nfp/flower/nfp_flower_representor.h | 3 +++
- drivers/net/nfp/nfp_net_common.c | 11 ++++++++++-
- 4 files changed, 44 insertions(+), 3 deletions(-)
+ drivers/net/nfp/flower/nfp_flower_ctrl.c | 14 ++++++++++++++
+ drivers/net/nfp/flower/nfp_flower_representor.c | 2 +-
+ drivers/net/nfp/flower/nfp_flower_representor.h | 2 ++
+ 3 files changed, 17 insertions(+), 1 deletion(-)
@@ -28 +29 @@
-index 92887ce1be..21bf26b738 100644
+index 102daa3d70..574e4fa056 100644
@@ -31 +32,2 @@
-@@ -420,6 +420,8 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_net_hw_priv *hw_priv,
+@@ -419,6 +419,8 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_app_fw_flower *app_fw_flower,
+ struct rte_mbuf *pkt_burst)
@@ -34 +35,0 @@
- uint32_t index;
@@ -39,2 +40,2 @@
- struct nfp_app_fw_flower *app_fw_flower;
-@@ -456,11 +458,23 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_net_hw_priv *hw_priv,
+
+@@ -447,11 +449,23 @@ nfp_flower_cmsg_port_mod_rx(struct nfp_app_fw_flower *app_fw_flower,
@@ -54 +55 @@
-+ PMD_DRV_LOG(ERR, "Can not get 'eth_dev' by name %s.", repr->name);
++ PMD_DRV_LOG(ERR, "Can not get ethernet device by name %s.", repr->name);
@@ -65 +66 @@
-index 4017f602a2..9601aa5f96 100644
+index ada28d07c6..a86b6bb580 100644
@@ -68,2 +69,2 @@
-@@ -24,6 +24,21 @@ struct nfp_repr_init {
- struct nfp_net_hw_priv *hw_priv;
+@@ -18,7 +18,7 @@ enum nfp_repr_type {
+ NFP_REPR_TYPE_MAX, /*<< Number of representor types */
@@ -72,22 +72,0 @@
-+bool
-+nfp_flower_repr_is_pf(struct rte_eth_dev *dev)
-+{
-+ struct nfp_net_hw_priv *hw_priv;
-+ struct nfp_flower_representor *repr;
-+
-+ hw_priv = dev->process_private;
-+ repr = dev->data->dev_private;
-+
-+ if (hw_priv->pf_dev->multi_pf.enabled)
-+ return repr->repr_type == NFP_REPR_TYPE_PHYS_PORT;
-+ else
-+ return repr->repr_type == NFP_REPR_TYPE_PF;
-+}
-+
- static int
- nfp_repr_get_eeprom_len(struct rte_eth_dev *dev)
- {
-@@ -112,7 +127,7 @@ nfp_flower_repr_led_off(struct rte_eth_dev *dev)
- return nfp_net_led_off(dev);
- }
-
@@ -99,9 +77,0 @@
-@@ -125,7 +140,7 @@ nfp_flower_repr_link_update(struct rte_eth_dev *dev,
-
- ret = nfp_net_link_update_common(dev, link, link->link_status);
-
-- if (repr->repr_type == NFP_REPR_TYPE_PF)
-+ if (nfp_flower_repr_is_pf(dev))
- nfp_net_notify_port_speed(repr->app_fw_flower->pf_hw, link);
-
- return ret;
@@ -109 +79 @@
-index 3f6ee32fe4..a7416eccab 100644
+index 8053617562..ea912ddcd4 100644
@@ -112,4 +82,4 @@
-@@ -32,5 +32,8 @@ int nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower,
- bool nfp_flower_repr_is_vf(struct nfp_flower_representor *repr);
- bool nfp_flower_repr_is_phy(struct nfp_flower_representor *repr);
- int nfp_flower_repr_stats_reset(struct rte_eth_dev *ethdev);
+@@ -24,5 +24,7 @@ struct nfp_flower_representor {
+ };
+
+ int nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower);
@@ -118 +87,0 @@
-+bool nfp_flower_repr_is_pf(struct rte_eth_dev *dev);
@@ -121,29 +89,0 @@
-diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c
-index e68ce68229..aaa515bac2 100644
---- a/drivers/net/nfp/nfp_net_common.c
-+++ b/drivers/net/nfp/nfp_net_common.c
-@@ -159,6 +159,15 @@ static const uint32_t nfp_net_link_speed_nfp2rte[] = {
- [NFP_NET_CFG_STS_LINK_RATE_100G] = RTE_ETH_SPEED_NUM_100G,
- };
-
-+static bool
-+nfp_net_is_pf(struct rte_eth_dev *dev)
-+{
-+ if (rte_eth_dev_is_repr(dev))
-+ return nfp_flower_repr_is_pf(dev);
-+
-+ return ((struct nfp_net_hw_priv *)dev->process_private)->is_pf;
-+}
-+
- static size_t
- nfp_net_link_speed_rte2nfp(uint32_t speed)
- {
-@@ -826,7 +835,7 @@ nfp_net_link_update_common(struct rte_eth_dev *dev,
-
- hw_priv = dev->process_private;
- if (link->link_status == RTE_ETH_LINK_UP) {
-- if (hw_priv->is_pf)
-+ if (nfp_net_is_pf(dev))
- nfp_net_pf_speed_update(dev, hw_priv, link);
- else
- nfp_net_vf_speed_update(link, link_status);
^ permalink raw reply [flat|nested] 138+ messages in thread
* patch 'net/gve: allocate Rx QPL pages using malloc' has been queued to stable release 23.11.4
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
2025-04-08 8:16 ` patch 'examples/ptpclient: fix message parsing' " Xueming Li
2025-04-08 8:16 ` patch 'net/nfp: fix VF link speed problem' " Xueming Li
@ 2025-04-08 8:16 ` Xueming Li
2 siblings, 0 replies; 138+ messages in thread
From: Xueming Li @ 2025-04-08 8:16 UTC (permalink / raw)
To: Praveen Kaligineedi; +Cc: Xueming Li, Joshua Washington, dpdk stable
Hi,
FYI, your patch has been queued to stable release 23.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/10/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=aca75f1cb950a151b76403203d0c50832f01c566
Thanks.
Xueming Li <xuemingl@nvidia.com>
---
From aca75f1cb950a151b76403203d0c50832f01c566 Mon Sep 17 00:00:00 2001
From: Praveen Kaligineedi <pkaligineedi@google.com>
Date: Mon, 3 Mar 2025 15:06:08 -0800
Subject: [PATCH] net/gve: allocate Rx QPL pages using malloc
Cc: Xueming Li <xuemingl@nvidia.com>
Allocating QPL for an RX queue might fail if enough contiguous IOVA
memory cannot be allocated. This can commonly occur when using 2MB huge
pages because the 1024 4K buffers are allocated for each RX ring by
default, resulting in 4MB for each ring. However, the only requirement
for RX QPLs is that each 4K buffer be IOVA contiguous, not the entire
QPL. Therefore, malloc will be used to allocate RX QPLs instead.
Note that TX queues require the entire QPL to be IOVA contiguous, so it
will continue to use the memzone-based allocation.
Fixes: a46583cf43c8 ("net/gve: support Rx/Tx")
Cc: stable@dpdk.org
Signed-off-by: Praveen Kaligineedi <pkaligineedi@google.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
drivers/net/gve/gve_ethdev.c | 139 +++++++++++++++++++++++++++++------
drivers/net/gve/gve_ethdev.h | 5 +-
drivers/net/gve/gve_rx.c | 2 +-
3 files changed, 122 insertions(+), 24 deletions(-)
diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index bd683a64d7..2dc47c1226 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -20,13 +20,45 @@ gve_write_version(uint8_t *driver_version_register)
writeb('\n', driver_version_register);
}
+static const struct rte_memzone *
+gve_alloc_using_mz(const char *name, uint32_t num_pages)
+{
+ const struct rte_memzone *mz;
+ mz = rte_memzone_reserve_aligned(name, num_pages * PAGE_SIZE,
+ rte_socket_id(),
+ RTE_MEMZONE_IOVA_CONTIG, PAGE_SIZE);
+ if (mz == NULL)
+ PMD_DRV_LOG(ERR, "Failed to alloc memzone %s.", name);
+ return mz;
+}
+
static int
-gve_alloc_queue_page_list(struct gve_priv *priv, uint32_t id, uint32_t pages)
+gve_alloc_using_malloc(void **bufs, uint32_t num_entries)
+{
+ uint32_t i;
+
+ for (i = 0; i < num_entries; i++) {
+ bufs[i] = rte_malloc_socket(NULL, PAGE_SIZE, PAGE_SIZE, rte_socket_id());
+ if (bufs[i] == NULL) {
+ PMD_DRV_LOG(ERR, "Failed to malloc");
+ goto free_bufs;
+ }
+ }
+ return 0;
+
+free_bufs:
+ while (i > 0)
+ rte_free(bufs[--i]);
+
+ return -ENOMEM;
+}
+
+static int
+gve_alloc_queue_page_list(struct gve_priv *priv, uint32_t id, uint32_t pages,
+ bool is_rx)
{
- char z_name[RTE_MEMZONE_NAMESIZE];
struct gve_queue_page_list *qpl;
- const struct rte_memzone *mz;
- dma_addr_t page_bus;
+ int err = 0;
uint32_t i;
if (priv->num_registered_pages + pages >
@@ -37,31 +69,79 @@ gve_alloc_queue_page_list(struct gve_priv *priv, uint32_t id, uint32_t pages)
return -EINVAL;
}
qpl = &priv->qpl[id];
- snprintf(z_name, sizeof(z_name), "gve_%s_qpl%d", priv->pci_dev->device.name, id);
- mz = rte_memzone_reserve_aligned(z_name, pages * PAGE_SIZE,
- rte_socket_id(),
- RTE_MEMZONE_IOVA_CONTIG, PAGE_SIZE);
- if (mz == NULL) {
- PMD_DRV_LOG(ERR, "Failed to alloc %s.", z_name);
- return -ENOMEM;
- }
+
qpl->page_buses = rte_zmalloc("qpl page buses", pages * sizeof(dma_addr_t), 0);
if (qpl->page_buses == NULL) {
PMD_DRV_LOG(ERR, "Failed to alloc qpl %u page buses", id);
return -ENOMEM;
}
- page_bus = mz->iova;
- for (i = 0; i < pages; i++) {
- qpl->page_buses[i] = page_bus;
- page_bus += PAGE_SIZE;
+
+ if (is_rx) {
+ /* RX QPL need not be IOVA contiguous.
+ * Allocate 4K size buffers using malloc
+ */
+ qpl->qpl_bufs = rte_zmalloc("qpl bufs",
+ pages * sizeof(void *), 0);
+ if (qpl->qpl_bufs == NULL) {
+ PMD_DRV_LOG(ERR, "Failed to alloc qpl bufs");
+ err = -ENOMEM;
+ goto free_qpl_page_buses;
+ }
+
+ err = gve_alloc_using_malloc(qpl->qpl_bufs, pages);
+ if (err)
+ goto free_qpl_page_bufs;
+
+ /* Populate the IOVA addresses */
+ for (i = 0; i < pages; i++)
+ qpl->page_buses[i] =
+ rte_malloc_virt2iova(qpl->qpl_bufs[i]);
+ } else {
+ char z_name[RTE_MEMZONE_NAMESIZE];
+
+ snprintf(z_name, sizeof(z_name), "gve_%s_qpl%d", priv->pci_dev->device.name, id);
+
+ /* TX QPL needs to be IOVA contiguous
+ * Allocate QPL using memzone
+ */
+ qpl->mz = gve_alloc_using_mz(z_name, pages);
+ if (!qpl->mz) {
+ err = -ENOMEM;
+ goto free_qpl_page_buses;
+ }
+
+ /* Populate the IOVA addresses */
+ for (i = 0; i < pages; i++)
+ qpl->page_buses[i] = qpl->mz->iova + i * PAGE_SIZE;
}
+
qpl->id = id;
- qpl->mz = mz;
qpl->num_entries = pages;
priv->num_registered_pages += pages;
return 0;
+
+free_qpl_page_bufs:
+ rte_free(qpl->qpl_bufs);
+free_qpl_page_buses:
+ rte_free(qpl->page_buses);
+ return err;
+}
+
+/*
+ * Free QPL bufs in RX QPLs. Should not be used on TX QPLs.
+ **/
+static void
+gve_free_qpl_bufs(struct gve_queue_page_list *qpl)
+{
+ uint32_t i;
+
+ for (i = 0; i < qpl->num_entries; i++)
+ rte_free(qpl->qpl_bufs[i]);
+
+ rte_free(qpl->qpl_bufs);
+ qpl->qpl_bufs = NULL;
}
static void
@@ -74,9 +154,19 @@ gve_free_qpls(struct gve_priv *priv)
if (priv->queue_format != GVE_GQI_QPL_FORMAT)
return;
- for (i = 0; i < nb_txqs + nb_rxqs; i++) {
- if (priv->qpl[i].mz != NULL)
+ /* Free TX QPLs. */
+ for (i = 0; i < nb_txqs; i++) {
+ if (priv->qpl[i].mz) {
rte_memzone_free(priv->qpl[i].mz);
+ priv->qpl[i].mz = NULL;
+ }
+ rte_free(priv->qpl[i].page_buses);
+ }
+
+ /* Free RX QPLs. */
+ for (; i < nb_rxqs; i++) {
+ if (priv->qpl[i].qpl_bufs)
+ gve_free_qpl_bufs(&priv->qpl[i]);
rte_free(priv->qpl[i].page_buses);
}
@@ -772,11 +862,16 @@ gve_init_priv(struct gve_priv *priv, bool skip_describe_device)
}
for (i = 0; i < priv->max_nb_txq + priv->max_nb_rxq; i++) {
- if (i < priv->max_nb_txq)
+ bool is_rx;
+
+ if (i < priv->max_nb_txq) {
pages = priv->tx_pages_per_qpl;
- else
+ is_rx = false;
+ } else {
pages = priv->rx_data_slot_cnt;
- err = gve_alloc_queue_page_list(priv, i, pages);
+ is_rx = true;
+ }
+ err = gve_alloc_queue_page_list(priv, i, pages, is_rx);
if (err != 0) {
PMD_DRV_LOG(ERR, "Failed to alloc qpl %u.", i);
goto err_qpl;
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 133860488c..e145d6b639 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -42,7 +42,10 @@ struct gve_queue_page_list {
uint32_t id; /* unique id */
uint32_t num_entries;
dma_addr_t *page_buses; /* the dma addrs of the pages */
- const struct rte_memzone *mz;
+ union {
+ const struct rte_memzone *mz; /* memzone allocated for TX queue */
+ void **qpl_bufs; /* RX qpl-buffer list allocated using malloc*/
+ };
};
/* A TX desc ring entry */
diff --git a/drivers/net/gve/gve_rx.c b/drivers/net/gve/gve_rx.c
index 36a1b73c65..b8ef625b5c 100644
--- a/drivers/net/gve/gve_rx.c
+++ b/drivers/net/gve/gve_rx.c
@@ -117,7 +117,7 @@ gve_rx_mbuf(struct gve_rx_queue *rxq, struct rte_mbuf *rxe, uint16_t len,
rxq->ctx.mbuf_tail = rxe;
}
if (rxq->is_gqi_qpl) {
- addr = (uint64_t)(rxq->qpl->mz->addr) + rx_id * PAGE_SIZE + padding;
+ addr = (uint64_t)rxq->qpl->qpl_bufs[rx_id] + padding;
rte_memcpy((void *)((size_t)rxe->buf_addr + rxe->data_off),
(void *)(size_t)addr, len);
}
--
2.34.1
^ permalink raw reply [flat|nested] 138+ messages in thread
end of thread, other threads:[~2025-04-08 8:25 UTC | newest]
Thread overview: 138+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-18 12:33 patch has been queued to stable release 23.11.4 Xueming Li
2025-02-18 12:33 ` patch 'test/ring: fix init with custom number of lcores' " Xueming Li
2025-02-18 12:33 ` patch 'vhost: clear ring addresses when getting vring base' " Xueming Li
2025-02-18 12:33 ` patch 'vhost: check GSO size validity' " Xueming Li
2025-02-18 12:33 ` patch 'vhost: fix log when setting max queue num' " Xueming Li
2025-02-18 12:34 ` patch 'vhost: reset packets count when not ready' " Xueming Li
2025-02-18 12:34 ` patch 'crypto/cnxk: fix build with GCC 15' " Xueming Li
2025-02-18 12:34 ` patch 'net/thunderx/base: " Xueming Li
2025-02-18 12:34 ` patch 'eal/x86: fix some intrinsics header include for Windows' " Xueming Li
2025-02-18 12:34 ` patch 'test/bonding: fix active backup receive test' " Xueming Li
2025-02-18 12:34 ` patch 'net/bonding: fix dedicated queue setup' " Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: fix mbuf freeing in simple Tx path' " Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: remove PVID info dump for VF' " Xueming Li
2025-02-18 12:34 ` patch 'net/hns3: rename RAS module' " Xueming Li
2025-02-18 12:34 ` patch 'net/sfc: remove unnecessary assignment' " Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix polling CQEs' " Xueming Li
2025-02-18 12:34 ` patch 'net/iavf: remove reset of Tx prepare function pointer' " Xueming Li
2025-02-18 12:34 ` patch 'net/ice: fix memory leak in scalar Rx' " Xueming Li
2025-02-18 12:34 ` patch 'common/cnxk: fix atomic load in batch ops' " Xueming Li
2025-02-18 12:34 ` patch 'common/cnxk: fix DPI mailbox structure' " Xueming Li
2025-02-18 12:34 ` patch 'eventdev: fix format string data type in log messages' " Xueming Li
2025-02-18 12:34 ` patch 'crypto/virtio: fix redundant queue free' " Xueming Li
2025-02-18 12:34 ` patch 'crypto/openssl: fix CMAC auth context update' " Xueming Li
2025-02-18 12:34 ` patch 'crypto/virtio: fix data queues iteration' " Xueming Li
2025-02-18 12:34 ` patch 'net/octeon_ep: remove useless assignment' " Xueming Li
2025-02-18 12:34 ` patch 'net/enetfec: " Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix multiple PFs check from NSP' " Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix misuse of function return values' " Xueming Li
2025-02-18 12:34 ` patch 'net/nfp: fix multi-PF control flag' " Xueming Li
2025-02-18 12:34 ` patch 'net/ice: fix flows handling' " Xueming Li
2025-02-18 12:34 ` patch 'net/cnxk: fix NIX send header L3 type' " Xueming Li
2025-02-18 12:34 ` patch 'gro: fix unprocessed IPv4 packets' " Xueming Li
2025-02-18 12:34 ` patch 'eal/linux: fix memseg length in legacy mem init' " Xueming Li
2025-02-18 12:34 ` patch 'buildtools: fix some Python regex syntax warnings' " Xueming Li
2025-02-18 12:34 ` patch 'use Python raw string notation' " Xueming Li
2025-02-18 12:34 ` patch 'net/af_packet: fix socket close on device stop' " Xueming Li
2025-02-18 12:34 ` patch 'ethdev: fix functions available in new device event' " Xueming Li
2025-02-18 12:34 ` patch 'vhost: add null callback checks' " Xueming Li
2025-02-18 12:34 ` patch 'build: force GCC 15 to initialize padding bits' " Xueming Li
2025-02-18 12:34 ` patch 'net/bnxt: fix indication of allocation' " Xueming Li
2025-02-18 12:34 ` patch 'net/bnxt: fix crash when representor is re-attached' " Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix Netlink socket leak' " Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: adjust actions per rule limitation' " Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix flush of non-template flow rules' " Xueming Li
2025-02-18 12:34 ` patch 'net/mlx5: fix GRE flow match with SWS' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix deadlock when writing i225 register' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix infinite loop' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix bitwise operation type' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: increase PHY power up delay' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: reset loop variable' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix LTR for i225' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix typo in LTR calculation' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix unused value' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix semaphore timeout " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix iterator type' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix MAC address hash bit shift' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix data type in MAC hash' " Xueming Li
2025-02-18 12:34 ` patch 'net/igc/base: fix NVM data type in bit shift' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix semaphore timeout value' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: correct mPHY access logic' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix iterator type' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix MAC address hash bit shift' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix data type in MAC hash' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix uninitialized variable' " Xueming Li
2025-02-18 12:34 ` patch 'net/e1000/base: fix bitwise operation type' " Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix NVM data type in bit shift' " Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix reset for 82580' " Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: fix unchecked return' " Xueming Li
2025-02-18 12:35 ` patch 'net/e1000/base: skip management check for 82575' " Xueming Li
2025-02-18 12:35 ` patch 'common/idpf: fix void function returning a value' " Xueming Li
2025-02-18 12:35 ` patch 'net/intel: fix void functions " Xueming Li
2025-02-18 12:35 ` patch 'net/intel: fix build with icx' " Xueming Li
2025-02-18 12:35 ` patch 'net/hns3: fix copper port initialization' " Xueming Li
2025-02-18 12:35 ` patch 'net/hns3: fix reset timeout' " Xueming Li
2025-02-18 12:35 ` patch 'net/cpfl: fix representor parsing log' " Xueming Li
2025-02-18 12:35 ` patch 'raw/cnxk_gpio: fix file descriptor leak' " Xueming Li
2025-02-18 12:35 ` patch 'eal: fix devargs layers parsing out of bounds' " Xueming Li
2025-02-18 12:35 ` patch 'net/qede: fix debug messages array' " Xueming Li
2025-02-18 12:35 ` patch 'net/hinic: fix flow type bitmask overflow' " Xueming Li
2025-02-18 12:35 ` patch 'crypto/dpaa2_sec: fix bitmask truncation' " Xueming Li
2025-02-18 12:35 ` patch 'crypto/dpaa_sec: " Xueming Li
2025-02-18 12:35 ` patch 'event/dpaa: " Xueming Li
2025-02-18 12:35 ` patch 'net/dpaa: " Xueming Li
2025-02-18 12:35 ` patch 'net/dpaa2: " Xueming Li
2025-02-18 12:35 ` patch 'net/qede: fix nested loops' " Xueming Li
2025-02-18 12:35 ` patch 'examples/l3fwd: fix socket ID check' " Xueming Li
2025-02-18 12:35 ` patch 'common/cnxk: fix null " Xueming Li
2025-02-18 12:35 ` patch 'eal/linux: remove useless assignments' " Xueming Li
2025-02-18 12:35 ` patch 'mempool: fix errno in empty create' " Xueming Li
2025-04-08 7:44 ` patch " Xueming Li
2025-04-08 7:44 ` patch 'ci: build with MSVC in GHA' " Xueming Li
2025-04-08 7:44 ` patch 'net/netvsc: scan all net devices under the PCI device' " Xueming Li
2025-04-08 7:44 ` patch 'net/netvsc: remove device if its net devices removed' " Xueming Li
2025-04-08 7:44 ` patch 'doc: fix feature flags for queue start/stop' " Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: show all DCB priority TC map' " Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: avoid crash in DCB config' " Xueming Li
2025-04-08 7:44 ` patch 'net/mana: fix multi-process tracking' " Xueming Li
2025-04-08 7:44 ` patch 'app/testpmd: fix out-of-bound reference in offload config' " Xueming Li
2025-04-08 7:44 ` patch 'net/txgbe: remove useless condition for SW-FW sync' " Xueming Li
2025-04-08 7:44 ` patch 'bus/pci: fix registered device name' " Xueming Li
2025-04-08 7:44 ` patch 'vhost/crypto: skip fetch before vring init' " Xueming Li
2025-04-08 7:44 ` patch 'examples/vhost_crypto: fix user callbacks' " Xueming Li
2025-04-08 7:44 ` patch 'vhost: check descriptor chains length' " Xueming Li
2025-04-08 7:44 ` patch 'test/bbdev: update FFT test vectors' " Xueming Li
2025-04-08 8:01 ` patch 'test/event: fix number of queues in eventdev conf' " Xueming Li
2025-04-08 8:01 ` patch 'net/e1000: fix crashes in secondary processes' " Xueming Li
2025-04-08 8:01 ` patch 'net/ixgbe: " Xueming Li
2025-04-08 8:01 ` patch 'net/ixgbe: fix minimum Rx/Tx descriptors' " Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5/hws: fix fragmented packet type matching' " Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5: fix leak in HWS flow counter action' " Xueming Li
2025-04-08 8:01 ` patch 'net/mlx5: fix hardware packet type translation' " Xueming Li
2025-04-08 8:01 ` patch 'common/cnxk: fix inbound IPsec SA setup' " Xueming Li
2025-04-08 8:01 ` patch 'stack: fix pop in C11 implementation' " Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: fix AES-ECB test lengths' " Xueming Li
2025-04-08 8:01 ` patch 'examples/ipsec-secgw: fix IV length in CTR 192/256' " Xueming Li
2025-04-08 8:01 ` patch 'crypto/cnxk: fix asymmetric operation status code' " Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: remove unused variable' " Xueming Li
2025-04-08 8:01 ` patch 'crypto/openssl: validate incorrect RSA signature' " Xueming Li
2025-04-08 8:01 ` patch 'test/crypto: fix check for OOP header data' " Xueming Li
2025-04-08 8:01 ` patch 'crypto/qat: fix SM3 state size' " Xueming Li
2025-04-08 8:01 ` patch 'test/dma: fix pointers in IOVA as PA mode' " Xueming Li
2025-04-08 8:01 ` patch 'net/iavf: fix mbuf release in Arm multi-process' " Xueming Li
2025-04-08 8:01 ` patch 'net/ice: fix flow engines order' " Xueming Li
2025-04-08 8:01 ` patch 'net/ice: fix dropped packets when using VRRP' " Xueming Li
2025-04-08 8:10 ` patch 'net/iavf: check interrupt registration failure' " Xueming Li
2025-04-08 8:10 ` patch 'net/iavf: fix crash on app exit on FreeBSD' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix hairpin queue release' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix LACP packet handling in isolated mode' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix crash using represented port without ID' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5/hws: fix GTP flags matching' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix IPIP tunnel verification' " Xueming Li
2025-04-08 8:10 ` patch 'net/mlx5: fix GRE matching on root table' " Xueming Li
2025-04-08 8:10 ` patch 'pdump: clear statistics when enabled' " Xueming Li
2025-04-08 8:10 ` patch 'examples/ipsec-secgw: fix cryptodev and eventdev IDs' " Xueming Li
2025-04-08 8:16 ` patch 'eal: fix undetected NUMA nodes' " Xueming Li
2025-04-08 8:16 ` patch 'examples/ptpclient: fix message parsing' " Xueming Li
2025-04-08 8:16 ` patch 'net/nfp: fix VF link speed problem' " Xueming Li
2025-04-08 8:16 ` patch 'net/gve: allocate Rx QPL pages using malloc' " Xueming Li
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).