On Wed, May 28, 2025 at 12:57 AM Jerome Forissier <jerome.foriss...@linaro.org> wrote: > > 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; > ... > } >
Hi Jerome, I knew you would know exactly where to put it - works great. Shall I submit a patch authored by you and signed-off by both of us? Thanks, Tim