diff options
Diffstat (limited to 'drivers/usb/core/hub.c')
| -rw-r--r-- | drivers/usb/core/hub.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index a7c04e24ca4..bd9dc3504b5 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -4832,8 +4832,9 @@ static void hub_events(void)  					hub->ports[i - 1]->child;  				dev_dbg(hub_dev, "warm reset port %d\n", i); -				if (!udev || !(portstatus & -						USB_PORT_STAT_CONNECTION)) { +				if (!udev || +				    !(portstatus & USB_PORT_STAT_CONNECTION) || +				    udev->state == USB_STATE_NOTATTACHED) {  					status = hub_port_reset(hub, i,  							NULL, HUB_BH_RESET_TIME,  							true);  | 
