Przeglądaj źródła

HID: core: cleanup .claimed field on disconnect

When a subdriver is rmmod-ed then re-insmod-ed, the hid device is not
destroyed as it is owned by the transport layer.
So when we re-probed the device, the hid device is assumed to be already
claimed, and can lead to page faults if hid-core tries to forward the
emitted data to the to-be-created claimed node.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Benjamin Tissoires 10 lat temu
rodzic
commit
9c5c6ed7b5
1 zmienionych plików z 1 dodań i 0 usunięć
  1. 1 0
      drivers/hid/hid-core.c

+ 1 - 0
drivers/hid/hid-core.c

@@ -1659,6 +1659,7 @@ void hid_disconnect(struct hid_device *hdev)
 		hdev->hiddev_disconnect(hdev);
 		hdev->hiddev_disconnect(hdev);
 	if (hdev->claimed & HID_CLAIMED_HIDRAW)
 	if (hdev->claimed & HID_CLAIMED_HIDRAW)
 		hidraw_disconnect(hdev);
 		hidraw_disconnect(hdev);
+	hdev->claimed = 0;
 }
 }
 EXPORT_SYMBOL_GPL(hid_disconnect);
 EXPORT_SYMBOL_GPL(hid_disconnect);