aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/core/driver.c3
-rw-r--r--drivers/usb/core/hub.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index e935be7eb468..3d7793d93031 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -1610,7 +1610,8 @@ int usb_external_resume_device(struct usb_device *udev)
1610 status = usb_resume_both(udev); 1610 status = usb_resume_both(udev);
1611 udev->last_busy = jiffies; 1611 udev->last_busy = jiffies;
1612 usb_pm_unlock(udev); 1612 usb_pm_unlock(udev);
1613 do_unbind_rebind(udev, DO_REBIND); 1613 if (status == 0)
1614 do_unbind_rebind(udev, DO_REBIND);
1614 1615
1615 /* Now that the device is awake, we can start trying to autosuspend 1616 /* Now that the device is awake, we can start trying to autosuspend
1616 * it again. */ 1617 * it again. */
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index d73ce262c365..9b3f16bd12cb 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -3504,7 +3504,7 @@ int usb_reset_device(struct usb_device *udev)
3504 USB_INTERFACE_BOUND) 3504 USB_INTERFACE_BOUND)
3505 rebind = 1; 3505 rebind = 1;
3506 } 3506 }
3507 if (rebind) 3507 if (ret == 0 && rebind)
3508 usb_rebind_intf(cintf); 3508 usb_rebind_intf(cintf);
3509 } 3509 }
3510 } 3510 }