]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: hid-steam: Make sure rumble work is canceled on removal
authorVicki Pfau <vi@endrift.com>
Thu, 26 Dec 2024 02:34:24 +0000 (18:34 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Feb 2025 13:01:42 +0000 (14:01 +0100)
[ Upstream commit cc4f952427aaa44ecfd92542e10a65cce67bd6f4 ]

When a force feedback command is sent from userspace, work is scheduled to pass
this data to the controller without blocking userspace itself. However, in
theory, this work might not be properly canceled if the controller is removed
at the exact right time. This patch ensures the work is properly canceled when
the device is removed.

Signed-off-by: Vicki Pfau <vi@endrift.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Stable-dep-of: 79504249d7e2 ("HID: hid-steam: Move hidraw input (un)registering to work")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/hid-steam.c

index 9b6aec0733ae6a896fc3f543c6f3e1cbc82316be..daca250e51c8b630e8ea272599da41818ef61176 100644 (file)
@@ -1306,6 +1306,7 @@ static void steam_remove(struct hid_device *hdev)
 
        cancel_delayed_work_sync(&steam->mode_switch);
        cancel_work_sync(&steam->work_connect);
+       cancel_work_sync(&steam->rumble_work);
        hid_destroy_device(steam->client_hdev);
        steam->client_hdev = NULL;
        steam->client_opened = 0;