uas: Remove SCSI host before cleaning up in disconnect.
When a UAS device is disconnected, make sure to call scsi_remove_host()
before cleaning up any pending URBs.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index fd19ae8..0db05be 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -1093,14 +1093,15 @@
struct Scsi_Host *shost = usb_get_intfdata(intf);
struct uas_dev_info *devinfo = (void *)shost->hostdata[0];
+ scsi_remove_host(shost);
/* Clean up any pending commands and free streams */
uas_pre_reset(intf);
- scsi_remove_host(shost);
cleanup_srcu_struct(devinfo->srcu);
kfree(devinfo->srcu);
kfree(devinfo->anchors);
kfree(devinfo);
+ scsi_host_put(shost);
}
/*