[PATCH v2] netloop: updates for NetLoop Fix some issues introduced from commit: 2f70c49e5b9813635ad73666aa30f304c7fdeda9 suggested by Mike Frysinger.
- added some comment for the env_id variable in common_cmd_nvedit.c - moved some variables in fn scope instead of file scope - NetInitLoop now static void Signed-off-by: Heiko Schocher <h...@denx.de> --- changes since v1: - added comments from Mike Frysinger common/cmd_nvedit.c | 7 +++++++ net/eth.c | 5 ++--- net/net.c | 8 +++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index 95eebb5..30e296c 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -75,6 +75,13 @@ DECLARE_GLOBAL_DATA_PTR; static const unsigned long baudrate_table[] = CONFIG_SYS_BAUDRATE_TABLE; #define N_BAUDRATES (sizeof(baudrate_table) / sizeof(baudrate_table[0])) +/* + * This variable is incremented on each do_setenv (), so it can + * be used via get_env_id() as an indication, if the environment + * has changed or not. So it is possible to reread an environment + * variable only if the environment was changed ... done so for + * example in NetInitLoop() + */ static int env_id = 1; int get_env_id (void) diff --git a/net/eth.c b/net/eth.c index 4bbf84b..a494912 100644 --- a/net/eth.c +++ b/net/eth.c @@ -57,9 +57,6 @@ int eth_setenv_enetaddr(char *name, const uchar *enetaddr) #if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI) -static char *act = NULL; -static int env_changed_id = 0; - /* * CPU and board-specific Ethernet initializations. Aliased function * signals caller to move on @@ -471,6 +468,8 @@ void eth_try_another(int first_restart) #ifdef CONFIG_NET_MULTI void eth_set_current(void) { + static char *act = NULL; + static int env_changed_id = 0; struct eth_device* old_current; int env_id; diff --git a/net/net.c b/net/net.c index a89f6a0..0887f6e 100644 --- a/net/net.c +++ b/net/net.c @@ -209,8 +209,6 @@ uchar NetArpWaitPacketBuf[PKTSIZE_ALIGN + PKTALIGN]; ulong NetArpWaitTimerStart; int NetArpWaitTry; -int env_changed_id = 0; - void ArpRequest (void) { int i; @@ -278,15 +276,16 @@ void ArpTimeoutCheck(void) } } -int +static void NetInitLoop(proto_t protocol) { + static int env_changed_id = 0; bd_t *bd = gd->bd; int env_id = get_env_id (); /* update only when the environment has changed */ if (env_changed_id == env_id) - return 0; + return; switch (protocol) { #if defined(CONFIG_CMD_NFS) @@ -347,7 +346,6 @@ NetInitLoop(proto_t protocol) break; } env_changed_id = env_id; - return 0; } /**********************************************************************/ -- 1.6.0.6 -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot