summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Hershberger <joe.hershberger@ni.com>2015-12-21 16:31:35 -0600
committerSimon Glass <sjg@chromium.org>2016-01-07 12:18:58 -0700
commitc5a75339cf1595ee89a3513cd4fd84c10c0cd910 (patch)
tree45bd1ab08204dd3573577e66234ca68035c27c99
parent71105f50fedddfa5b0535d102c3d5078671721ad (diff)
downloadtalos-obmc-uboot-c5a75339cf1595ee89a3513cd4fd84c10c0cd910.tar.gz
talos-obmc-uboot-c5a75339cf1595ee89a3513cd4fd84c10c0cd910.zip
net: Fix delay in net_retry test
Introduced in 45b4773 (net/arp: account for ARP delay, avoid duplicate packets on timeout) Check the arp timeout and adjust the timeout start time before the call to eth_recv() so that the sandbox driver has the opportunity to adjust the sandbox timer after the new start time has been recorded. Also, change the adjustment amount by 11 seconds instead of exactly the 10 seconds that the ping timout is expecting since the timeout check is looking for the time elapsed to be greater than but not equal to the specified delay. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/net/sandbox.c2
-rw-r--r--net/net.c7
2 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 6763a248f2..d538d379bb 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -157,7 +157,7 @@ static int sb_eth_recv(struct udevice *dev, int flags, uchar **packetp)
struct eth_sandbox_priv *priv = dev_get_priv(dev);
if (skip_timeout) {
- sandbox_timer_add_offset(10000UL);
+ sandbox_timer_add_offset(11000UL);
skip_timeout = false;
}
diff --git a/net/net.c b/net/net.c
index 4d5746a7b3..fba111edfb 100644
--- a/net/net.c
+++ b/net/net.c
@@ -542,6 +542,9 @@ restart:
#ifdef CONFIG_SHOW_ACTIVITY
show_activity(1);
#endif
+ if (arp_timeout_check() > 0)
+ time_start = get_timer(0);
+
/*
* Check the ethernet for a new packet. The ethernet
* receive routine will process it.
@@ -570,10 +573,6 @@ restart:
goto done;
}
- if (arp_timeout_check() > 0) {
- time_start = get_timer(0);
- }
-
/*
* Check for a timeout, and run the timeout handler
* if we have one.
OpenPOWER on IntegriCloud