9
0
Fork 0

fec_imx: Deallocate I/O resources if probe fails

Add a proper check for I/O memory resource allocation failure and
replace dev_request_mem_region with dev_request_mem_resource so it would
be possible to correctly deallocate device's I/O resources when probe
fails.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Andrey Smirnov 2016-03-15 20:33:39 -07:00 committed by Sascha Hauer
parent f136e568db
commit a0847ec06e
1 changed files with 9 additions and 5 deletions

View File

@ -685,8 +685,10 @@ static int fec_probe(struct device_d *dev)
goto put_clk;
iores = dev_request_mem_resource(dev, 0);
if (IS_ERR(iores))
return PTR_ERR(iores);
if (IS_ERR(iores)) {
ret = PTR_ERR(iores);
goto disable_clk;
}
fec->regs = IOMEM(iores->start);
phy_reset = of_get_named_gpio(dev->device_node, "phy-reset-gpios", 0);
@ -695,11 +697,11 @@ static int fec_probe(struct device_d *dev)
ret = gpio_request(phy_reset, "phy-reset");
if (ret)
goto disable_clk;
goto release_res;
ret = gpio_direction_output(phy_reset, 0);
if (ret)
goto disable_clk;
goto release_res;
mdelay(msec);
gpio_set_value(phy_reset, 1);
@ -739,7 +741,7 @@ static int fec_probe(struct device_d *dev)
}
if (ret)
goto disable_clk;
goto release_res;
fec_init(edev);
@ -759,6 +761,8 @@ static int fec_probe(struct device_d *dev)
return 0;
release_res:
release_region(iores);
disable_clk:
clk_disable(fec->clk);
put_clk: