[PATCH v3 net 0/7] Fix short frame transmission in enetc

From: vladimir . oltean

Date: Tue Sep 15 2026 - 18:33:02 EST


This is a belated follow-up to Zefir Kurtisi's report:
https://lore.kernel.org/netdev/20260220132930.2521155-1-zefir.kurtisi@xxxxxxxxx/

which is that the ENETC misbehaves when transmitting packets smaller
than 16 octets sans FCS: it sends them but does not update the completed
index in the transmit BD ring. I did find a sentence in the reference
manual explicitly stating these short frames are not supported.

The original series (patches 4, 5) were focused on handling the invalid
frame geometries. However, review pointed out further issues in annex
code. The other patches handle those.

The original patch is 4/7, which Zefir already tested (in a simpler
form) and confirmed working in the thread from February. The code path
should be identical for his issue, so I've preserved the tag despite the
additions.

I've CCed the BPF/XDP folks for the new xdp_frame_pad() helper in patch
5/7.

v1 at:
https://lore.kernel.org/netdev/20260401172246.1075883-1-vladimir.oltean@xxxxxxx/

v2 at:
https://lore.kernel.org/netdev/20260406204122.167237-1-vladimir.oltean@xxxxxxx/

Change log in individual patches.

Vladimir Oltean (7):
net: enetc: consistenly track dropped frames in enetc_xdp_xmit()
net: enetc: ensure enetc_xdp_xmit() calls enetc_update_tx_ring_tail()
net: enetc: fix bogus TX ring consumer index after reinitialization
net: enetc: pad short frames in software
net: enetc: pad short XDP frames coming from devmap
net: enetc: linearize PTP event packets with one-step TX timestamping
net: enetc: drain and cancel one-step TX tstamp queue when going down

drivers/net/ethernet/freescale/enetc/enetc.c | 50 +++++++++++++++-----
drivers/net/ethernet/freescale/enetc/enetc.h | 2 +
include/net/xdp.h | 23 +++++++++
3 files changed, 64 insertions(+), 11 deletions(-)

--
2.43.0