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:
parent
012dddf7c9
commit
33f03fc98c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user