Re: error handing for usb3.0 devices

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

 



On Sun, Apr 13, 2014 at 03:43:47PM +0800, vichy wrote:
> hi all:
> When I plug in usb3.0 device for stressing test, once
> usb_get_device_descriptor fail in hub_port_init.
> we will call hub_port_disable(hub, port1, 0);
> 
> And usb3.0 device may not recover successfully only with below function
>     retval = hub_port_reset(hub, port1, udev, delay, false);
> when we try to save back the device.
> 
> in hub_port_connect_change
>     -->     for (i = 0; i < SET_CONFIG_TRIES; i++) {
>              --> hub_port_init
>                   --> hub_port_reset(hub, port1, udev, delay, false);
>                   --> usb_get_device_descriptor
>                    (fail) -->  hub_port_disable(hub, port1, 0);
> 
> ( I list rough function calls flow like above)
> 
> For covering this error handling, shall we add patch like below?
> 
> diff --git drivers/usb/core/hub.c b/linux-3.8.2/drivers/usb/core/hub.c
> index 64af693..599de96 100644
> --- a/linux-3.8.2/drivers/usb/core/hub.c
> +++ b/linux-3.8.2/drivers/usb/core/hub.c
> @@ -4451,6 +4453,10 @@ static int hub_port_reset(struct usb_hub *hub, int port1,
>         if (retval) {
>                 hub_port_disable(hub, port1, 0);
>                 update_devnum(udev, devnum);    /* for disconnect processing */
> +               if(udev->speed == USB_SPEED_SUPER)
> +                       hub_port_reset(hub, port1, udev,
> +                               HUB_BH_RESET_TIME, true);
>         }
>         mutex_unlock(&usb_address0_mutex);
>         return retval;
> 
> 

Allways run your patches through checkpatch.pl so someone doesn't point
out the formatting issues in it when you send it to the mailing list :)

--
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