summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2015-12-08 15:38:46 +0000
committerStefano Babic <sbabic@denx.de>2016-01-03 15:28:06 +0100
commit845a57b4de972aefb21bf7f13b23d472bccb6afb (patch)
treec7852b06bfc4b93872f284ec6a439613dcbe9cae /drivers
parent843a3e5893a713a3df752d30d31861d5b03ad75c (diff)
downloadblackbird-obmc-uboot-845a57b4de972aefb21bf7f13b23d472bccb6afb.tar.gz
blackbird-obmc-uboot-845a57b4de972aefb21bf7f13b23d472bccb6afb.zip
net: fec_mxc: unregister mdio bus on probe error
If fecmxc_initialize_multi() fails, it frees but does not unregister the mdio bus, causing subsequent uses of the "mii" command to crash. Fix this by adding mdio_unregister() calls where needed. Signed-off-by: Mans Rullgard <mans@mansr.com> Reviewed-by: Eric Nelson <eric@nelint.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec_mxc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 798cc165dd..3340dd256f 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1109,6 +1109,7 @@ int fecmxc_initialize_multi(bd_t *bd, int dev_id, int phy_id, uint32_t addr)
#ifdef CONFIG_PHYLIB
phydev = phy_find_by_mask(bus, 1 << phy_id, PHY_INTERFACE_MODE_RGMII);
if (!phydev) {
+ mdio_unregister(bus);
free(bus);
return -ENOMEM;
}
@@ -1120,6 +1121,7 @@ int fecmxc_initialize_multi(bd_t *bd, int dev_id, int phy_id, uint32_t addr)
#ifdef CONFIG_PHYLIB
free(phydev);
#endif
+ mdio_unregister(bus);
free(bus);
}
return ret;
OpenPOWER on IntegriCloud