esp32s3: fix the halt issue when esp32s3 wlan has high-speed

or long time data transmission.

The spin_lock in the wlan_recvframe() function that receives
RX data packets from the wireless network card and the critical
section lock in the iob_remove_queue() processing are nested,
which causes the interrupt to be disabled for a longer period
of time, resulting in a risk of deadlock.
This commit is contained in:
nuttxs 2023-10-10 16:53:49 +08:00 committed by Xiang Xiao
parent c166c98e0c
commit 3d6e893215
1 changed files with 0 additions and 5 deletions

View File

@ -296,14 +296,9 @@ static inline void wlan_cache_txpkt_tail(struct wlan_priv_s *priv)
static struct iob_s *wlan_recvframe(struct wlan_priv_s *priv)
{
struct iob_s *iob;
irqstate_t flags;
flags = spin_lock_irqsave(&priv->lock);
iob = iob_remove_queue(&priv->rxb);
spin_unlock_irqrestore(&priv->lock, flags);
return iob;
}