diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/usb/core/hub.c | 13 | 
1 files changed, 5 insertions, 8 deletions
| diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 7f8f10ec127e..3bc50fc110eb 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -2565,14 +2565,11 @@ static void hub_port_finish_reset(struct usb_hub *hub, int port1,  			msleep(10 + 40);  			update_devnum(udev, 0);  			hcd = bus_to_hcd(udev->bus); -			if (hcd->driver->reset_device) { -				*status = hcd->driver->reset_device(hcd, udev); -				if (*status < 0) { -					dev_err(&udev->dev, "Cannot reset " -							"HCD device state\n"); -					break; -				} -			} +			/* The xHC may think the device is already reset, +			 * so ignore the status. +			 */ +			if (hcd->driver->reset_device) +				hcd->driver->reset_device(hcd, udev);  		}  		/* FALL THROUGH */  	case -ENOTCONN: | 
