usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 10 Jun 2023 13:32:52 +0000 (15:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Jun 2023 09:59:01 +0000 (11:59 +0200)
If dwc3_meson_g12a_otg_init() fails, resources allocated by the previous
of_platform_populate() call should be released, as already done in the
error handling path.

Fixes: 1e355f21d3fb ("usb: dwc3: Add Amlogic A1 DWC3 glue")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Message-ID: <9d28466de1808ccc756b4cc25fc72c482d133d13.1686403934.git.christophe.jaillet@wanadoo.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/dwc3-meson-g12a.c

index 365aec0..e99c748 100644 (file)
@@ -796,7 +796,7 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
 
        ret = dwc3_meson_g12a_otg_init(pdev, priv);
        if (ret)
-               goto err_phys_power;
+               goto err_plat_depopulate;
 
        pm_runtime_set_active(dev);
        pm_runtime_enable(dev);
@@ -804,6 +804,9 @@ static int dwc3_meson_g12a_probe(struct platform_device *pdev)
 
        return 0;
 
+err_plat_depopulate:
+       of_platform_depopulate(dev);
+
 err_phys_power:
        for (i = 0 ; i < PHY_COUNT ; ++i)
                phy_power_off(priv->phys[i]);