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 4a8a1d68002c..558313de4911 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
| @@ -4798,7 +4798,8 @@ static void hub_events(void) | |||
| 4798 | hub->ports[i - 1]->child; | 4798 | hub->ports[i - 1]->child; |
| 4799 | 4799 | ||
| 4800 | dev_dbg(hub_dev, "warm reset port %d\n", i); | 4800 | dev_dbg(hub_dev, "warm reset port %d\n", i); |
| 4801 | if (!udev) { | 4801 | if (!udev || !(portstatus & |
| 4802 | USB_PORT_STAT_CONNECTION)) { | ||
| 4802 | status = hub_port_reset(hub, i, | 4803 | status = hub_port_reset(hub, i, |
| 4803 | NULL, HUB_BH_RESET_TIME, | 4804 | NULL, HUB_BH_RESET_TIME, |
| 4804 | true); | 4805 | true); |
| @@ -4808,8 +4809,8 @@ static void hub_events(void) | |||
| 4808 | usb_lock_device(udev); | 4809 | usb_lock_device(udev); |
| 4809 | status = usb_reset_device(udev); | 4810 | status = usb_reset_device(udev); |
| 4810 | usb_unlock_device(udev); | 4811 | usb_unlock_device(udev); |
| 4812 | connect_change = 0; | ||
| 4811 | } | 4813 | } |
| 4812 | connect_change = 0; | ||
| 4813 | } | 4814 | } |
| 4814 | 4815 | ||
| 4815 | if (connect_change) | 4816 | if (connect_change) |
