nitrogen6x: Fix the error handling in board_eth_init()

We should not return 0 on failure, so return a negative error code
instead.

Also centralize the error path so that is easier to follow.

Cc: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Troy Kisky <troy.kisky@boundarydevices.com>
This commit is contained in:
Fabio Estevam 2015-09-11 00:53:51 -03:00 committed by Stefano Babic
parent 8f6edf6d30
commit 747472bb96
1 changed files with 11 additions and 8 deletions

View File

@ -387,20 +387,17 @@ int board_eth_init(bd_t *bis)
#ifdef CONFIG_FEC_MXC #ifdef CONFIG_FEC_MXC
bus = fec_get_miibus(base, -1); bus = fec_get_miibus(base, -1);
if (!bus) if (!bus)
return 0; return -EINVAL;
/* scan phy 4,5,6,7 */ /* scan phy 4,5,6,7 */
phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII); phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII);
if (!phydev) { if (!phydev) {
free(bus); ret = -EINVAL;
return 0; goto free_bus;
} }
printf("using phy at %d\n", phydev->addr); printf("using phy at %d\n", phydev->addr);
ret = fec_probe(bis, -1, base, bus, phydev); ret = fec_probe(bis, -1, base, bus, phydev);
if (ret) { if (ret)
printf("FEC MXC: %s:failed\n", __func__); goto free_phydev;
free(phydev);
free(bus);
}
#endif #endif
#ifdef CONFIG_CI_UDC #ifdef CONFIG_CI_UDC
@ -408,6 +405,12 @@ int board_eth_init(bd_t *bis)
usb_eth_initialize(bis); usb_eth_initialize(bis);
#endif #endif
return 0; return 0;
free_phydev:
free(phydev);
free_bus:
free(bus);
return ret;
} }
static void setup_buttons(void) static void setup_buttons(void)