Linux LED subsystem development
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Shiji Yang <yangshiji66@outlook.com>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, Lee Jones <lee@kernel.org>,
	Pavel Machek <pavel@kernel.org>,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>
Subject: Re: [BUG] AB-BA deadlock between net and led-trigger module
Date: Sat, 21 Feb 2026 20:39:57 +0100	[thread overview]
Message-ID: <13fd89d2-012b-4882-8a72-aa5f66460201@lunn.ch> (raw)
In-Reply-To: <OS7PR01MB13602B128BA1AD3FA38B6D1FFBC69A@OS7PR01MB13602.jpnprd01.prod.outlook.com>

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

  reply	other threads:[~2026-02-21 19:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-21 10:01 [BUG] AB-BA deadlock between net and led-trigger module Shiji Yang
2026-02-21 19:39 ` Andrew Lunn [this message]
2026-02-21 23:48 ` Andrew Lunn
2026-02-22  6:03   ` Shiji Yang
2026-02-22 15:18     ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13fd89d2-012b-4882-8a72-aa5f66460201@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pavel@kernel.org \
    --cc=yangshiji66@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox