From 3ab75a1082837cc52f640990aa25551be9f7d54b Mon Sep 17 00:00:00 2001 From: Visa Hankala Date: Sun, 12 Mar 2023 13:44:42 +0000 Subject: [PATCH] net/e1000: fix saving of stripped VLAN TCI [ upstream commit 8d57c9fcfcda3122aa38fba08a029ec248eeb52d ] When receiving a scattered packet, save the stripped VLAN TCI in the first mbuf segment where users expect to find it. Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)") Signed-off-by: Visa Hankala Acked-by: Wenjun Wu --- drivers/net/e1000/em_rxtx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index b86cc43e2c..cb5d749d46 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -1031,6 +1031,7 @@ eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, * - RX port identifier, * - hardware offload data, if any: * - IP checksum flag, + * - VLAN TCI, if any, * - error flags. */ first_seg->port = rxq->port_id; @@ -1040,7 +1041,7 @@ eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, rx_desc_error_to_pkt_flags(rxd.errors); /* Only valid if PKT_RX_VLAN set in pkt_flags */ - rxm->vlan_tci = rte_le_to_cpu_16(rxd.special); + first_seg->vlan_tci = rte_le_to_cpu_16(rxd.special); /* Prefetch data of first segment, if configured to do so. */ rte_packet_prefetch((char *)first_seg->buf_addr +