linux/drivers/net/ethernet
Igor Velkov aa07285705 net: stmmac: dwmac1000: clear the RGMII status interrupt
Since commit 2e2c878a31 ("net: stmmac: remove SGMII/RGMII/SMII
interrupt handling") nothing on the RGMII path reads GMAC_RGSMIIIS, so
RGSMIIIS stays pending behind GMAC_INT_MASK from the first link change
on. stmmac_resume() resets the MAC in stmmac_hw_setup(); the reset sets
GMAC_INT_MASK to 0 until dwmac1000_core_init() writes the mask again,
and the pending status storms the line:

  dwmac_dma_interrupt: unexpected status 04000000

A register dump at the first message on ODROID-HC4 showed it:

  core int_status 00000001 int_mask 00000000 pmt 00000000 rgsmiiis 0000000d

When the resume thread runs on the CPU that takes the MAC interrupt,
the storm starves it: a soft lockup, then a watchdog reset or a hang.

Read GMAC_RGSMIIIS in dwmac1000_irq_status() when the status is not
masked, as the driver did before 2e2c878a3141; the read clears it.

Wake-on-LAN resume from s2idle with the resume thread and the MAC
interrupt on one CPU: Helios64 (dwmac-rk), 7.3-rc6, soft-locked in 3 of
3 resumes without a fix and in 0 of 10 with this patch; it ran with an
out-of-tree dwmac-rk change that keeps the GMAC powered across suspend.
ODROID-HC4 (dwmac-meson8b): 0 of 10 with this patch, 2 of 2 without a
fix on a 7.3-rc5 build. irq_rgmii_n went up by one per resume.

Fixes: 2e2c878a31 ("net: stmmac: remove SGMII/RGMII/SMII interrupt handling")
Assisted-by: LLM
Signed-off-by: Igor Velkov <iav@iav.lv>
Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://patch.msgid.link/20261009201709.1917585-1-iav@iav.lv
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-10-15 14:57:52 +02:00
..
3com
8390
actions net: ethernet: actions: Move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
adaptec
adi net: ethernet: adi: Move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
aeroflex net: ethernet: aeroflex: move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
agere et131x: propagate EEPROM readiness errors 2026-08-10 17:40:51 -07:00
airoha net: airoha: Add retry mechanism to airoha_qdma_set_trtcm_param() 2026-10-05 17:45:01 -07:00
alacritech
alibaba treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
allwinner net: allwinner: remove dmaengine_desc_free() 2026-10-02 11:38:31 +01:00
altera
amazon net: ena: fix MMIO read buffer leak on probe failure 2026-09-24 09:57:55 -07:00
amd net: au1000: move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
apm net: replace linux/gpio.h inclusions 2026-06-30 16:45:02 -07:00
apple
aquantia Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-06 11:53:47 -07:00
arc
asix
atheros net: atl1: fix soft lockup on out-of-range cmb_tpd_next_to_clean read 2026-09-24 12:41:10 +02:00
broadcom net: bcmgenet: unshare the skb before writing the control block 2026-10-15 12:03:14 +02:00
brocade bna: prevent IOC timer rearm during teardown 2026-09-24 13:01:11 +02:00
cadence net: macb: copy shared skbs before appending the FCS 2026-10-08 11:48:50 -07:00
calxeda Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
cavium net/liquidio: drop cached VF pci_dev LUT 2026-07-07 11:03:35 +02:00
chelsio cxgb4/ch_ktls: disable softirqs around tid_list erases 2026-10-02 09:58:07 +01:00
cirrus
cisco Nothing too exciting, usual stream of fixes. 2026-09-10 14:07:48 -07:00
cortina net: ethernet: cortina: Ack RX overrun interrupt correctly 2026-09-16 17:44:40 -07:00
davicom
dec net: tulip: remove xircom_cb driver 2026-08-05 18:33:46 -07:00
dlink
emulex
engleder
ezchip Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
faraday Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
freescale fsl/fman: Fix clk reference leak in read_dts_node() 2026-09-22 12:31:26 +02:00
fungible net/funeth: switch to higher-level allocator API 2026-07-30 19:40:43 -07:00
google gve: fix napi_disable deadlock when attempting to disable XSK pools 2026-10-05 16:59:56 -07:00
hisilicon net: hisilicon: hip04_eth: Move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
huawei net: hinic: fix mailbox segment buffer overflow 2026-09-10 12:37:09 +02:00
i825xx
ibm ibmveth: fix TX LTB and filter unwind on open-fail 2026-10-01 15:59:28 -07:00
intel e1000e: add system to disable K1 list 2026-10-07 19:00:32 -07:00
litex
marvell net: mv643xx: move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
mediatek net: ethernet: mtk_eth_soc: allocate dummy netdev sooner 2026-09-29 18:14:28 -07:00
mellanox net/mlx5: HWS, fix flow meter offset within its bulk 2026-10-13 15:22:23 +02:00
meta eth: fbnic: Avoid rounding zero ring sizes 2026-09-22 18:53:11 -07:00
micrel net: ks8851: Fix receiver error in 100BASE-TX mode following software power-down 2026-09-09 18:04:05 -07:00
microchip microchip: lan865x: move setting of netops to fix crash 2026-10-15 10:39:22 +02:00
microsoft net: mana: reserve RX buffer headroom to fix forwarding performance 2026-10-08 10:42:03 -07:00
moxa
mscc
mucse net: rnpgbe: fix mailbox endianness and remove pointer casts 2026-07-07 10:45:42 +02:00
myricom
natsemi
netronome nfp: hold IPsec RX state under the XArray lock 2026-09-24 09:59:32 -07:00
ni
nvidia forcedeth: stop the tx_timeout register dump past the requested window 2026-08-20 12:24:44 -07:00
nxp
oki-semi net: replace linux/gpio.h inclusions 2026-06-30 16:45:02 -07:00
pasemi
pensando ionic: use netif_txq_maybe_stop() in ionic_tx() 2026-09-04 15:50:51 -07:00
qlogic qede: Fix NULL pointer dereference in TPA fragment processing 2026-08-22 13:23:02 -07:00
qualcomm net: qualcomm: rmnet: restore skb->dev on deaggregated frames 2026-08-24 11:42:16 -07:00
rdc
realtek r8169: disable EEE on RTL8168h/8111h 2026-09-30 17:18:00 -07:00
renesas net: ethernet: renesas: rswitch: fix device_node refcount leak in rswitch_get_port_node() 2026-08-24 11:58:22 -07:00
rocker rocker: Fix memory leak in ofdpa_port_fdb() 2026-06-22 16:05:15 -07:00
samsung Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-07-30 12:53:19 -07:00
seeq
sfc sfc: add X4D PF support 2026-09-18 16:52:12 -07:00
sgi net: sgi: ioc3-eth: fix split TX DMA mapping lengths 2026-06-30 17:13:06 -07:00
silan
sis
smsc
socionext net: netsec: fix device_node reference leak on phy_np 2026-09-16 17:32:15 -07:00
spacemit net: spacemit: clear TX descriptor on fragment mapping failure 2026-09-22 13:02:35 +02:00
stmicro net: stmmac: dwmac1000: clear the RGMII status interrupt 2026-10-15 14:57:52 +02:00
sun net: niu: fix potential buffer overflow/truncation in irq names 2026-08-07 16:41:01 -07:00
sunplus net: ethernet: sunplus: spl2sw: fix phy_node refcount leak in remove 2026-06-24 19:34:56 -07:00
synopsys
tehuti
ti net: ti: icssm-prueth: Move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
toshiba
tundra
vertexcom
via
wangxun net: libwx: fix races in Tx timestamp handling 2026-09-24 09:40:29 -07:00
wiznet
xilinx net: xilinx: axienet: Free outstanding DMA buffers on dmaengine stop 2026-10-02 12:58:38 -07:00
xircom
xscale Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
zte dinghai: add hardware register access and PCI capability scanning 2026-08-05 18:19:49 -07:00
ec_bhf.c
ethoc.c net: ethoc: move setting of netops to fix crash 2026-10-15 10:39:21 +02:00
fealnx.c
jme.c
jme.h
Kconfig dinghai: add ZTE network driver support 2026-08-05 18:19:48 -07:00
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile dinghai: add ZTE network driver support 2026-08-05 18:19:48 -07:00
oa_tc6.c net: ethernet: oa_tc6: Fix for the wrong data type 2026-08-31 16:03:21 -07:00