]> www.infradead.org Git - users/jedix/linux-maple.git/commit
leds: rgb: leds-ktd202x: Initialize mutex earlier
authorHans de Goede <hdegoede@redhat.com>
Fri, 31 May 2024 11:41:21 +0000 (13:41 +0200)
committerLee Jones <lee@kernel.org>
Fri, 31 May 2024 11:57:34 +0000 (12:57 +0100)
commite1b08c6f5b92d408a9fcc1030a340caeb9852250
treefc6d15c9f00022e21dc3461f1570edb0d8f6e3b3
parent75bd07aef47e1a984229e6ec702e8b9aee0226e4
leds: rgb: leds-ktd202x: Initialize mutex earlier

The mutex must be initialized before the LED class device is registered
otherwise there is a race where it may get used before it is initialized:

 DEBUG_LOCKS_WARN_ON(lock->magic != lock)
 WARNING: CPU: 2 PID: 2045 at kernel/locking/mutex.c:587 __mutex_lock
 ...
 RIP: 0010:__mutex_lock+0x7db/0xc10
 ...
 set_brightness_delayed_set_brightness.part.0+0x17/0x60
 set_brightness_delayed+0xf1/0x100
 process_one_work+0x222/0x5a0

Move the mutex_init() call earlier to avoid this race condition and
switch to devm_mutex_init() to avoid the need to add error-exit
cleanup to probe() if probe() fails later on.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Link: https://lore.kernel.org/r/20240531114124.45346-4-hdegoede@redhat.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/rgb/leds-ktd202x.c