diff mbox

[U-Boot,v6,10/27] net: Make netretry actually do something

Message ID 1426117465-16072-11-git-send-email-joe.hershberger@ni.com
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Joe Hershberger March 11, 2015, 11:44 p.m. UTC
netretry previously would only retry in one specific case (your MAC
address is not set) and no other. This is basically useless. In the DM
implementation for eth it turns this into a completely useless case
since an un-configured MAC address results in not even entering the
NetLoop. The behavior is now changed to retry any failed command
(rotating through the eth adapters if ethrotate != no).

It also defaulted to retry forever. It is now changed to default to not
retry

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

---

Changes in v6: None
Changes in v5: None
Changes in v4:
-New to v4

Changes in v3: None
Changes in v2: None

 net/net.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/net/net.c b/net/net.c
index e5ab07c..37b4aab 100644
--- a/net/net.c
+++ b/net/net.c
@@ -527,6 +527,8 @@  restart:
 			(*x)();
 		}
 
+		if (net_state == NETLOOP_FAIL)
+			NetStartAgain();
 
 		switch (net_state) {
 
@@ -602,8 +604,10 @@  void NetStartAgain(void)
 			retrycnt = 1;
 		else
 			retrycnt = simple_strtoul(nretry, NULL, 0);
-	} else
-		retry_forever = 1;
+	} else {
+		retrycnt = 0;
+		retry_forever = 0;
+	}
 
 	if ((!retry_forever) && (NetTryCount >= retrycnt)) {
 		eth_halt();