If softconnect is not set it means the controller has not started, so no point in stopping it in dwc3_gadget_suspend()
Cc: stable@vger.kernel.org # 5.16 Fixes: 8217f07a5023 ("usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind") Signed-off-by: Roger Quadros rogerq@kernel.org --- drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c0ca4d12f95d..b5170374cd18 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -4656,7 +4656,7 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) { unsigned long flags;
- if (!dwc->gadget_driver) + if (!dwc->gadget_driver || !dwc->softconnect) return 0;
dwc3_gadget_run_stop(dwc, false);
On Tue, May 02, 2023, Roger Quadros wrote:
If softconnect is not set it means the controller has not started, so no point in stopping it in dwc3_gadget_suspend()
Cc: stable@vger.kernel.org # 5.16 Fixes: 8217f07a5023 ("usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind")
If the reason for this patch is as mentioned in the commit message, then I don't think this is a fix patch that needs to be backported to stable. The reason why we needed to check both dwc->gadget_driver and dwc->softconnect is because of a potential race between resume and unbind. Would there be a similar case in dwc_gadget_suspend where a potential race may occur? If not, I don't think we need this patch.
Thanks, Thinh
Signed-off-by: Roger Quadros rogerq@kernel.org
drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c0ca4d12f95d..b5170374cd18 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -4656,7 +4656,7 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) { unsigned long flags;
- if (!dwc->gadget_driver)
- if (!dwc->gadget_driver || !dwc->softconnect) return 0;
dwc3_gadget_run_stop(dwc, false); -- 2.34.1
On 03/05/2023 00:17, Thinh Nguyen wrote:
On Tue, May 02, 2023, Roger Quadros wrote:
If softconnect is not set it means the controller has not started, so no point in stopping it in dwc3_gadget_suspend()
Cc: stable@vger.kernel.org # 5.16 Fixes: 8217f07a5023 ("usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind")
If the reason for this patch is as mentioned in the commit message, then I don't think this is a fix patch that needs to be backported to stable. The reason why we needed to check both dwc->gadget_driver and dwc->softconnect is because of a potential race between resume and unbind. Would there be a similar case in dwc_gadget_suspend where a potential race may occur? If not, I don't think we need this patch.
OK. I agree.
Thanks, Thinh
Signed-off-by: Roger Quadros rogerq@kernel.org
drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c0ca4d12f95d..b5170374cd18 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -4656,7 +4656,7 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) { unsigned long flags;
- if (!dwc->gadget_driver)
- if (!dwc->gadget_driver || !dwc->softconnect) return 0;
dwc3_gadget_run_stop(dwc, false); -- 2.34.1
cheers, -roger
linux-stable-mirror@lists.linaro.org