diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2016-03-15 20:33:40 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-03-16 08:23:46 +0100 |
commit | b0b00ad859e79c0e671576bb9276d188c3c06a44 (patch) | |
tree | 5b33253ac49d15d154300474830d78cc6253e850 /drivers | |
parent | a0847ec06ed19fc71ec146e56c5adcb281f70247 (diff) | |
download | barebox-b0b00ad859e79c0e671576bb9276d188c3c06a44.tar.gz barebox-b0b00ad859e79c0e671576bb9276d188c3c06a44.tar.xz |
fec_imx: Free phy_reset GPIO if when probe fails
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/fec_imx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index da4eb55fb2..e7dbc16ded 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -701,7 +701,7 @@ static int fec_probe(struct device_d *dev) ret = gpio_direction_output(phy_reset, 0); if (ret) - goto release_res; + goto free_gpio; mdelay(msec); gpio_set_value(phy_reset, 1); @@ -741,7 +741,7 @@ static int fec_probe(struct device_d *dev) } if (ret) - goto release_res; + goto free_gpio; fec_init(edev); @@ -761,6 +761,9 @@ static int fec_probe(struct device_d *dev) return 0; +free_gpio: + if (gpio_is_valid(phy_reset)) + gpio_free(phy_reset); release_res: release_region(iores); disable_clk: |