
14 Jan
2013
14 Jan
'13
4:16 p.m.
Manjunath Hadli <manjunath.hadli <at> ti.com> writes:
check for the return status for eth_getenv_enetaddr_by_index() and eth_setenv_enetaddr() functions and print appropriate message on failure.
I am upgrading from v2011.12 (as I have some ubifsmount issues and don't want to debug this on an old ubi) and I saw that setting the MAC address from EEPROM is broken.
- if (!memcmp(env_enetaddr, "\0\0\0\0\0\0", 6)) {
- ret = eth_getenv_enetaddr_by_index("eth", 0, env_enetaddr);
- if (ret) {
In case there is no mac address in the environment the net/eth.c code will set env_enetaddr to all 0. This means that is_valid_ether_addr inside eth_getenv_enetaddr will return 0 (as of not valid). That also means that the below function will not be called.
I assume the right fix is to change the condition to !ret.
eth_setenv_enetaddr("ethaddr", rom_enetaddr);
}ret = !eth_setenv_enetaddr("ethaddr", rom_enetaddr);
- if (!ret)
printf("Failed to set mac address from EEPROM\n");
adding %d for 'ret' would be nice.