[U-Boot] [PATCH] netloop: updates for NetLoop

Heiko Schocher
2009-02-25T12:40:45Z

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 <hs@denx.de>
---
common/cmd_nvedit.c | 6 ++++++
net/eth.c | 5 ++---
net/net.c | 9 ++++-----
3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c
index 95eebb5..3caa841 100644
--- a/common/cmd_nvedit.c
+++ b/common/cmd_nvedit.c
@@ -75,6 +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]))

+/*
+ * This variable is incremented on each do_setenv (), so it can
+ * be used 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..a80c814 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,7 @@ NetInitLoop(proto_t protocol)
break;
}
env_changed_id = env_id;
- return 0;
+ return;
}

/**********************************************************************/
--
1.6.0.6