[U-Boot] [PATCH] net: Fix delay in net_retry test
Stefan Bruens
stefan.bruens at rwth-aachen.de
Tue Dec 22 00:30:19 CET 2015
Hi Joe,
On Monday 21 December 2015 16:50:52 Joe Hershberger wrote:
> Hi Stefan,
>
> On Mon, Dec 21, 2015 at 4:31 PM, Joe Hershberger <joe.hershberger at ni.com>
wrote:
> > 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.
>
> This had to change to allow sandbox tests to work. Please verify that
> it does not impair the behavior you intended with your patch.
I can't see any reason this change would impair the behaviour. The runtime
of the eth_rx() function should be small compared to the request timeout.
I haven't actually tested your change and won't be able to do until after the
holydays, but as I think it is fine:
Reviewed-by: Stefan Brüns <stefan.bruens at rwth-aachen.de>
> > 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 at ni.com>
> >
> > ---
> >
> > drivers/net/sandbox.c | 2 +-
> > net/net.c | 7 +++----
> > 2 files changed, 4 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
> > index 6763a24..d538d37 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 4d5746a..fba111e 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.
> >
> > --
> > 2.5.0
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
--
Stefan Brüns / Bergstraße 21 / 52062 Aachen
home: +49 241 53809034 mobile: +49 151 50412019
work: +49 2405 49936-424
More information about the U-Boot
mailing list