linux/drivers/leds
Hans de Goede fcf2a9970e leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger"
Commit 66601a29bb ("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: 66601a29bb ("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>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-06-16 09:33:28 -07:00
..
blink leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
flash leds: aat1290: Remove unused field 'torch_brightness' from 'struct aat1290_led' 2024-05-02 18:09:04 +01:00
rgb leds: mt6370: Remove unused field 'reg_cfgs' from 'struct mt6370_priv' 2024-05-02 18:12:27 +01:00
simple leds: simatic-ipc-leds-gpio: Add support for module BX-59A 2024-04-12 09:47:11 +01:00
trigger leds: trigger: pattern: Add support for hrtimer 2024-05-02 17:32:01 +01:00
Kconfig leds: expresswire: Don't depend on NEW_LEDS 2024-03-07 08:48:11 +00:00
led-class-flash.c
led-class-multicolor.c leds: multicolor: Use rounded division when calculating color components 2023-08-17 11:25:03 +01:00
led-class.c leds: class: Revert: "If no default trigger is given, make hw_control trigger the default trigger" 2024-06-16 09:33:28 -07:00
led-core.c - Core Frameworks 2023-11-02 14:53:19 -10:00
led-triggers.c leds: trigger: Store brightness set by led_trigger_event() 2024-03-28 10:39:49 +00:00
leds-88pm860x.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-acer-a500.c
leds-adp5520.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-an30259a.c leds: an30259a: Use devm_mutex_init() for mutex initialization 2024-04-11 17:35:24 +01:00
leds-apu.c leds: apu: Remove duplicate DMI lookup data 2024-04-12 09:47:15 +01:00
leds-ariel.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-aw200xx.c leds: aw200xx: Use devm API to cleanup module's resources 2024-04-11 17:34:57 +01:00
leds-aw2013.c leds: aw2013: Use devm API to cleanup module's resources 2024-04-11 17:34:52 +01:00
leds-bcm6328.c leds: bcm6328: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:37 +00:00
leds-bcm6358.c leds: bcm6358: Get rid of custom led_init_default_state_get() 2023-01-30 08:03:38 +00:00
leds-bd2606mvv.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-bd2802.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-blinkm.c leds: blinkm: Replace all non-returning strlcpy with strscpy 2023-05-25 12:31:18 +01:00
leds-cht-wcove.c leds: cht-wcove: Remove unneeded semicolon 2023-06-08 18:11:14 +01:00
leds-clevo-mail.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-cr0014114.c leds: cr0014114: Annotate struct cr0014114 with __counted_by 2023-11-01 11:28:26 +00:00
leds-da903x.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-da9052.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-dac124s085.c
leds-el15203000.c leds: el15203000: Annotate struct el15203000 with __counted_by 2023-11-01 11:28:28 +00:00
leds-expresswire.c leds: expresswire: Don't use "proxy" headers 2024-03-07 08:45:31 +00:00
leds-gpio-register.c
leds-gpio.c leds: gpio: Add kernel log if devm_fwnode_gpiod_get() fails 2023-12-13 15:45:55 +00:00
leds-hp6xx.c
leds-ip30.c leds: ip30: Convert to devm_platform_ioremap_resource() 2023-07-28 09:26:21 +01:00
leds-ipaq-micro.c
leds-is31fl32xx.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-is31fl319x.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lm355x.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lm3530.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lm3532.c leds: lm3532: Use devm API to cleanup module's resources 2024-04-11 17:35:08 +01:00
leds-lm3533.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-lm3642.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lm3692x.c leds: lm392x: Convert to use maple tree register cache 2023-11-01 11:29:02 +00:00
leds-lm3697.c leds: lm3697: Annotate struct lm3697 with __counted_by 2023-11-01 11:28:31 +00:00
leds-lm36274.c
leds-locomo.c
leds-lp50xx.c leds: lp50xx: Remove unused field 'num_of_banked_leds' from 'struct lp50xx' 2024-05-02 18:10:56 +01:00
leds-lp55xx-common.c leds: lp55xx: Use gpiod_set_value_cansleep() 2023-11-01 11:28:42 +00:00
leds-lp55xx-common.h
leds-lp3944.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lp3952.c leds: lp3952: Use devm API to cleanup module's resources 2024-04-11 17:35:03 +01:00
leds-lp5521.c leds: lp5521: Add an error check in lp5521_post_init_device 2023-11-01 11:29:26 +00:00
leds-lp5523.c leds: Remove redundant of_match_ptr() 2023-08-17 13:28:25 +01:00
leds-lp5562.c leds: Remove redundant of_match_ptr() 2023-08-17 13:28:25 +01:00
leds-lp8501.c leds: Remove redundant of_match_ptr() 2023-08-17 13:28:25 +01:00
leds-lp8788.c
leds-lp8860.c leds: Switch i2c drivers back to use .probe() 2023-05-25 12:16:22 +01:00
leds-lt3593.c
leds-max5970.c leds: max5970: Add missing headers 2023-12-21 14:42:59 +00:00
leds-max8997.c
leds-max77650.c
leds-mc13783.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-menf21bmc.c
leds-mlxcpld.c leds: leds-mlxcpld: Fix struct mlxcpld_led_priv member name 2024-03-07 08:48:16 +00:00
leds-mlxreg.c leds: mlxreg: Use devm_mutex_init() for mutex initialization 2024-04-11 17:35:18 +01:00
leds-mt6323.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-net48xx.c
leds-netxbig.c
leds-nic78bx.c leds: nic78bx: Use devm API to cleanup module's resources 2024-04-11 17:35:13 +01:00
leds-ns2.c leds: ns2: Slightly simplify a memory allocation 2023-07-28 11:58:04 +01:00
leds-ot200.c
leds-pca955x.c leds: pca955x: Cleanup OF/ID table terminators 2023-11-01 11:28:55 +00:00
leds-pca963x.c leds: pca963x: Add support for suspend and resume 2024-03-07 08:48:06 +00:00
leds-pca995x.c leds: pca995x: Fix MODULE_DEVICE_TABLE for OF 2023-08-15 18:30:07 +01:00
leds-pca9532.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-pm8058.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-powernv.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-pwm.c leds: pwm: Disable PWM when going to suspend 2024-05-02 18:02:01 +01:00
leds-rb532.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-regulator.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-sc27xx-bltc.c leds: sc27xx: Move mutex_init() down 2023-11-01 11:29:15 +00:00
leds-spi-byte.c leds: spi-byte: Use devm_led_classdev_register_ext() 2024-03-07 08:48:06 +00:00
leds-ss4200.c
leds-sun50i-a100.c leds: sun50i-a100: Use match_string() helper to simplify the code 2024-05-02 18:06:30 +01:00
leds-sunfire.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
leds-syscon.c leds: syscon: Support 'reg' in addition to 'offset' for register address 2023-12-13 11:28:26 +00:00
leds-tca6507.c leds: tca6507: Use devm_led_classdev_register() to simplify remove path 2023-12-13 11:28:41 +00:00
leds-ti-lmu-common.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-tlc591xx.c leds: Explicitly include correct DT includes 2023-07-28 10:02:32 +01:00
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Fix brightness setting and trigger activating 2023-11-01 11:29:16 +00:00
leds-wm831x-status.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-wm8350.c leds: Convert all platform drivers to return void 2023-11-01 11:28:35 +00:00
leds-wrap.c
leds.h leds: trigger: Stop exporting trigger_list 2024-03-07 08:48:04 +00:00
Makefile leds: Introduce ExpressWire library 2024-03-07 08:45:03 +00:00
TODO
uleds.c leds: uleds: Use module_misc_device macro to simplify the code 2023-08-18 11:42:54 +01:00