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:
parent
f136e568db
commit
a0847ec06e
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue