HID: hiddev: use usb_find_interface, get rid of BKL
authorArnd Bergmann <arnd@arndb.de>
Sun, 11 Jul 2010 13:34:05 +0000 (15:34 +0200)
committerJiri Kosina <jkosina@suse.cz>
Tue, 13 Jul 2010 21:56:30 +0000 (23:56 +0200)
commitbd25f4dd6972755579d0ea50d1a5ace2e9b00d1a
tree0aec56e60352d198514f5af933bd0399d413ec35
parent1c5474a65bf15a4cb162dfff86d6d0b5a08a740c
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().

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: "Greg Kroah-Hartman" <gregkh@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/usbhid/hiddev.c