[U-Boot-Users] [PATCH] net: fix handling of 'ethrotate' environment variable

Matthias Fuchs matthias.fuchs at esd-electronics.com
Wed Jan 16 12:32:51 CET 2008


Signed-off-by: Matthias Fuchs <matthias.fuchs at esd-electronics.com>
---
 net/eth.c |    9 +++++++++
 net/net.c |    9 +--------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/net/eth.c b/net/eth.c
index 5d9e9c1..d55fd7e 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -522,6 +522,15 @@ int eth_receive(volatile void *packet, int length)
 void eth_try_another(int first_restart)
 {
 	static struct eth_device *first_failed = NULL;
+	char *ethrotate;
+
+	/*
+	 * Do not rotate between network interfaces when
+	 * 'ethrotate' variable is set to 'no'.
+	 */
+	if (((ethrotate = getenv ("ethrotate")) != NULL) &&
+	    (strcmp(ethrotate, "no") == 0))
+		return;
 
 	if (!eth_current)
 		return;
diff --git a/net/net.c b/net/net.c
index e1b71a9..522c54d 100644
--- a/net/net.c
+++ b/net/net.c
@@ -581,7 +581,6 @@ void NetStartAgain (void)
 {
 	char *nretry;
 	int noretry = 0, once = 0;
-	char *ethrotate;
 
 	if ((nretry = getenv ("netretry")) != NULL) {
 		noretry = (strcmp (nretry, "no") == 0);
@@ -598,13 +597,7 @@ void NetStartAgain (void)
 #else	/* !CONFIG_NET_MULTI*/
 	eth_halt ();
 
-	/*
-	 * Do not rotate between network interfaces when
-	 * 'ethrotate' variable is set to 'no'.
-	 */
-	if (((ethrotate = getenv ("ethrotate")) == NULL) ||
-	    (strcmp(ethrotate, "no") != 0))
-		eth_try_another (!NetRestarted);
+	eth_try_another (!NetRestarted);
 
 	eth_init (gd->bd);
 	if (NetRestartWrap) {
-- 
1.5.3





More information about the U-Boot mailing list