Re: [PATCH net v2] net: stmmac: Clear DMA errors for multi-channel interrupts

From: Nicolai Buchwitz

Date: Tue Nov 03 2026 - 08:44:01 EST


Hi Maxime

On 3.11.2026 13:54, Maxime Chevallier wrote:
The Multi-MSI interrupt handler doesn't clear the DMA error interrupts,
and this leads to interrupt storms when one of these interrupts starts
firing :

- The RBU (rx buff unav) which triggers under high traffic load

This triggers easily with iperf3 and small udp packets, and shows
when running the netpoll kselftest

- The RPS (rx process stop) which triggers when we stop the DMA RX.

This one shows when restarting the RX logic without doing a down/up
cycle, like when attaching an XDP program. The XSK kselftests
triggers it.

Let's make sure we clear these interrupts for multi-MSI cases, and call
stmmac_global_err() upon tx_hard_error to avoid possible races with
other interrupts/napi.

For that introduce an "ERR" DMA dir, as we don't want to touch the
RI/TI bits when handling these interrupts.

Both of the above storms have been found on dwmac-motorcomm (YT6801),
and are triggered by the xdp.py, xsk_reconfig.py, xdp_features.py,
ring_reconfig.py and netpoll_basic kernel selftests.

This seems to only affect dwmac4, there's no multi-msi mode on
dwmac1000, and on dwxgmac these interrupts are masked as of today.

Fixes: 6ccf12ae111e ("net: stmmac: use interrupt mode INTM=1 for multi-MSI")
Signed-off-by: Maxime Chevallier <maxime.chevallier@xxxxxxxxxxx>

[...]

Reviewed-by: Nicolai Buchwitz <nb@xxxxxxxxxxx>

Thanks,
Nicolai