HID: usbhid: check for suspend or reset before restarting
This patch (as1596) improves the queue-restart logic in usbhid by checking to see if the device is suspended or a reset is about to occur. There's no point submitting an URB if either of those is true. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> CC: Oliver Neukum <oliver@neukum.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
f2b5264d4f
commit
d4150c8f3d
|
@ -207,7 +207,8 @@ static int usbhid_restart_out_queue(struct usbhid_device *usbhid)
|
||||||
int kicked;
|
int kicked;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (!hid)
|
if (!hid || test_bit(HID_RESET_PENDING, &usbhid->iofl) ||
|
||||||
|
test_bit(HID_SUSPENDED, &usbhid->iofl))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((kicked = (usbhid->outhead != usbhid->outtail))) {
|
if ((kicked = (usbhid->outhead != usbhid->outtail))) {
|
||||||
|
@ -245,7 +246,8 @@ static int usbhid_restart_ctrl_queue(struct usbhid_device *usbhid)
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
WARN_ON(hid == NULL);
|
WARN_ON(hid == NULL);
|
||||||
if (!hid)
|
if (!hid || test_bit(HID_RESET_PENDING, &usbhid->iofl) ||
|
||||||
|
test_bit(HID_SUSPENDED, &usbhid->iofl))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((kicked = (usbhid->ctrlhead != usbhid->ctrltail))) {
|
if ((kicked = (usbhid->ctrlhead != usbhid->ctrltail))) {
|
||||||
|
|
Loading…
Reference in a new issue