diff mbox series

[1/2] usb: dwc3: omap: add missing depopulate in probe error path

Message ID 20240814101848.67501-1-krzysztof.kozlowski@linaro.org
State Superseded
Headers show
Series [1/2] usb: dwc3: omap: add missing depopulate in probe error path | expand

Commit Message

Krzysztof Kozlowski Aug. 14, 2024, 10:18 a.m. UTC
Depopulate device in probe error paths to fix leak of children
resources.

Fixes: ee249b455494 ("usb: dwc3: omap: remove IRQ_NOAUTOEN used with shared irq")
Cc: <stable@vger.kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/usb/dwc3/dwc3-omap.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Thinh Nguyen Aug. 14, 2024, 11:22 p.m. UTC | #1
On Wed, Aug 14, 2024, Krzysztof Kozlowski wrote:
> Depopulate device in probe error paths to fix leak of children
> resources.
> 
> Fixes: ee249b455494 ("usb: dwc3: omap: remove IRQ_NOAUTOEN used with shared irq")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  drivers/usb/dwc3/dwc3-omap.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
> index d5c77db4daa9..2a11fc0ee84f 100644
> --- a/drivers/usb/dwc3/dwc3-omap.c
> +++ b/drivers/usb/dwc3/dwc3-omap.c
> @@ -522,11 +522,13 @@ static int dwc3_omap_probe(struct platform_device *pdev)
>  	if (ret) {
>  		dev_err(dev, "failed to request IRQ #%d --> %d\n",
>  			omap->irq, ret);
> -		goto err1;
> +		goto err2;
>  	}
>  	dwc3_omap_enable_irqs(omap);
>  	return 0;
>  
> +err2:
> +	of_platform_depopulate(dev);
>  err1:
>  	pm_runtime_put_sync(dev);
>  	pm_runtime_disable(dev);
> -- 
> 2.43.0
> 

Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>

Thanks,
Thinh
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
index d5c77db4daa9..2a11fc0ee84f 100644
--- a/drivers/usb/dwc3/dwc3-omap.c
+++ b/drivers/usb/dwc3/dwc3-omap.c
@@ -522,11 +522,13 @@  static int dwc3_omap_probe(struct platform_device *pdev)
 	if (ret) {
 		dev_err(dev, "failed to request IRQ #%d --> %d\n",
 			omap->irq, ret);
-		goto err1;
+		goto err2;
 	}
 	dwc3_omap_enable_irqs(omap);
 	return 0;
 
+err2:
+	of_platform_depopulate(dev);
 err1:
 	pm_runtime_put_sync(dev);
 	pm_runtime_disable(dev);