[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