patch 'net/enetc: fix Tx BD structure' has been queued to stable release 24.11.7
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Mon Jul 6 12:20:53 CEST 2026
Hi,
FYI, your patch has been queued to stable release 24.11.7
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/05/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/7d77d67052dfa67cf371a8a2e73f5eaa2809268f
Thanks.
Luca Boccassi
---
>From 7d77d67052dfa67cf371a8a2e73f5eaa2809268f Mon Sep 17 00:00:00 2001
From: Gagandeep Singh <g.singh at nxp.com>
Date: Mon, 29 Jun 2026 10:48:11 +0530
Subject: [PATCH] net/enetc: fix Tx BD structure
[ upstream commit 22baba08f3439a7e20ced171bec67f789399f183 ]
The flags field in struct enetc_tx_bd was declared as uint16_t but
ENETC4 TX BDs only use an 8-bit flags byte. Fix the type to uint8_t
to match the hardware descriptor layout.
Fixes: 696fa399d797 ("net/enetc: add PMD with basic operations")
Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
---
drivers/net/enetc/base/enetc_hw.h | 7 +++----
drivers/net/enetc/enetc_rxtx.c | 4 ++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/net/enetc/base/enetc_hw.h b/drivers/net/enetc/base/enetc_hw.h
index 66fad58e5e..9714598164 100644
--- a/drivers/net/enetc/base/enetc_hw.h
+++ b/drivers/net/enetc/base/enetc_hw.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2018-2020 NXP
+ * Copyright 2018-2026 NXP
*/
#ifndef _ENETC_HW_H_
@@ -188,8 +188,7 @@ enum enetc_bdr_type {TX, RX};
#define ENETC_TX_ADDR(txq, addr) ((void *)((txq)->enetc_txbdr + (addr)))
-#define ENETC_TXBD_FLAGS_IE BIT(13)
-#define ENETC_TXBD_FLAGS_F BIT(15)
+#define ENETC_TXBD_FLAGS_F BIT(7)
/* ENETC Parsed values (Little Endian) */
#define ENETC_PARSE_ERROR 0x8000
@@ -249,7 +248,7 @@ struct enetc_tx_bd {
uint16_t buf_len;
uint16_t frm_len;
uint16_t err_csum;
- uint16_t flags;
+ uint8_t flags;
};
/* RX buffer descriptor */
diff --git a/drivers/net/enetc/enetc_rxtx.c b/drivers/net/enetc/enetc_rxtx.c
index ea64c9f682..dd7e61f9e3 100644
--- a/drivers/net/enetc/enetc_rxtx.c
+++ b/drivers/net/enetc/enetc_rxtx.c
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2018-2020 NXP
+ * Copyright 2018-2026 NXP
*/
#include <stdbool.h>
@@ -99,7 +99,7 @@ enetc_xmit_pkts(void *tx_queue,
tx_swbd = &tx_ring->q_swbd[i];
txbd->frm_len = tx_pkts[start]->pkt_len;
txbd->buf_len = txbd->frm_len;
- txbd->flags = rte_cpu_to_le_16(ENETC_TXBD_FLAGS_F);
+ txbd->flags = ENETC_TXBD_FLAGS_F;
txbd->addr = (uint64_t)(uintptr_t)
rte_cpu_to_le_64((size_t)tx_swbd->buffer_addr->buf_iova +
tx_swbd->buffer_addr->data_off);
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-07-03 12:55:49.000074461 +0100
+++ 0061-net-enetc-fix-Tx-BD-structure.patch 2026-07-03 12:55:46.706574925 +0100
@@ -1 +1 @@
-From 22baba08f3439a7e20ced171bec67f789399f183 Mon Sep 17 00:00:00 2001
+From 7d77d67052dfa67cf371a8a2e73f5eaa2809268f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 22baba08f3439a7e20ced171bec67f789399f183 ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -15,3 +16,3 @@
- drivers/net/enetc/base/enetc_hw.h | 7 +++----
- drivers/net/enetc/enetc_rxtx.c | 17 +++++++++--------
- 2 files changed, 12 insertions(+), 12 deletions(-)
+ drivers/net/enetc/base/enetc_hw.h | 7 +++----
+ drivers/net/enetc/enetc_rxtx.c | 4 ++--
+ 2 files changed, 5 insertions(+), 6 deletions(-)
@@ -20 +21 @@
-index 173d677fd0..19efadd9dc 100644
+index 66fad58e5e..9714598164 100644
@@ -25 +26 @@
-- * Copyright 2018-2024 NXP
+- * Copyright 2018-2020 NXP
@@ -30 +31 @@
-@@ -198,8 +198,7 @@ enum enetc_bdr_type {TX, RX};
+@@ -188,8 +188,7 @@ enum enetc_bdr_type {TX, RX};
@@ -40,9 +41,9 @@
-@@ -262,7 +261,7 @@ struct enetc_tx_bd {
- uint8_t l3t:1;
- uint8_t resv:5;
- uint8_t l4t:3;
-- uint16_t flags;
-+ uint8_t flags;
- };/* default layout */
- uint32_t txstart;
- uint32_t lstatus;
+@@ -249,7 +248,7 @@ struct enetc_tx_bd {
+ uint16_t buf_len;
+ uint16_t frm_len;
+ uint16_t err_csum;
+- uint16_t flags;
++ uint8_t flags;
+ };
+
+ /* RX buffer descriptor */
@@ -50 +51 @@
-index a2b8153085..d3b98b38dd 100644
+index ea64c9f682..dd7e61f9e3 100644
@@ -55 +56 @@
-- * Copyright 2018-2024 NXP
+- * Copyright 2018-2020 NXP
@@ -60 +61 @@
-@@ -101,7 +101,7 @@ enetc_xmit_pkts(void *tx_queue,
+@@ -99,7 +99,7 @@ enetc_xmit_pkts(void *tx_queue,
@@ -69,36 +69,0 @@
-@@ -133,13 +133,13 @@ enetc4_tx_offload_checksum(struct rte_mbuf *mbuf, struct enetc_tx_bd *txbd)
- txbd->ipcs = ENETC4_TXBD_IPCS;
- txbd->l3_start = mbuf->l2_len;
- txbd->l3_hdr_size = mbuf->l3_len / 4;
-- txbd->flags |= rte_cpu_to_le_16(ENETC4_TXBD_FLAGS_L_TX_CKSUM);
-+ txbd->flags |= ENETC4_TXBD_FLAGS_L_TX_CKSUM;
- if ((mbuf->ol_flags & RTE_MBUF_F_TX_UDP_CKSUM) == RTE_MBUF_F_TX_UDP_CKSUM) {
-- txbd->l4t = rte_cpu_to_le_16(ENETC4_TXBD_L4T_UDP);
-- txbd->flags |= rte_cpu_to_le_16(ENETC4_TXBD_FLAGS_L4CS);
-+ txbd->l4t = ENETC4_TXBD_L4T_UDP;
-+ txbd->flags |= ENETC4_TXBD_FLAGS_L4CS;
- } else if ((mbuf->ol_flags & RTE_MBUF_F_TX_TCP_CKSUM) == RTE_MBUF_F_TX_TCP_CKSUM) {
-- txbd->l4t = rte_cpu_to_le_16(ENETC4_TXBD_L4T_TCP);
-- txbd->flags |= rte_cpu_to_le_16(ENETC4_TXBD_FLAGS_L4CS);
-+ txbd->l4t = ENETC4_TXBD_L4T_TCP;
-+ txbd->flags |= ENETC4_TXBD_FLAGS_L4CS;
- }
- }
- }
-@@ -172,7 +172,7 @@ enetc_xmit_pkts_nc(void *tx_queue,
- dcbf(data + j);
-
- txbd = ENETC_TXBD(*tx_ring, i);
-- txbd->flags = rte_cpu_to_le_16(ENETC4_TXBD_FLAGS_F);
-+ txbd->flags = 0;
- if (tx_ring->q_swbd[i].buffer_addr->ol_flags & ENETC4_TX_CKSUM_OFFLOAD_MASK)
- enetc4_tx_offload_checksum(tx_ring->q_swbd[i].buffer_addr, txbd);
-
-@@ -182,6 +182,7 @@ enetc_xmit_pkts_nc(void *tx_queue,
- txbd->addr = (uint64_t)(uintptr_t)
- rte_cpu_to_le_64((size_t)tx_swbd->buffer_addr->buf_iova +
- tx_swbd->buffer_addr->data_off);
-+ txbd->flags |= ENETC4_TXBD_FLAGS_F;
- i++;
- start++;
- if (unlikely(i == tx_ring->bd_count))
More information about the stable
mailing list