[U-Boot] [PATCH] net: explicitly assign errno to return code in case of network failure

Thomas RIENOESSL thomas.rienoessl at bachmann.info
Wed Nov 21 14:56:07 UTC 2018


When dealing with two ethernet ports and having "netretry" set
to "once", it could occur that the connection (e.g. an ARP
request) failed, hence the status of the netloop was
"NETLOOP_FAIL". Due to the setting of "netretry", the network
logic would then switch to the other network interface,
assigning "ret" with the return value of "net_start_again()".
If this call succeeded we would return 0 (i.e. success) to
the caller when in reality the network action failed.

Change-Id: I58b935b0f6c7a300d1dd0058803f7d3c9455b0dc
Signed-off-by: Thomas RIENOESSL <thomas.rienoessl at bachmann.info>
---
 net/net.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/net.c b/net/net.c
index 31cf306ae7..568ba74f78 100644
--- a/net/net.c
+++ b/net/net.c
@@ -657,6 +657,7 @@ restart:
 			/* Invalidate the last protocol */
 			eth_set_last_protocol(BOOTP);
 			debug_cond(DEBUG_INT_STATE, "--- net_loop Fail!\n");
+			ret = -ENONET;
 			goto done;
 
 		case NETLOOP_CONTINUE:
-- 
2.19.1



More information about the U-Boot mailing list