Re: [PATCH] usb: uas: unconditionally bring back host after reset

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

 



On Thu, Jan 11, 2018 at 11:59:54AM +0100, Oliver Neukum wrote:
> Quoting Hans:
> 
> If we return 1 from our post_reset handler, then our disconnect handler
> will be called immediately afterwards. Since pre_reset blocks all scsi
> requests our disconnect handler will then hang in the scsi_remove_host
> call.
> 
> This is esp. bad because our disconnect handler hanging for ever also
> stops the USB subsys from enumerating any new USB devices, causes commands
> like lsusb to hang, etc.
> 
> In practice this happens when unplugging some uas devices because the hub
> code may see the device as needing a warm-reset and calls usb_reset_device
> before seeing the disconnect. In this case uas_configure_endpoints fails
> with -ENODEV. We do not want to print an error for this, so this commit
> also silences the shost_printk for -ENODEV.
> 
> ENDQUOTE
> 
> However, if we do that we better drop any unconditional execution
> and report to the SCSI subsystem that we have undergone a reset
> but we are not operational now.
> 
> Signed-off-by: Oliver Neukum <oneukum@xxxxxxxx>
> Reported-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> CC: stable@xxxxxxxxxxxxxxx
> ---
>  Makefile                  | 2 +-

I don't think you want me to patch this file :)




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]