Two main issues fixed here are: - An improper use of in-struct lock to protect an open count - Use of urb status for -EINPROGRESS Also, along the way: - Change usb_unlink_urb to usb_kill_urb. Apparently there's no need to use usb_unlink_urb whatsoever in this driver, and the old use of usb_kill_urb was outright racy (it unlinked and immediately freed). - Fix indentation in adu_write. Looks like it was damaged by a script. - Vitaly wants -EBUSY on multiply opens. - bInterval was taken from a wrong endpoint. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Vitaliy Ivanov <vitalivanov@gmail.com> Tested-by: Vitaliy Ivanov <vitalivanov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
||
---|---|---|
.. | ||
sisusbvga | ||
Kconfig | ||
Makefile | ||
adutux.c | ||
appledisplay.c | ||
auerswald.c | ||
berry_charge.c | ||
cypress_cy7c63.c | ||
cytherm.c | ||
emi26.c | ||
emi26_fw.h | ||
emi62.c | ||
emi62_fw_m.h | ||
emi62_fw_s.h | ||
ftdi-elan.c | ||
idmouse.c | ||
iowarrior.c | ||
ldusb.c | ||
legousbtower.c | ||
phidget.c | ||
phidget.h | ||
phidgetkit.c | ||
phidgetmotorcontrol.c | ||
phidgetservo.c | ||
rio500.c | ||
rio500_usb.h | ||
trancevibrator.c | ||
usb_u132.h | ||
usblcd.c | ||
usbled.c | ||
usbtest.c | ||
uss720.c |