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.
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