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>
master
Fabio Estevam 9 years ago committed by Stefano Babic
parent 8f6edf6d30
commit 747472bb96
  1. 19
      board/boundary/nitrogen6x/nitrogen6x.c

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

Loading…
Cancel
Save