Thread (5 messages) 5 messages, 2 authors, 2026-02-22

Re: [BUG] AB-BA deadlock between net and led-trigger module

From: Andrew Lunn <andrew@lunn.ch>
Date: 2026-02-21 19:40:01
Also in: linux-leds, lkml

On Sat, Feb 21, 2026 at 06:01:46PM +0800, Shiji Yang wrote:
The OpenWrt community reports that sometimes devices fail to start[1]
on 5.15 kernel. After further tracking, this is caused by a AB-BA
deadlock which can be reproduced in at least 5.15, 6.6, 6.12 and latest
6.18 LTS kenrel.
Thanks for the bug report. I will take a look at this.

I was initially assuming this was the netdev trigger causing the
deadlock. However:
 
Stack tracing on 6.12 kernel:
Task1 "netifd" is used to start/restart the network:

[ 1361.967916] task:netifd          state:D stack:0     pid:4743  tgid:4743  ppid:1      flags:0x08100000
[ 1361.977269] Stack : 00000001 00000001 00000006 800bf464 817a0cb0 800b67ac 00000001 83261b20
[ 1361.985668]         83261a54 00000000 83261aac 000007ef 00000000 80c04d74 00000000 00000002
[ 1361.994138]         83aba760 80ce0000 83261af8 00000002 83261af8 80cd0000 00000002 80d8058c
[ 1362.002582]         80cc0000 809bae70 00000002 80d80000 80cd0000 80d80568 00000001 00000000
[ 1362.011033]         809baecc 83261af8 00000002 80d80560 80d80568 809bb11c 809c09c8 806614d0
[ 1362.019484]         ...
[ 1362.021942] Call Trace:
[ 1362.024380] [<809ba6fc>] __schedule+0x504/0xc28
[ 1362.028974] [<809bae70>] schedule+0x50/0x190
[ 1362.033251] [<809bb11c>] schedule_preempt_disabled+0x1c/0x34
[ 1362.038958] [<809c0b94>] rwsem_down_write_slowpath+0x240/0x7f8
[ 1362.044789] [<809c11c0>] down_write+0x74/0x90
[ 1362.049207] [<8054e4b8>] led_trigger_register+0x5c/0x1fc		<-- Trying to get lock "triggers_list_lock" via down_write(&triggers_list_lock);
[ 1362.054536] [<80662830>] phy_led_triggers_register+0xd0/0x234
This is the code in drivers/net/phy/phy_led_triggers.c.
Task2 "led" is used to set the led-trigger "netdev" for a GPIO LED:
If you are using the led-trigger netdev, do you even need
phy_led_triggers.c? As a workaround, could you disable
CONFIG_LED_TRIGGER_PHY?

I'm not sure familiar with phy_led_triggers.c, so i don't have a quick
real fix.

     Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help