Message ID | 9d28466de1808ccc756b4cc25fc72c482d133d13.1686403934.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe() | expand |
On 10/06/2023 15:32, Christophe JAILLET wrote: > 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> > --- > drivers/usb/dwc3/dwc3-meson-g12a.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c > index 365aec00d302..e99c7489dba0 100644 > --- a/drivers/usb/dwc3/dwc3-meson-g12a.c > +++ b/drivers/usb/dwc3/dwc3-meson-g12a.c > @@ -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]); Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
On Sat, Jun 10, 2023 at 3:32 PM Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > 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> We should move to devm_of_platform_populate() mid term. That said, this fix is good for now because it's simple and can be backported.
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c index 365aec00d302..e99c7489dba0 100644 --- a/drivers/usb/dwc3/dwc3-meson-g12a.c +++ b/drivers/usb/dwc3/dwc3-meson-g12a.c @@ -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]);
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> --- drivers/usb/dwc3/dwc3-meson-g12a.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)