esp32s3/wlan: Always run wlan_rxpoll work queue

Even if we were unable to get a free IOB, trigger the work queue
to make sure that no old packet is waiting to be handled by the
network upper layers.
This commit is contained in:
Tiago Medicci Serrano 2023-08-04 17:22:05 -03:00 committed by Alan Carvalho de Assis
parent 012dddf7c9
commit 33f03fc98c

View File

@ -448,29 +448,23 @@ static int wlan_rx_done(struct wlan_priv_s *priv, void *buffer,
goto out;
}
out:
if (eb != NULL)
{
esp_wifi_free_eb(eb);
}
if (ret != OK && iob != NULL)
{
iob_free_chain(iob);
}
if (work_available(&priv->rxwork))
{
work_queue(WLAN_WORK, &priv->rxwork, wlan_rxpoll, priv, 0);
}
return 0;
out:
if (iob != NULL)
{
iob_free_chain(iob);
}
if (eb != NULL)
{
esp_wifi_free_eb(eb);
}
wlan_txavail(&priv->dev);
return ret;