linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger"
@ 2024-06-07 10:18 Hans de Goede
  2024-06-07 12:03 ` Andrew Lunn
  2024-06-20  9:46 ` Lee Jones
  0 siblings, 2 replies; 10+ messages in thread
From: Hans de Goede @ 2024-06-07 10:18 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones
  Cc: Hans de Goede, Jakub Kicinski, Andrew Lunn, Heiner Kallweit,
	regressions, linux-leds, Genes Lists, Johannes Wüller,
	stable

Commit 66601a29bb23 ("leds: class: If no default trigger is given, make
hw_control trigger the default trigger") causes ledtrig-netdev to get
set as default trigger on various network LEDs.

This causes users to hit a pre-existing AB-BA deadlock issue in
ledtrig-netdev between the LED-trigger locks and the rtnl mutex,
resulting in hung tasks in kernels >= 6.9.

Solving the deadlock is non trivial, so for now revert the change to
set the hw_control trigger as default trigger, so that ledtrig-netdev
no longer gets activated automatically for various network LEDs.

The netdev trigger is not needed because the network LEDs are usually under
hw-control and the netdev trigger tries to leave things that way so setting
it as the active trigger for the LED class device is a no-op.

Fixes: 66601a29bb23 ("leds: class: If no default trigger is given, make hw_control trigger the default trigger")
Reported-by: Genes Lists <lists@sapience.com>
Closes: https://lore.kernel.org/all/9d189ec329cfe68ed68699f314e191a10d4b5eda.camel@sapience.com/
Reported-by: "Johannes Wüller" <johanneswueller@gmail.com>
Closes: https://lore.kernel.org/lkml/e441605c-eaf2-4c2d-872b-d8e541f4cf60@gmail.com/
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/leds/led-class.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 24fcff682b24..ba1be15cfd8e 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -552,12 +552,6 @@ int led_classdev_register_ext(struct device *parent,
 	led_init_core(led_cdev);
 
 #ifdef CONFIG_LEDS_TRIGGERS
-	/*
-	 * If no default trigger was given and hw_control_trigger is set,
-	 * make it the default trigger.
-	 */
-	if (!led_cdev->default_trigger && led_cdev->hw_control_trigger)
-		led_cdev->default_trigger = led_cdev->hw_control_trigger;
 	led_trigger_set_default(led_cdev);
 #endif
 
-- 
2.45.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-06-20  9:49 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-07 10:18 [PATCH] leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger" Hans de Goede
2024-06-07 12:03 ` Andrew Lunn
2024-06-07 15:26   ` Hans de Goede
2024-06-12 14:58     ` Linux regression tracking (Thorsten Leemhuis)
2024-06-12 15:06       ` Hans de Goede
2024-06-12 15:26         ` Lee Jones
2024-06-13  6:01           ` Linux regression tracking (Thorsten Leemhuis)
2024-06-16 11:40             ` Thorsten Leemhuis
2024-06-20  9:46 ` Lee Jones
2024-06-20  9:49   ` Lee Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).