lwIP watchdog not being serviced
Jerome Forissier
jerome.forissier at linaro.org
Wed May 28 09:57:47 CEST 2025
Hi Tim,
On 5/27/25 21:07, Tim Harvey wrote:
> Hi Jerome,
>
> In my continued evaluation to see if I want to switch my boards over
> to use lwIP I've noticed that the watchdog does not get serviced
> during at least http/tftp which surprised me. This causes board resets
> when transferring large files such as disk images.
>
> It seems lwIP is missing some calls to schedule(). Do you have a
> suggestion for the right place to call this for lwIP?
That's a good point. Anywhere in the receive loops should be OK, for
example right after net_lwip_rx(udev, netif). But for simplicity and
to avoid pattern duplication we may want to call schedule() as well
as sys_check_timeouts() inside net_lwip_rx():
int net_lwip_rx(struct udevice *udev, struct netif *netif)
{
struct pbuf *pbuf;
uchar *packet;
int flags;
int len;
int i;
/* lwIP timers */
sys_check_timeouts();
/* Other tasks and actions */
schedule();
if (!eth_is_active(udev))
return -EINVAL;
...
}
Regards,
--
Jerome
>
> Best Regards,
>
> Tim
More information about the U-Boot
mailing list