Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- drivers/net/fec_imx.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index 4465788..f413acd 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -710,7 +710,9 @@ static int fec_probe(struct device_d *dev) goto err_free; } - clk_enable(fec->clk); + ret = clk_enable(fec->clk); + if (ret < 0) + goto put_clk; fec->regs = dev_request_mem_region(dev, 0); @@ -720,11 +722,11 @@ static int fec_probe(struct device_d *dev) ret = gpio_request(phy_reset, "phy-reset"); if (ret) - goto err_free; + goto disable_clk; ret = gpio_direction_output(phy_reset, 0); if (ret) - goto err_free; + goto disable_clk; mdelay(msec); gpio_set_value(phy_reset, 1); @@ -764,7 +766,7 @@ static int fec_probe(struct device_d *dev) } if (ret) - goto err_free; + goto disable_clk; fec_init(edev); @@ -784,6 +786,10 @@ static int fec_probe(struct device_d *dev) return 0; +disable_clk: + clk_disable(fec->clk); +put_clk: + clk_put(fec->clk); err_free: free(fec); return ret; -- 2.5.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox