diff options
Diffstat (limited to 'drivers/usb/core/hub.c')
-rw-r--r-- | drivers/usb/core/hub.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index d37ad083d5ef..f4ef7c25096e 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -1539,9 +1539,9 @@ static int hub_port_wait_reset(struct usb_hub *hub, int port1, | |||
1539 | if (!(portstatus & USB_PORT_STAT_CONNECTION)) | 1539 | if (!(portstatus & USB_PORT_STAT_CONNECTION)) |
1540 | return -ENOTCONN; | 1540 | return -ENOTCONN; |
1541 | 1541 | ||
1542 | /* bomb out completely if something weird happened */ | 1542 | /* bomb out completely if the connection bounced */ |
1543 | if ((portchange & USB_PORT_STAT_C_CONNECTION)) | 1543 | if ((portchange & USB_PORT_STAT_C_CONNECTION)) |
1544 | return -EINVAL; | 1544 | return -ENOTCONN; |
1545 | 1545 | ||
1546 | /* if we`ve finished resetting, then break out of the loop */ | 1546 | /* if we`ve finished resetting, then break out of the loop */ |
1547 | if (!(portstatus & USB_PORT_STAT_RESET) && | 1547 | if (!(portstatus & USB_PORT_STAT_RESET) && |
@@ -2974,7 +2974,7 @@ int usb_reset_device(struct usb_device *udev) | |||
2974 | * Other endpoints will be handled by re-enumeration. */ | 2974 | * Other endpoints will be handled by re-enumeration. */ |
2975 | ep0_reinit(udev); | 2975 | ep0_reinit(udev); |
2976 | ret = hub_port_init(parent_hub, udev, port1, i); | 2976 | ret = hub_port_init(parent_hub, udev, port1, i); |
2977 | if (ret >= 0) | 2977 | if (ret >= 0 || ret == -ENOTCONN || ret == -ENODEV) |
2978 | break; | 2978 | break; |
2979 | } | 2979 | } |
2980 | clear_bit(port1, parent_hub->busy_bits); | 2980 | clear_bit(port1, parent_hub->busy_bits); |