aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorThomas RIENOESSL <thomas.rienoessl@bachmann.info>2018-11-21 15:56:07 +0100
committerJoe Hershberger <joe.hershberger@ni.com>2019-01-24 11:35:28 -0600
commita735e6e9d639114d67e4440f9e051a89d2094118 (patch)
treeaf72ba9ce4264b5610ec830ec9108a7d5d9eba1f /net
parent21586cdd50dbcb9572514d5288f8cbdc17e23264 (diff)
downloadu-boot-a735e6e9d639114d67e4440f9e051a89d2094118.zip
u-boot-a735e6e9d639114d67e4440f9e051a89d2094118.tar.gz
u-boot-a735e6e9d639114d67e4440f9e051a89d2094118.tar.bz2
net: explicitly assign errno to return code in case of network failure
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. Signed-off-by: Thomas RIENOESSL <thomas.rienoessl@bachmann.info> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net')
-rw-r--r--net/net.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/net.c b/net/net.c
index a5a216c..e9f7a7d 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: