Eric Nelson <[email protected]> writes: > Hi Mans, > > On 12/08/2015 08:38 AM, Mans Rullgard wrote: >> 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 <[email protected]> >> --- >> drivers/net/fec_mxc.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c >> index 1250d2a..6c5e80b 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); > > While you're in here, this should probably be mdio_free just > to prevent somebody else from searching as I did. > >> 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); > > Ditto: >> free(bus); >> } >> return ret; >>
Agreed, but that's a separate issue. -- Måns Rullgård [email protected] _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

