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