aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/storage/uas.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2018-02-28 12:01:09 +0800
committerAlex Shi <alex.shi@linaro.org>2018-02-28 12:01:09 +0800
commit6e49b7fa3083c30688b7fff1b37ed891cd1c30af (patch)
tree3054864f2e58bcd86000567ce99e25753ddc794a /drivers/usb/storage/uas.c
parent2ba51c6d36ee1b43c1f898c6c48ddf3d33e9ab30 (diff)
parentbe42cd02846a611af533103a3f4b6a7d8c592f49 (diff)
Merge remote-tracking branch 'rt-stable/v4.9-rt' into linux-linaro-lsk-v4.9-rtlsk-v4.9-18.03-rt
Diffstat (limited to 'drivers/usb/storage/uas.c')
-rw-r--r--drivers/usb/storage/uas.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index 9876af4ab64e..6891e9092775 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -1076,20 +1076,19 @@ static int uas_post_reset(struct usb_interface *intf)
return 0;
err = uas_configure_endpoints(devinfo);
- if (err) {
+ if (err && err != ENODEV)
shost_printk(KERN_ERR, shost,
"%s: alloc streams error %d after reset",
__func__, err);
- return 1;
- }
+ /* we must unblock the host in every case lest we deadlock */
spin_lock_irqsave(shost->host_lock, flags);
scsi_report_bus_reset(shost, 0);
spin_unlock_irqrestore(shost->host_lock, flags);
scsi_unblock_requests(shost);
- return 0;
+ return err ? 1 : 0;
}
static int uas_suspend(struct usb_interface *intf, pm_message_t message)