I identified the faulty commit (using a git bisect):
bd25f4dd6972755579d0ea50d1a5ace2e9b00d1a is the first bad commit
commit bd25f4dd6972755579d0ea50d1a5ace2e9b00d1a
Author: Arnd Bergmann <email address hidden>
Date: Sun Jul 11 15:34:05 2010 +0200
HID: hiddev: use usb_find_interface, get rid of BKL
This removes the private hiddev_table in the usbhid
driver and changes it to use usb_find_interface
instead.
The advantage is that we can avoid the race between
usb_register_dev and usb_open and no longer need the
big kernel lock.
This doesn't introduce race condition -- the intf pointer could be
invalidated only in hiddev_disconnect() through usb_deregister_dev(),
but that will block on minor_rwsem and not actually remove the device
until usb_open().
I identified the faulty commit (using a git bisect):
bd25f4dd6972755 579d0ea50d1a5ac e2e9b00d1a is the first bad commit 579d0ea50d1a5ac e2e9b00d1a
commit bd25f4dd6972755
Author: Arnd Bergmann <email address hidden>
Date: Sun Jul 11 15:34:05 2010 +0200
HID: hiddev: use usb_find_interface, get rid of BKL
This removes the private hiddev_table in the usbhid
driver and changes it to use usb_find_interface
instead.
The advantage is that we can avoid the race between register_ dev and usb_open and no longer need the
usb_
big kernel lock.
This doesn't introduce race condition -- the intf pointer could be dev(),
invalidated only in hiddev_disconnect() through usb_deregister_
but that will block on minor_rwsem and not actually remove the device
until usb_open().
Signed-off-by: Arnd Bergmann <email address hidden>
Cc: Jiri Kosina <email address hidden>
Cc: "Greg Kroah-Hartman" <email address hidden>
Signed-off-by: Jiri Kosina <email address hidden>
:040000 040000 4ae14b3ba486373 d7a354874e9ad33 4858f094e3 0a6b60d64235ae1 79f8186bf0 M drivers
8041ffda20ca302
Further details in the referenced upstream bug report.