[PATCH net 0/7] net: bcm4908_enet: TX ring and DMA fixes

From: Kordian Chmielewski (mlody1212)

Date: Mon Nov 09 2026 - 19:02:21 EST


These fix the BCM4908 Ethernet driver; the bugs were found on a
TP-Link Archer AX6000 running OpenWrt. The first patch is the
important one: the TX ring indexes wrapped at different points, so a
full ring could look empty, and under sustained load the queue stopped
for good with nothing logged.

The others drop a TX frame whose DMA mapping failed instead of
retrying it, free what stop leaves in the TX ring, unmap RX buffers
that were freed while still mapped or unmapped with the wrong size,
order the descriptor writes before OWN, and drop RX frames longer than
the buffer instead of panicking in skb_put().

The last patch guards against something seen only with a non-default
RX burst length; I am fine with it going to net-next instead.

The same changes have run on the 6.12 and 6.18 kernels of two Archer
AX6000 units and an AX11000 since the end of September. Here they are
on top of net; each patch builds with W=1.

Kordian Chmielewski (mlody1212) (7):
net: bcm4908_enet: fix the TX ring wrap
net: bcm4908_enet: drop a TX frame whose DMA mapping failed
net: bcm4908_enet: release the TX ring on stop
net: bcm4908_enet: unmap the buffer of a dropped RX frame
net: bcm4908_enet: unmap RX buffers on stop with their mapped size
net: bcm4908_enet: publish the buffer address before OWN
net: bcm4908_enet: drop RX frames longer than the buffer

drivers/net/ethernet/broadcom/bcm4908_enet.c | 106 +++++++++++++++----
1 file changed, 83 insertions(+), 23 deletions(-)


base-commit: 86706ffa990ecd46a4326f8eecbccbbd60a6cb8d
--
2.56.0