diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2018-03-14 18:30:24 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2018-03-14 18:30:24 +0000 |
commit | 01079df6c29b6777b8f291c951a956aaad714248 (patch) | |
tree | b2b3534c2e32dcf859c29c4908895c178b4478ef /freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch | |
parent | ae38bc31bb343ce073aa9775032033d7a473db2a (diff) | |
download | linux-libre-raptor-01079df6c29b6777b8f291c951a956aaad714248.tar.gz linux-libre-raptor-01079df6c29b6777b8f291c951a956aaad714248.zip |
tag 4.15.9-300.fc27.gnu
Diffstat (limited to 'freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch')
-rw-r--r-- | freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch b/freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch new file mode 100644 index 000000000..d6a8e6a52 --- /dev/null +++ b/freed-ora/tags/f27/4.15.9-300.fc27.gnu/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch @@ -0,0 +1,54 @@ +From ef14a4bf0910d06c7e202552914028d4956809cb Mon Sep 17 00:00:00 2001 +From: Andrew Duggan <aduggan@synaptics.com> +Date: Tue, 17 Oct 2017 18:37:36 -0700 +Subject: [PATCH] HID: rmi: Check that a device is a RMI device before calling + RMI functions + +The hid-rmi driver may handle non rmi devices on composite USB devices. +Callbacks need to make sure that the current device is a RMI device before +calling RMI specific functions. Most callbacks already have this check, but +this patch adds checks to the remaining callbacks. + +Reported-by: Hendrik Langer <hendrik.langer@gmx.de> +Tested-by: Hendrik Langer <hendrik.langer@gmx.de> +Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> +Signed-off-by: Andrew Duggan <aduggan@synaptics.com> +Signed-off-by: Jiri Kosina <jkosina@suse.cz> +--- + drivers/hid/hid-rmi.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index ef241d66562e..0f43c4292685 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size) + static int rmi_raw_event(struct hid_device *hdev, + struct hid_report *report, u8 *data, int size) + { ++ struct rmi_data *hdata = hid_get_drvdata(hdev); ++ ++ if (!(hdata->device_flags & RMI_DEVICE)) ++ return 0; ++ + size = rmi_check_sanity(hdev, data, size); + if (size < 2) + return 0; +@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev) + { + struct rmi_data *hdata = hid_get_drvdata(hdev); + +- clear_bit(RMI_STARTED, &hdata->flags); +- cancel_work_sync(&hdata->reset_work); +- rmi_unregister_transport_device(&hdata->xport); ++ if (hdata->device_flags & RMI_DEVICE) { ++ clear_bit(RMI_STARTED, &hdata->flags); ++ cancel_work_sync(&hdata->reset_work); ++ rmi_unregister_transport_device(&hdata->xport); ++ } + + hid_hw_stop(hdev); + } +-- +2.14.3 + |