diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index d906df49c293fd..acb96455968576 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1196,6 +1196,11 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) #ifdef CONFIG_PM udev->reset_resume = 1; #endif + /* Don't set the change_bits when the device + * was powered off. + */ + if (test_bit(port1, hub->power_bits)) + set_bit(port1, hub->change_bits); } else { /* The power session is gone; tell hub_wq */