Message ID | 20250122091914.309533-1-herve.codina@bootlin.com |
---|---|
State | New |
Headers | show |
Series | backlight: led_bl: Hold led_access lock when calling led_sysfs_disable() | expand |
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é
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 [李琼斯]
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[] = {
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(-)