From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Thu, 29 Jan 2009 10:01:34 +0100 Subject: [U-Boot] [PATCH 03/31] netloop: speed up NetLoop In-Reply-To: <20090128200931.d04cab36.kim.phillips@freescale.com> References: <498027A2.8060104@denx.de> <20090128200931.d04cab36.kim.phillips@freescale.com> Message-ID: <4981706E.8060402@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Kim, Kim Phillips: > On Wed, 28 Jan 2009 10:38:42 +0100 > Heiko Schocher 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? not absolute, but accesing this var from another file by a function seems better to me. >> 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. Argh, sorry. >> * 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. Hmm.. must think about it. thanks Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany