summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorVicki Pfau <vi@endrift.com>2024-12-25 18:34:24 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-02-21 14:01:42 +0100
commit2152b417be1652fe5ce590fd08ae9be8f0acd220 (patch)
treefaa2962bbf25de0396f788f0e0dcb7d6b872410e /drivers
parent653bb5225cd4175d4e9f67b14823f4de9fad735e (diff)
downloadlinux-2152b417be1652fe5ce590fd08ae9be8f0acd220.tar.gz
linux-2152b417be1652fe5ce590fd08ae9be8f0acd220.tar.bz2
linux-2152b417be1652fe5ce590fd08ae9be8f0acd220.zip
HID: hid-steam: Make sure rumble work is canceled on removal
[ 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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hid/hid-steam.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c
index 9b6aec0733ae..daca250e51c8 100644
--- a/drivers/hid/hid-steam.c
+++ b/drivers/hid/hid-steam.c
@@ -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;