]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: dwc3: gadget: Move vbus draw to workqueue context
authorPrashanth K <prashanth.k@oss.qualcomm.com>
Wed, 4 Feb 2026 05:41:55 +0000 (11:11 +0530)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:21:23 +0000 (07:21 -0500)
commit2333653ef854c2cc124077f71a8526f03bf6e06a
treec8504a4fabb0b668b80b78b10360555c0008396b
parent76096f156fe9dc9fbd6e4618088706e91b9b0a6c
usb: dwc3: gadget: Move vbus draw to workqueue context

[ Upstream commit 54aaa3b387c2f580a99dc86a9cc2eb6dfaf599a7 ]

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: 99288de36020 ("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>
drivers/usb/dwc3/core.c
drivers/usb/dwc3/core.h
drivers/usb/dwc3/gadget.c