This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 33f03fc98c0fe5cd5ce2fc99bbd684fb2d8c790b Author: Tiago Medicci Serrano <[email protected]> AuthorDate: Fri Aug 4 17:22:05 2023 -0300 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. --- arch/xtensa/src/esp32s3/esp32s3_wlan.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/arch/xtensa/src/esp32s3/esp32s3_wlan.c b/arch/xtensa/src/esp32s3/esp32s3_wlan.c index 9a27d1dda9..70f0b7f9dc 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_wlan.c +++ b/arch/xtensa/src/esp32s3/esp32s3_wlan.c @@ -448,27 +448,21 @@ static int wlan_rx_done(struct wlan_priv_s *priv, void *buffer, goto out; } +out: + if (eb != NULL) { esp_wifi_free_eb(eb); } - if (work_available(&priv->rxwork)) - { - work_queue(WLAN_WORK, &priv->rxwork, wlan_rxpoll, priv, 0); - } - - return 0; - -out: - if (iob != NULL) + if (ret != OK && iob != NULL) { iob_free_chain(iob); } - if (eb != NULL) + if (work_available(&priv->rxwork)) { - esp_wifi_free_eb(eb); + work_queue(WLAN_WORK, &priv->rxwork, wlan_rxpoll, priv, 0); } wlan_txavail(&priv->dev);
