[PATCH net v2 0/2] net: spacemit: Fix TX timeout work deadlock and RTNL in PM callbacks
Ali Tariq
alitariq45892 at gmail.com
Fri Nov 13 05:24:33 PST 2026
This series fixes two locking problems in the SpacemiT K1 Ethernet
driver.
Patch 1 fixes the TX timeout work, which ends up waiting for itself
through cancel_work_sync() in emac_down(), so every TX timeout leaves
RTNL held forever.
Patch 2 takes RTNL in emac_suspend() and emac_resume(), which fixes the
"suspicious RCU usage" warning from phy_disconnect() on suspend. It
depends on patch 1: suspend disables the TX timeout work before taking
RTNL, so it never waits for the work while holding the lock.
Tested on Orange Pi RV2 (SpacemiT K1) with a lockdep kernel: 12
suspend/resume cycles without the warning. The board loses its network
after about a dozen cycles with or without this series; that is a
separate issue.
Changes in v2:
- New patch 1 to fix the TX timeout work deadlock (reported by Troy,
approach suggested by Vivian)
- Patch 2: take RTNL before the netif_running() checks
- Patch 2: drop Breno's Reviewed-by, since the patch changed
v1: https://lore.kernel.org/netdev/20261105123441.2524171-1-alitariq45892@gmail.com/
Ali Tariq (2):
net: spacemit: Fix TX timeout work deadlocking on itself
net: spacemit: Hold RTNL lock in emac_resume() and emac_suspend()
drivers/net/ethernet/spacemit/k1_emac.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
--
2.34.1
More information about the linux-riscv
mailing list