HID: bigben: use spinlock to safely schedule workers
authorPietro Borrello <borrello@diag.uniroma1.it>
Sun, 12 Feb 2023 19:00:01 +0000 (19:00 +0000)
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>
Wed, 15 Feb 2023 17:18:48 +0000 (18:18 +0100)
commit76ca8da989c7d97a7f76c75d475fe95a584439d7
tree4e31fbde4f4424f3c2bb39c3fc1225b06e9b881b
parent27d2a2fd844ec7da70d19fabb482304fd1e0595b
HID: bigben: use spinlock to safely schedule workers

Use spinlocks to deal with workers introducing a wrapper
bigben_schedule_work(), and several spinlock checks.
Otherwise, bigben_set_led() may schedule bigben->worker after the
structure has been freed, causing a use-after-free.

Fixes: 4eb1b01de5b9 ("HID: hid-bigbenff: fix race condition for scheduled work during removal")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-3-7860c5763c38@diag.uniroma1.it
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
drivers/hid/hid-bigbenff.c