diff options
Diffstat (limited to 'drivers/usb/core/hub.c')
| -rw-r--r-- | drivers/usb/core/hub.c | 15 | 
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 94789be54ca..512d2d57d41 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -713,18 +713,11 @@ static void hub_restart(struct usb_hub *hub, int type)  		}  		/* Was the power session lost while we were suspended? */ -		switch (type) { -		case HUB_RESET_RESUME: -			portstatus = 0; -			portchange = USB_PORT_STAT_C_CONNECTION; -			break; +		status = hub_port_status(hub, port1, &portstatus, &portchange); -		case HUB_RESET: -		case HUB_RESUME: -			status = hub_port_status(hub, port1, -					&portstatus, &portchange); -			break; -		} +		/* If the device is gone, khubd will handle it later */ +		if (status == 0 && !(portstatus & USB_PORT_STAT_CONNECTION)) +			continue;  		/* For "USB_PERSIST"-enabled children we must  		 * mark the child device for reset-resume and  | 
