diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 7dea1fdde11e..a58d73fedafa 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -777,6 +777,12 @@ static void xhci_shutdown(struct usb_hcd *hcd) if (!hcd->rh_registered) return; + /* Don't poll the roothubs on shutdown */ + clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); + del_timer_sync(&hcd->rh_timer); + clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags); + del_timer_sync(&xhci->shared_hcd->rh_timer); + if (xhci->quirks & XHCI_SPURIOUS_REBOOT) usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev));