HID: usbkbd: synchronize LED URB submission
authorWillem Penninckx <willem.penninckx@cs.kuleuven.be>
Wed, 23 Nov 2011 10:25:34 +0000 (11:25 +0100)
committerJiri Kosina <jkosina@suse.cz>
Wed, 23 Nov 2011 11:30:25 +0000 (12:30 +0100)
usb_kbd_event() and usb_kbd_led() can be called concurrently, but they are not
synchronized. They both readwrite kbd->leds, and usb_kbd_event() originally just
checked the URB status field, while urb.h states that "It [status field] should
not be examined before the URB is returned to the completion handler."

To fix this unsynchronized behavior, this patch introduces a boolean
representing whether the URB is submitted, and a spinlock.

Signed-off-by: Willem Penninckx <willem.penninckx@cs.kuleuven.be>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

No differences found