On Thu, Jan 23, 2020 at 08:02:02AM +0100, Oliver Neukum wrote: > Am Dienstag, den 21.01.2020, 23:43 -0800 schrieb EJ Hsu: > > When a uas disk is plugged into an external hub, uas_probe() > > will be called by the hub thread to do the probe. It will > > first create a SCSI host and then do the scan for this host. > > During the scan, it will probe the LUN using SCSI INQUERY command > > which will be packed in the URB and submitted to uas disk. > > > > There might be a chance that this external hub with uas disk > > attached is unplugged during the scan. In this case, uas driver > > will fail to submit the URB (due to the NOTATTACHED state of uas > > device) and try to put this SCSI command back to request queue > > waiting for next chance to run. > > > > In normal case, this cycle will terminate when hub thread gets > > disconnection event and calls into uas_disconnect() accordingly. > > But in this case, uas_disconnect() will not be called because > > hub thread of external hub gets stuck waiting for the completion > > of this SCSI command. A deadlock happened. > > > > In this fix, uas will call scsi_scan_host() asynchronously to > > avoid the blocking of hub thread. > > > > Signed-off-by: EJ Hsu <ejh@xxxxxxxxxx> > Acked-by: Oliver Neukum <oneukum@xxxxxxxx> EJ can you resend this with Oliver's ack as I lost the original patch in my archives now as it was so long ago... thanks, greg k-h