linux/drivers/usb/dwc3
Prashanth K 2333653ef8 usb: dwc3: gadget: Move vbus draw to workqueue context
[ Upstream commit 54aaa3b387 ]

Currently dwc3_gadget_vbus_draw() can be called from atomic
context, which in turn invokes power-supply-core APIs. And
some these PMIC APIs have operations that may sleep, leading
to kernel panic.

Fix this by moving the vbus_draw into a workqueue context.

Fixes: 99288de360 ("usb: dwc3: add an alternate path in vbus_draw callback")
Cc: stable <stable@kernel.org>
Tested-by: Samuel Wu <wusamuel@google.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Prashanth K <prashanth.k@oss.qualcomm.com>
Link: https://patch.msgid.link/20260204054155.3063825-1-prashanth.k@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-03-04 07:21:23 -05:00
..
core.c usb: dwc3: gadget: Move vbus draw to workqueue context 2026-03-04 07:21:23 -05:00
core.h usb: dwc3: gadget: Move vbus draw to workqueue context 2026-03-04 07:21:23 -05:00
debug.h usb: dwc3: Add trace event for dwc3_set_prtcap 2025-09-06 15:21:59 +02:00
debugfs.c usb: dwc3: Refactor dwc3_mode_show 2025-09-06 15:21:59 +02:00
drd.c usb: dwc3: core: Introduce glue callbacks for flattened implementations 2025-09-12 14:04:20 +02:00
dwc3-am62.c USB: dwc3: Use syscon_regmap_lookup_by_phandle_args 2025-02-14 09:29:32 +01:00
dwc3-exynos.c usb: dwc3-exynos: add support for ExynosAutov920 2025-05-21 13:12:43 +02:00
dwc3-generic-plat.c usb: dwc3: Don't call clk_bulk_disable_unprepare() twice 2025-10-13 09:37:10 +02:00
dwc3-haps.c usb: dwc3: haps: Constify the software node 2021-02-04 15:42:06 +01:00
dwc3-imx8mp.c usb: dwc3: imx8mp: fix device leak at unbind 2025-07-25 10:50:43 +02:00
dwc3-keystone.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-meson-g12a.c usb: dwc3: meson-g12a: fix device leaks at unbind 2025-07-25 10:50:43 +02:00
dwc3-octeon.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-of-simple.c usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe 2026-01-02 12:57:14 +01:00
dwc3-omap.c usb: dwc3: omap: Fix devm_regulator_get_optional() error handling 2025-01-11 17:02:30 +01:00
dwc3-pci.c usb: dwc3: pci: Sort out the Intel device IDs 2025-11-09 10:56:57 +09:00
dwc3-qcom-legacy.c usb: dwc3: qcom: Snapshot driver for backwards compatibilty 2025-04-15 14:29:19 +02:00
dwc3-qcom.c usb: dwc3: qcom: Implement glue callbacks to facilitate runtime suspend 2025-09-12 14:04:20 +02:00
dwc3-rtk.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-st.c usb: dwc3: Don't use %pK through printk 2025-03-14 09:17:30 +01:00
dwc3-xilinx.c usb: dwc3: xilinx: set coherency mode for AMD versal adaptive platform 2025-06-19 12:25:50 +02:00
ep0.c usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths 2025-11-21 15:15:48 +01:00
gadget.c usb: dwc3: gadget: Move vbus draw to workqueue context 2026-03-04 07:21:23 -05:00
gadget.h Merge 6.8-rc5 into usb-next 2024-02-19 09:13:29 +01:00
glue.h usb: dwc3: core: Don't touch resets and clocks 2025-04-15 14:29:19 +02:00
host.c usb: dwc3: keep susphy enabled during exit to avoid controller faults 2026-01-02 12:57:14 +01:00
io.h usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
Kconfig usb: dwc3: add generic driver to support flattened 2025-09-17 12:38:34 +02:00
Makefile usb: dwc3: add generic driver to support flattened 2025-09-17 12:38:34 +02:00
trace.c usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
trace.h usb: dwc3: Add trace event for dwc3_set_prtcap 2025-09-06 15:21:59 +02:00
ulpi.c usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression 2020-12-28 15:55:44 +01:00