drivers/video/backlight/led_bl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
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: ae232e45acf9 ("backlight: add led-backlight driver")
Cc: stable@vger.kernel.org
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
drivers/video/backlight/led_bl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/video/backlight/led_bl.c b/drivers/video/backlight/led_bl.c
index ae34d1ecbfbe..d2db157b2c29 100644
--- a/drivers/video/backlight/led_bl.c
+++ b/drivers/video/backlight/led_bl.c
@@ -229,8 +229,11 @@ static void led_bl_remove(struct platform_device *pdev)
backlight_device_unregister(bl);
led_bl_power_off(priv);
- for (i = 0; i < priv->nb_leds; i++)
+ for (i = 0; i < priv->nb_leds; i++) {
+ mutex_lock(&priv->leds[i]->led_access);
led_sysfs_enable(priv->leds[i]);
+ mutex_unlock(&priv->leds[i]->led_access);
+ }
}
static const struct of_device_id led_bl_of_match[] = {
--
2.47.1
On Wed, 22 Jan 2025 10:19:14 +0100, Herve Codina wrote:
> 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
> ...
>
> [...]
Applied, thanks!
[1/1] backlight: led_bl: Hold led_access lock when calling led_sysfs_disable()
commit: 276822a00db3c1061382b41e72cafc09d6a0ec30
--
Lee Jones [李琼斯]
Hi Lee, Daniel, Jingoo,
On Wed, 22 Jan 2025 10:19:14 +0100
Herve Codina <herve.codina@bootlin.com> wrote:
> 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: ae232e45acf9 ("backlight: add led-backlight driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
I didn't receive any feedback.
v6.14-rc1 has been released since the patch was sent but the patch applies on
top of v6.14-rc1 without any issue.
Of course if really needed, I can resend the patch. Just tell me.
Best regards,
Hervé
© 2016 - 2025 Red Hat, Inc.