Re: [PATCH] uas: fix error handling during scsi_scan()

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

 



Hi,

On 03/28/2014 11:29 AM, oliver@xxxxxxxxxx wrote:
> From: Oliver Neukum <oneukum@xxxxxxx>
> 
> intfdata is set only after scsi_scan(). uas_pre_reset() however
> needs intfdata to be valid and will follow the NULL pointer
> killing khubd. intfdata must be preemptively set before the
> host is registered and undone in the error case.
> 
> Signed-off-by: Oliver Neukum <oliver@xxxxxxxxxx>

Good catch, thanks:

Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Acked-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Regards,

Hans


> ---
>  drivers/usb/storage/uas.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
> index b2bd8ea..511b229 100644
> --- a/drivers/usb/storage/uas.c
> +++ b/drivers/usb/storage/uas.c
> @@ -1096,16 +1096,17 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
>  	if (result)
>  		goto free_streams;
>  
> +	usb_set_intfdata(intf, shost);
>  	result = scsi_add_host(shost, &intf->dev);
>  	if (result)
>  		goto free_streams;
>  
>  	scsi_scan_host(shost);
> -	usb_set_intfdata(intf, shost);
>  	return result;
>  
>  free_streams:
>  	uas_free_streams(devinfo);
> +	usb_set_intfdata(intf, NULL);
>  set_alt0:
>  	usb_set_interface(udev, intf->altsetting[0].desc.bInterfaceNumber, 0);
>  	if (shost)
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux