Loading drivers/usb/core/hcd.c +3 −0 Original line number Diff line number Diff line Loading @@ -2967,6 +2967,9 @@ void usb_remove_hcd(struct usb_hcd *hcd) cancel_work_sync(&hcd->wakeup_work); #endif /* handle any pending hub events before XHCI stops */ usb_flush_hub_wq(); mutex_lock(&usb_bus_idr_lock); usb_disconnect(&rhdev); /* Sets rhdev to NULL */ mutex_unlock(&usb_bus_idr_lock); Loading drivers/usb/core/hub.c +6 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,12 @@ void usb_kick_hub_wq(struct usb_device *hdev) kick_hub_wq(hub); } void usb_flush_hub_wq(void) { flush_workqueue(hub_wq); } EXPORT_SYMBOL(usb_flush_hub_wq); /* * Let the USB core know that a USB 3.0 device has sent a Function Wake Device * Notification, which indicates it had initiated remote wakeup. Loading include/linux/usb/hcd.h +1 −1 Original line number Diff line number Diff line Loading @@ -497,7 +497,7 @@ extern void usb_hc_died(struct usb_hcd *hcd); extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd); extern void usb_wakeup_notification(struct usb_device *hdev, unsigned int portnum); extern void usb_flush_hub_wq(void); extern void usb_hcd_start_port_resume(struct usb_bus *bus, int portnum); extern void usb_hcd_end_port_resume(struct usb_bus *bus, int portnum); Loading Loading
drivers/usb/core/hcd.c +3 −0 Original line number Diff line number Diff line Loading @@ -2967,6 +2967,9 @@ void usb_remove_hcd(struct usb_hcd *hcd) cancel_work_sync(&hcd->wakeup_work); #endif /* handle any pending hub events before XHCI stops */ usb_flush_hub_wq(); mutex_lock(&usb_bus_idr_lock); usb_disconnect(&rhdev); /* Sets rhdev to NULL */ mutex_unlock(&usb_bus_idr_lock); Loading
drivers/usb/core/hub.c +6 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,12 @@ void usb_kick_hub_wq(struct usb_device *hdev) kick_hub_wq(hub); } void usb_flush_hub_wq(void) { flush_workqueue(hub_wq); } EXPORT_SYMBOL(usb_flush_hub_wq); /* * Let the USB core know that a USB 3.0 device has sent a Function Wake Device * Notification, which indicates it had initiated remote wakeup. Loading
include/linux/usb/hcd.h +1 −1 Original line number Diff line number Diff line Loading @@ -497,7 +497,7 @@ extern void usb_hc_died(struct usb_hcd *hcd); extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd); extern void usb_wakeup_notification(struct usb_device *hdev, unsigned int portnum); extern void usb_flush_hub_wq(void); extern void usb_hcd_start_port_resume(struct usb_bus *bus, int portnum); extern void usb_hcd_end_port_resume(struct usb_bus *bus, int portnum); Loading