usb: gadget: core: flush gadget workqueue after device removal
[ Upstream commit 399a45e5 ] device_del() can lead to new work being scheduled in gadget->work workqueue. This is observed, for example, with the dwc3 driver with the following call stack: device_del() gadget_unbind_driver() usb_gadget_disconnect_locked() dwc3_gadget_pullup() dwc3_gadget_soft_disconnect() usb_gadget_set_state() schedule_work(&gadget->work) Move flush_work() after device_del() to ensure the workqueue is cleaned up. Fixes: 5702f753 ("usb: gadget: udc-core: move sysfs_notify() to a workqueue") Cc: stable <stable@kernel.org> Signed-off-by:Roy Luo <royluo@google.com> Reviewed-by:
Alan Stern <stern@rowland.harvard.edu> Reviewed-by:
Thinh Nguyen <Thinh.Nguyen@synopsys.com> Link: https://lore.kernel.org/r/20250204233642.666991-1-royluo@google.com Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by:
Sasha Levin <sashal@kernel.org>
Loading
-
mentioned in commit de3fe451
-
mentioned in commit 7d479179
-
mentioned in commit clo/le/platform/mhi-host@d555ebb4
-
mentioned in commit clo/femto5g/kernel/msm-4.14@d555ebb4
Please register or sign in to comment