[PATCH 1/2] phy: stm32-usphyc: release resources to properly support EPROBE_DEFER

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Jul 22 04:09:55 EDT 2020


Driver failed to release resources on failed probe so far, leading to
deferred probe failing with -EBUSY. Fix this.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 drivers/phy/phy-stm32-usbphyc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/phy/phy-stm32-usbphyc.c b/drivers/phy/phy-stm32-usbphyc.c
index 093842fe1460..d9eaa8a7544a 100644
--- a/drivers/phy/phy-stm32-usbphyc.c
+++ b/drivers/phy/phy-stm32-usbphyc.c
@@ -328,13 +328,13 @@ static int stm32_usbphyc_probe(struct device_d *dev)
 	if (IS_ERR(usbphyc->clk)) {
 		ret = PTR_ERR(usbphyc->clk);
 		dev_err(dev, "clk get failed: %d\n", ret);
-		return ret;
+		goto release_region;
 	}
 
 	ret = clk_enable(usbphyc->clk);
 	if (ret) {
 		dev_err(dev, "clk enable failed: %d\n", ret);
-		return ret;
+		goto release_region;
 	}
 
 	device_reset_us(dev, 2);
@@ -405,6 +405,11 @@ static int stm32_usbphyc_probe(struct device_d *dev)
 
 clk_disable:
 	clk_disable(usbphyc->clk);
+release_region:
+	release_region(iores);
+
+	free(usbphyc->phys);
+	free(usbphyc);
 
 	return ret;
 }
-- 
2.27.0




More information about the barebox mailing list