[PATCH net] net: stmmac: dwmac-motorcomm: mask the MISC interrupt

Maxime Chevallier maxime.chevallier at bootlin.com
Mon Nov 2 00:22:45 PST 2026


Hi Magnus,

On 11/2/26 09:09, Magnus Leatti wrote:
> motorcomm_init() writes 0 to MGMT_INT_CTRL0, which unmasks the MISC
> interrupt. MISC arrives on MSI-X vector 5, which stmmac requests as its
> MAC interrupt, and nothing in stmmac clears it. The vendor driver masks
> it.
> 
> Since commit 1b9707e6f1a9 ("net: stmmac: enable RPS and RBU interrupts"),
> heavy RX load sets MISC and it never clears again, even though every
> status register I could find reads zero. Vector 5 then fires about 120k
> times per second and the machine stops responding until the TX watchdog
> resets the adapter, or does not recover at all. A 64-byte UDP flood
> from another host is enough:
> 
>   iperf3 -c <host> -u -b 0 -l 64 -R -P 4 -t 10
> 
> Mask MISC, as the vendor driver does. I could not find anything else
> that depends on it here: EEE is not supported, and Wake-on-LAN uses PME.
> 
> Tested on one YT6801 board with net at cb284914e749. Without this
> patch the flood above hangs the board within a second. With it, no MAC
> interrupt fires under that flood or heavier ones, including after link,
> ring, MTU and speed changes and a module reload, and throughput is
> unchanged. Suspend could not be tested. The register values were read
> with a debug build of stmmac.
> 
> Fixes: 02ff155ea281 ("net: stmmac: Add glue driver for Motorcomm YT6801 ethernet controller")
> Signed-off-by: Magnus Leatti <magnusleatti at kernelriot.com>

Can you test this, sent a few days ago ? I also saw that storm, but it didn't
seem to be motorcomm specific :

https://lore.kernel.org/r/20261030102251.208929-1-maxime.chevallier@bootlin.com

It should address the issue, doesn't require masking MISC entirely,
and isn't motorcomm specific (this storm will happen on all dwmac4 multi-MSI
glues).


> ---
> Russell, d3265c19b35d ("net: stmmac: xgmac2: disable RBUE in default RX
> interrupt mask") describes a similar storm on xgmac2. Should dwmac4 do
> the same? I have only tested the glue change.

The above patch should handle these too on dwmac4 :)

Thanks,

Maxime




More information about the linux-arm-kernel mailing list