patch 'net/ice: fix inconsistency in Rx queue VLAN tag placement' has been queued to stable release 23.11.5
Xueming Li
xuemingl at nvidia.com
Wed Jul 30 16:56:27 CEST 2025
Hi,
FYI, your patch has been queued to stable release 23.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/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=43fdac7411d9a6d408b2ce61a5c191886c6ff638
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From 43fdac7411d9a6d408b2ce61a5c191886c6ff638 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson at intel.com>
Date: Fri, 27 Jun 2025 14:52:01 +0100
Subject: [PATCH] net/ice: fix inconsistency in Rx queue VLAN tag placement
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit 4cd8c72f661c005900ddc39cf0cecfca16184f2a ]
When VLAN or QinQ stripping is enabled in the ice driver, an
inconsistency was observed between the placement of the VLAN tag in the
descriptors of the final Rx queue (irrespective of the number of queues)
vs descriptors of all other queues. This inconsistency was due to the
fact that the driver - when updating l2tsel (L2 tag selection) field -
used the queue id, rather than the register index for the queue. Queue 0
is normally HW queue 1, etc., meaning the final queue never had its
field updated.
Fixes: de5da9d16430 ("net/ice: support double VLAN")
Cc: stable at dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>
---
drivers/net/ice/ice_ethdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index be826d3108..3d08e12cba 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -4744,11 +4744,11 @@ static void ice_vsi_update_l2tsel(struct ice_vsi *vsi, enum ice_l2tsel l2tsel)
l2tsel_bit = BIT(ICE_L2TSEL_BIT_OFFSET);
for (i = 0; i < dev_data->nb_rx_queues; i++) {
+ const struct ice_rx_queue *rxq = dev_data->rx_queues[i];
u32 qrx_context_offset;
u32 regval;
- qrx_context_offset =
- QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX, i);
+ qrx_context_offset = QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX, rxq->reg_idx);
regval = rd32(hw, qrx_context_offset);
regval &= ~BIT(ICE_L2TSEL_BIT_OFFSET);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-07-30 22:50:04.230786948 +0800
+++ 0018-net-ice-fix-inconsistency-in-Rx-queue-VLAN-tag-place.patch 2025-07-30 22:50:03.048759617 +0800
@@ -1 +1 @@
-From 4cd8c72f661c005900ddc39cf0cecfca16184f2a Mon Sep 17 00:00:00 2001
+From 43fdac7411d9a6d408b2ce61a5c191886c6ff638 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 4cd8c72f661c005900ddc39cf0cecfca16184f2a ]
@@ -21 +24 @@
- drivers/net/intel/ice/ice_ethdev.c | 4 ++--
+ drivers/net/ice/ice_ethdev.c | 4 ++--
@@ -24,5 +27,5 @@
-diff --git a/drivers/net/intel/ice/ice_ethdev.c b/drivers/net/intel/ice/ice_ethdev.c
-index 680e7724cd..513777e372 100644
---- a/drivers/net/intel/ice/ice_ethdev.c
-+++ b/drivers/net/intel/ice/ice_ethdev.c
-@@ -4988,11 +4988,11 @@ static void ice_vsi_update_l2tsel(struct ice_vsi *vsi, enum ice_l2tsel l2tsel)
+diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
+index be826d3108..3d08e12cba 100644
+--- a/drivers/net/ice/ice_ethdev.c
++++ b/drivers/net/ice/ice_ethdev.c
+@@ -4744,11 +4744,11 @@ static void ice_vsi_update_l2tsel(struct ice_vsi *vsi, enum ice_l2tsel l2tsel)
@@ -32 +35 @@
-+ const struct ci_rx_queue *rxq = dev_data->rx_queues[i];
++ const struct ice_rx_queue *rxq = dev_data->rx_queues[i];
More information about the stable
mailing list