]> git.baikalelectronics.ru Git - kernel.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:33:23 +0000 (09:33 +0100)
commit095732af1e76389af00b0b6304e544151b6aac08
tree66675aff3734aa5cec51795f538f6eec9f8542cd
parent455f768918a06875e0aa6b41b6ef3dd9e401b870
HID: bigben: use spinlock to safely schedule workers

[ Upstream commit 8efd2bee1d336b5ee5cc621047d40a61a3884e8c ]

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: 24c463dcd9f5 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/hid-bigbenff.c