diff options
Diffstat (limited to 'drivers/usb/misc/usbtest.c')
-rw-r--r-- | drivers/usb/misc/usbtest.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c index 6b978f04b8d7..5c8210dc6fd9 100644 --- a/drivers/usb/misc/usbtest.c +++ b/drivers/usb/misc/usbtest.c | |||
@@ -585,7 +585,6 @@ static void sg_timeout(unsigned long _req) | |||
585 | { | 585 | { |
586 | struct usb_sg_request *req = (struct usb_sg_request *) _req; | 586 | struct usb_sg_request *req = (struct usb_sg_request *) _req; |
587 | 587 | ||
588 | req->status = -ETIMEDOUT; | ||
589 | usb_sg_cancel(req); | 588 | usb_sg_cancel(req); |
590 | } | 589 | } |
591 | 590 | ||
@@ -616,8 +615,10 @@ static int perform_sglist( | |||
616 | mod_timer(&sg_timer, jiffies + | 615 | mod_timer(&sg_timer, jiffies + |
617 | msecs_to_jiffies(SIMPLE_IO_TIMEOUT)); | 616 | msecs_to_jiffies(SIMPLE_IO_TIMEOUT)); |
618 | usb_sg_wait(req); | 617 | usb_sg_wait(req); |
619 | del_timer_sync(&sg_timer); | 618 | if (!del_timer_sync(&sg_timer)) |
620 | retval = req->status; | 619 | retval = -ETIMEDOUT; |
620 | else | ||
621 | retval = req->status; | ||
621 | 622 | ||
622 | /* FIXME check resulting data pattern */ | 623 | /* FIXME check resulting data pattern */ |
623 | 624 | ||
@@ -2602,7 +2603,7 @@ usbtest_ioctl(struct usb_interface *intf, unsigned int code, void *buf) | |||
2602 | ktime_get_ts64(&start); | 2603 | ktime_get_ts64(&start); |
2603 | 2604 | ||
2604 | retval = usbtest_do_ioctl(intf, param_32); | 2605 | retval = usbtest_do_ioctl(intf, param_32); |
2605 | if (retval) | 2606 | if (retval < 0) |
2606 | goto free_mutex; | 2607 | goto free_mutex; |
2607 | 2608 | ||
2608 | ktime_get_ts64(&end); | 2609 | ktime_get_ts64(&end); |