[U-Boot] [PATCH 03/31] netloop: speed up NetLoop
Kim Phillips
kim.phillips at freescale.com
Thu Jan 29 03:09:31 CET 2009
On Wed, 28 Jan 2009 10:38:42 +0100
Heiko Schocher <hs at denx.de> wrote:
> +++ b/common/cmd_nvedit.c
> @@ -75,7 +75,12 @@ DECLARE_GLOBAL_DATA_PTR;
> static const unsigned long baudrate_table[] = CONFIG_SYS_BAUDRATE_TABLE;
> #define N_BAUDRATES (sizeof(baudrate_table) / sizeof(baudrate_table[0]))
>
> +static int env_id = 1;
>
> +int get_env_id (void)
> +{
> + return env_id;
> +}
does getting env_id really need be a function?
> diff --git a/net/eth.c b/net/eth.c
> index b7ef09f..d1d73cb 100644
> --- a/net/eth.c
> +++ b/net/eth.c
> @@ -28,7 +28,11 @@
>
> #if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI)
>
> +static char *act = 0;
> +static int env_changed_id = 0;
> +
> /*
> +*
please don't mess with the already good comment coding style.
> * CPU and board-specific Ethernet initializations. Aliased function
> * signals caller to move on
> */
> @@ -439,13 +443,16 @@ void eth_try_another(int first_restart)
> #ifdef CONFIG_NET_MULTI
> void eth_set_current(void)
> {
> - char *act;
> struct eth_device* old_current;
>
> if (!eth_current) /* XXX no current */
> return;
>
> - act = getenv("ethact");
> + if ((*act == 0) || (env_changed_id < get_env_id()))
If I'm not mistaken, this will unintentionally dereference address 0
the first time this is executed.
> + {
> + act = getenv("ethact");
> + env_changed_id = get_env_id();
> + }
> if (act != NULL) {
> old_current = eth_current;
> do {
Kim
More information about the U-Boot
mailing list