Sean Anderson
f0f2b992d8
net: phy: Don't register LEDs for genphy
...
If a PHY has no driver, the genphy driver is probed/removed directly in
phy_attach/detach. If the PHY's ofnode has an "leds" subnode, then the
LEDs will be (un)registered when probing/removing the genphy driver.
This could occur if the leds are for a non-generic driver that isn't
loaded for whatever reason. Synchronously removing the PHY device in
phy_detach leads to the following deadlock:
rtnl_lock()
ndo_close()
...
phy_detach()
phy_remove()
phy_leds_unregister()
led_classdev_unregister()
led_trigger_set()
netdev_trigger_deactivate()
unregister_netdevice_notifier()
rtnl_lock()
There is a corresponding deadlock on the open/register side of things
(and that one is reported by lockdep), but it requires a race while this
one is deterministic.
Generic PHYs do not support LEDs anyway, so don't bother registering
them.
Fixes: 01e5b728e9 ("net: phy: Add a binding for PHY LEDs")
Signed-off-by: Sean Anderson <sean.anderson@linux.dev >
Link: https://patch.msgid.link/20250707195803.666097-1-sean.anderson@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2025-07-14 17:53:09 -07:00
..
2025-06-09 07:16:32 -07:00
2025-04-05 10:30:12 +02:00
2025-07-04 17:25:41 -07:00
2025-03-11 14:05:43 +01:00
2025-06-06 11:50:47 -07:00
2025-06-25 15:17:57 +02:00
2025-06-25 15:28:57 -07:00
2025-06-08 09:07:37 +02:00
2025-07-11 09:19:33 -07:00
2025-07-04 09:33:59 -07:00
2025-06-20 11:55:03 -04:00
2025-06-08 09:07:37 +02:00
2025-05-15 16:25:20 -06:00
2025-06-08 09:07:37 +02:00
2025-05-30 09:15:40 -07:00
2025-06-03 11:53:55 -07:00
2025-06-08 09:07:37 +02:00
2025-05-24 08:29:32 +02:00
2025-06-12 10:31:28 +05:30
2025-05-30 20:21:36 +02:00
2025-06-08 09:07:37 +02:00
2025-06-25 12:05:45 -07:00
2025-05-12 23:50:49 -07:00
2024-07-25 10:42:22 -07:00
2024-07-10 15:38:14 +02:00
2025-06-08 09:07:37 +02:00
2025-06-30 13:15:44 +02:00
2025-06-30 10:57:24 +02:00
2025-05-07 07:01:01 +02:00
2025-06-08 09:07:37 +02:00
2025-07-07 18:22:25 -07:00
2025-05-21 14:08:44 +02:00
2025-02-21 09:20:31 +01:00
2024-09-27 08:18:43 -07:00
2025-07-09 16:14:11 +02:00
2025-07-04 10:01:53 +10:00
2025-06-08 09:07:37 +02:00
2025-07-05 16:14:03 -07:00
2025-06-08 09:07:37 +02:00
2025-04-05 10:30:12 +02:00
2025-06-03 08:39:20 -07:00
2025-06-16 06:30:58 -07:00
2025-05-22 18:04:43 +02:00
2025-07-05 12:54:24 -07:00
2025-05-24 22:49:07 +02:00
2025-06-10 21:09:28 +02:00
2025-06-08 09:07:37 +02:00
2025-07-03 11:52:39 -07:00
2025-07-04 09:54:15 -07:00
2025-05-19 17:09:50 +03:00
2025-07-04 10:33:56 +02:00
2024-07-03 15:16:54 +02:00
2025-06-30 16:59:12 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-23 15:02:57 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-03-26 19:57:34 -07:00
2025-06-19 11:05:30 +01:00
2025-06-08 09:07:37 +02:00
2025-06-25 14:42:51 +02:00
2025-06-08 09:07:37 +02:00
2025-06-29 22:10:47 +01:00
2025-05-08 17:12:08 +02:00
2025-07-14 17:53:09 -07:00
2025-06-08 09:07:37 +02:00
2025-07-04 09:33:59 -07:00
2025-06-06 11:50:47 -07:00
2025-05-31 15:44:16 -07:00
2025-05-19 15:37:53 +05:30
2025-06-08 09:07:37 +02:00
2025-06-27 20:17:48 -07:00
2025-06-08 09:07:37 +02:00
2025-05-28 14:55:35 -07:00
2025-06-05 08:20:21 -07:00
2025-07-04 10:31:50 +02:00
2025-07-04 10:05:31 -07:00
2025-05-19 16:11:05 +02:00
2025-04-14 09:34:14 +02:00
2025-05-31 19:12:53 -07:00
2025-06-30 20:32:29 +02:00
2025-06-08 09:07:37 +02:00
2024-11-15 00:32:29 +11:00
2025-06-17 16:13:09 -07:00
2025-07-07 08:34:44 +02:00
2025-06-11 22:42:36 -07:00
2025-05-06 10:00:58 +02:00
2025-07-03 12:22:35 +01:00
2025-06-02 11:04:29 -07:00
2025-05-05 15:18:35 +02:00
2025-05-20 21:46:10 -05:00
2025-06-24 16:06:14 +02:00
2025-06-16 16:15:24 +02:00
2025-06-24 21:20:58 -04:00
2025-05-16 21:06:11 +02:00
2024-07-25 10:42:22 -07:00
2025-05-31 07:53:30 -07:00
2025-06-05 08:07:24 -07:00
2025-07-01 14:02:26 +01:00
2025-05-21 14:53:17 +02:00
2025-04-23 15:08:44 +02:00
2025-06-19 17:33:43 +02:00
2025-06-16 14:35:57 -04:00
2025-07-03 16:26:08 +02:00
2025-05-27 16:28:02 -07:00
2025-05-21 12:26:51 +02:00
2025-06-24 15:34:21 +01:00
2025-06-24 21:22:20 -04:00
2025-06-06 11:50:47 -07:00
2025-06-30 15:36:00 +02:00
2025-05-27 10:27:53 -04:00
2025-06-04 11:26:17 -07:00
2025-05-29 08:15:35 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-07-03 11:40:02 +02:00
2025-06-06 11:50:47 -07:00
2025-06-08 09:07:37 +02:00
2025-05-23 07:09:00 +02:00
2025-03-06 15:11:30 -04:00