* [PATCH] net/ice: fix inconsistency in Rx queue VLAN tag placement
@ 2025-06-27 13:52 Bruce Richardson
2025-06-27 14:31 ` Burakov, Anatoly
0 siblings, 1 reply; 2+ messages in thread
From: Bruce Richardson @ 2025-06-27 13:52 UTC (permalink / raw)
To: dev; +Cc: Bruce Richardson, stable, Anatoly Burakov, Qi Zhang, Mingjin Ye
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@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/net/intel/ice/ice_ethdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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)
l2tsel_bit = BIT(ICE_L2TSEL_BIT_OFFSET);
for (i = 0; i < dev_data->nb_rx_queues; i++) {
+ const struct ci_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.48.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] net/ice: fix inconsistency in Rx queue VLAN tag placement
2025-06-27 13:52 [PATCH] net/ice: fix inconsistency in Rx queue VLAN tag placement Bruce Richardson
@ 2025-06-27 14:31 ` Burakov, Anatoly
0 siblings, 0 replies; 2+ messages in thread
From: Burakov, Anatoly @ 2025-06-27 14:31 UTC (permalink / raw)
To: Bruce Richardson, dev; +Cc: stable, Qi Zhang, Mingjin Ye
On 6/27/2025 3:52 PM, Bruce Richardson wrote:
> 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@dpdk.org
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Acked-By: Anatoly Burakov <anatoly.burakov@intel.com>
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-06-27 14:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-27 13:52 [PATCH] net/ice: fix inconsistency in Rx queue VLAN tag placement Bruce Richardson
2025-06-27 14:31 ` Burakov, Anatoly
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).