linux/drivers/video/backlight
Herve Codina 61a5c565fd backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()
commit 276822a00d upstream.

Lockdep detects the following issue on led-backlight removal:
  [  142.315935] ------------[ cut here ]------------
  [  142.315954] WARNING: CPU: 2 PID: 292 at drivers/leds/led-core.c:455 led_sysfs_enable+0x54/0x80
  ...
  [  142.500725] Call trace:
  [  142.503176]  led_sysfs_enable+0x54/0x80 (P)
  [  142.507370]  led_bl_remove+0x80/0xa8 [led_bl]
  [  142.511742]  platform_remove+0x30/0x58
  [  142.515501]  device_remove+0x54/0x90
  ...

Indeed, led_sysfs_enable() has to be called with the led_access
lock held.

Hold the lock when calling led_sysfs_disable().

Fixes: ae232e45ac ("backlight: add led-backlight driver")
Cc: stable@vger.kernel.org
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20250122091914.309533-1-herve.codina@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-04-20 10:15:46 +02:00
..
88pm860x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
aat2870_bl.c backlight: aat2870-backlight: Use blacklight power constants 2024-07-04 16:45:25 +01:00
adp5520_bl.c backlight: adp5520_bl: Convert to platform remove callback returning void 2023-03-16 15:08:35 +00:00
adp8860_bl.c backlight: Switch i2c drivers back to use .probe() 2023-05-25 12:25:26 +01:00
adp8870_bl.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
ams369fg06.c backlight: ams369fb06: Use backlight power constants 2024-07-04 16:45:25 +01:00
apple_bl.c backlight: apple_bl: Use acpi_video_get_backlight_type() 2023-03-16 13:33:11 +01:00
arcxcnn_bl.c backlight: Switch i2c drivers back to use .probe() 2023-05-25 12:25:26 +01:00
as3711_bl.c backlight: as3711_bl: Handle deferred probe 2024-03-07 09:03:29 +00:00
backlight.c backlight: Make backlight_class constant 2024-05-10 15:44:28 +01:00
bd6107.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
corgi_lcd.c backlight: corgi-lcd: Use backlight power constants 2024-07-04 16:45:25 +01:00
da903x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
da9052_bl.c backlight: da9052: Fully initialize backlight_properties during probe 2024-03-07 09:03:29 +00:00
ep93xx_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
gpio_backlight.c backlight: gpio-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
hp680_bl.c backlight: hp680_bl: Convert to platform remove callback returning void 2023-03-16 15:08:35 +00:00
hx8357.c backlight: hx8357: Constify lcd_ops 2024-05-03 10:44:59 +01:00
ili922x.c backlight: ili922x: Constify lcd_ops 2024-05-03 10:45:03 +01:00
ili9320.c backlight: ili9320: Constify lcd_ops 2024-05-03 10:45:06 +01:00
ili9320.h video: backlight: ili9320: Make ili9320_remove() return void 2021-10-20 15:13:59 +01:00
ipaq_micro_bl.c backlight: ipaq-micro-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
jornada720_bl.c backlight: journada_bl: Use backlight power constants 2024-07-04 16:45:25 +01:00
jornada720_lcd.c backlight: jornada720_lcd: Constify lcd_ops 2024-05-03 10:45:09 +01:00
kb3886_bl.c backlight: kb3886-bl: Use backlight power constants 2024-07-04 16:45:25 +01:00
Kconfig backlight: Add new lm3509 backlight driver 2024-05-31 15:12:13 +01:00
ktd253-backlight.c backlight: ktd253-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
ktd2801-backlight.c backlight: ktd2801: Make timing struct static 2024-03-07 08:45:20 +00:00
ktz8866.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
l4f00242t03.c backlight: l4f00242t03: Add check for spi_setup 2024-08-01 13:40:14 +01:00
lcd.c backlight: lcd: Make lcd_class constant 2024-05-10 15:44:28 +01:00
led_bl.c backlight: led_bl: Hold led_access lock when calling led_sysfs_disable() 2025-04-20 10:15:46 +02:00
lm3509_bl.c backlight: lm3509_bl: Fix early returns in for_each_child_of_node() 2024-06-26 16:49:59 +01:00
lm3533_bl.c backlight: lm3533-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
lm3630a_bl.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
lm3639_bl.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
lms283gf05.c backlight: lms283gf05: Constify lcd_ops 2024-05-03 10:45:16 +01:00
lms501kf03.c backlight: lms501kf03: Constify lcd_ops 2024-05-03 10:45:19 +01:00
locomolcd.c ARM: pxa: remove unused board files 2023-01-20 11:23:44 +01:00
lp855x_bl.c pwm: Rename pwm_apply_state() to pwm_apply_might_sleep() 2023-12-20 16:07:04 +01:00
lp8788_bl.c backlight: lp8788: Drop support for platform data 2024-05-10 15:44:28 +01:00
ltv350qv.c backlight: ltv350qv: Constify lcd_ops 2024-05-03 10:45:22 +01:00
ltv350qv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lv5207lp.c backlight: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-20 18:36:25 +01:00
Makefile backlight: Add new lm3509 backlight driver 2024-05-31 15:12:13 +01:00
max8925_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
mp3309c.c backlight: mp3309c: Use backlight power constants 2024-07-04 16:45:25 +01:00
mt6370-backlight.c backlight: mt6370-backlight: Convert to platform remove callback returning void 2023-03-16 15:08:36 +00:00
omap1_bl.c backlight: Remove fb_blank from struct backlight_properties 2024-03-28 10:16:26 +00:00
otm3225a.c backlight: otm3225a: Drop driver owner assignment 2024-05-10 15:44:29 +01:00
pandora_bl.c backlight: pandora-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
pcf50633-backlight.c backlight: pcf50633-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
platform_lcd.c backlight: Add missing MODULE_DESCRIPTION() macros 2024-06-13 18:19:48 +01:00
pwm_bl.c backlight: pwm-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
qcom-wled.c backlight: qcom-wled: Explicitly include correct DT includes 2023-07-28 10:01:28 +01:00
rave-sp-backlight.c backlight: rave-sp-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
rt4831-backlight.c backlight: Add missing MODULE_DESCRIPTION() macros 2024-06-13 18:19:48 +01:00
sky81452-backlight.c backlight: sky81452-backlight: Use backlight power constants 2024-07-04 16:45:25 +01:00
tdo24m.c backlight: tdo24m: Constify lcd_ops 2024-05-03 10:45:31 +01:00
tps65217_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
vgg2432a4.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
wm831x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00