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.



_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to