Re: [PATCH v2] usb: uas: fix a plug & unplug racing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux