[PATCH 1/6] net: lwip: call sys_check_timeouts and schedule on rx
Jerome Forissier
jerome.forissier at linaro.org
Fri May 30 09:47:14 CEST 2025
Hi Tim,
On 5/29/25 23:49, Tim Harvey wrote:
> Call sys_check_timeouts to service lwIP timers and schedule to service
> U-Boot tasks and actions during packet rx.
>
> This resolves the issue of an active watchdog resetting the board on
> long network activities.
>
> Suggested-by: Jerome Forissier <jerome.forissier at linaro.org>
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
> net/lwip/net-lwip.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c
> index f05c4cd3f64f..e8d4cc542ed8 100644
> --- a/net/lwip/net-lwip.c
> +++ b/net/lwip/net-lwip.c
> @@ -13,8 +13,10 @@
> #include <lwip/etharp.h>
> #include <lwip/init.h>
> #include <lwip/prot/etharp.h>
> +#include <lwip/timeouts.h>
> #include <net.h>
> #include <timer.h>
> +#include <u-boot/schedule.h>
>
> /* xx:xx:xx:xx:xx:xx\0 */
> #define MAC_ADDR_STRLEN 18
> @@ -284,6 +286,11 @@ int net_lwip_rx(struct udevice *udev, struct netif *netif)
> int len;
> int i;
>
> + /* lwIP timers */
> + sys_check_timeouts();
> + /* Other tasks and actions */
> + schedule();
> +
> if (!eth_is_active(udev))
> return -EINVAL;
>
With that, there is no need for calling sys_check_timeouts() in the
callers of net_lwip_rx(). Please simplify the dhcp/dns/ping/tftp/wget
loops.
Thanks,
--
Jerome
More information about the U-Boot
mailing list