raspberrypi / pico-sdk

BSD 3-Clause "New" or "Revised" License
3.27k stars 844 forks source link

Freertos background asserts if IPv6 is enabled #1591

Closed peterharperuk closed 6 months ago

peterharperuk commented 6 months ago

If LWIP_IPV6=1 a request to update the multicast list occurs in a callback in the low priority interrupt.

This makes an ioctl call into the driver, at the end of which is a call to cyw43_await_background_or_timeout_us (see CYW43_DO_IOCTL_WAIT). It is attempting to delay until there's "some work to do".

For Freertos this fails an assertion as an attempt is made to acquire a semaphore in interrupt context.

Fixes #1590