summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Riedmueller <s.riedmueller@phytec.de>2019-10-08 10:56:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-10-14 12:24:56 +0200
commitdd9616e63922aca74e35572ecc5d43662d30e830 (patch)
treea9e513f4c00d4009f213c98c4f347778b80b8a7a
parent29cdf1302c06e74c3dc7cc5e343d5eea9d165fe5 (diff)
downloadbarebox-dd9616e63922aca74e35572ecc5d43662d30e830.tar.gz
barebox-dd9616e63922aca74e35572ecc5d43662d30e830.tar.xz
net: fec_imx: Fix resource rollback with regulator errors
When the driver is not able to get or control the phy regulator memory resources are already acquired and need to be released during rollback. Signed-off-by: Stefan Riedmueller <s.riedmueller@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/net/fec_imx.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 31c9102189..5ef1d4359e 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -781,7 +781,8 @@ static int fec_probe(struct device_d *dev)
if (IS_ERR(fec->reg_phy)) {
if (PTR_ERR(fec->reg_phy) == -EPROBE_DEFER) {
ret = -EPROBE_DEFER;
- goto disable_clk;
+ fec->reg_phy = NULL;
+ goto release_res;
}
fec->reg_phy = NULL;
}
@@ -789,7 +790,7 @@ static int fec_probe(struct device_d *dev)
ret = regulator_enable(fec->reg_phy);
if (ret) {
dev_err(dev, "Failed to enable phy regulator: %d\n", ret);
- goto disable_clk;
+ goto release_res;
}
phy_reset = of_get_named_gpio(dev->device_node, "phy-reset-gpios", 0);