If we rmmod the musb host controller with gadgets configured, musb_gadget_stop() gets called. We need to also flush the delayed work. Fixes: 2bff3916fda9 ("usb: musb: Fix PM for hub disconnect") Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> --- drivers/usb/musb/musb_gadget.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c --- a/drivers/usb/musb/musb_gadget.c +++ b/drivers/usb/musb/musb_gadget.c @@ -1910,6 +1910,7 @@ static int musb_gadget_stop(struct usb_gadget *g) /* Force check of devctl register for PM runtime */ schedule_delayed_work(&musb->irq_work, 0); + flush_delayed_work(&musb->irq_work); pm_runtime_mark_last_busy(musb->controller); pm_runtime_put_autosuspend(musb->controller); -- 2.23.0