|
@@ -4798,7 +4798,8 @@ static void hub_events(void)
|
|
|
hub->ports[i - 1]->child;
|
|
|
|
|
|
dev_dbg(hub_dev, "warm reset port %d\n", i);
|
|
|
- if (!udev) {
|
|
|
+ if (!udev || !(portstatus &
|
|
|
+ USB_PORT_STAT_CONNECTION)) {
|
|
|
status = hub_port_reset(hub, i,
|
|
|
NULL, HUB_BH_RESET_TIME,
|
|
|
true);
|
|
@@ -4808,8 +4809,8 @@ static void hub_events(void)
|
|
|
usb_lock_device(udev);
|
|
|
status = usb_reset_device(udev);
|
|
|
usb_unlock_device(udev);
|
|
|
+ connect_change = 0;
|
|
|
}
|
|
|
- connect_change = 0;
|
|
|
}
|
|
|
|
|
|
if (connect_change)
|