[U-Boot] [PATCH] net: dhcp: Allow "MAY_FAIL" to still try each adapter
Wilson Lee
wilson.lee at ni.com
Wed Nov 8 02:13:40 UTC 2017
From: Joe Hershberger <joe.hershberger at ni.com>
This change allows the "MAY_FAIL" DHCP option to still attempt to
contact a DHCP server on each adapter and only give up once each
adapter has failed once. To get the existing behavior, set the
already-existing ethrotate=no variable.
Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Cc: Keng Soon Cheah <keng.soon.cheah at ni.com>
Cc: Chen Yee Chew <chen.yee.chew at ni.com>
---
net/bootp.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/net/bootp.c b/net/bootp.c
index 73370a1..cb724e9 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -387,12 +387,19 @@ static void bootp_timeout_handler(void)
if (time_taken >= time_taken_max) {
#ifdef CONFIG_BOOTP_MAY_FAIL
- puts("\nRetry time exceeded\n");
- net_set_state(NETLOOP_FAIL);
-#else
- puts("\nRetry time exceeded; starting again\n");
- net_start_again();
+ char *ethrotate;
+
+ ethrotate = getenv("ethrotate");
+ if ((ethrotate != NULL && strcmp(ethrotate, "no") == 0) ||
+ net_restart_wrap) {
+ puts("\nRetry time exceeded\n");
+ net_set_state(NETLOOP_FAIL);
+ } else
#endif
+ {
+ puts("\nRetry time exceeded; starting again\n");
+ net_start_again();
+ }
} else {
bootp_timeout *= 2;
if (bootp_timeout > 2000)
--
2.7.4
More information about the U-Boot
mailing list