mirror of
https://github.com/apache/nuttx.git
synced 2025-01-12 22:08:35 +08:00
esp32s3_wifi_adapter.c: Fix a deadlock
Fixes: https://github.com/apache/nuttx/issues/15314
This commit is contained in:
parent
8282ed9ab0
commit
c0eaf12661
1 changed files with 8 additions and 0 deletions
|
@ -2125,6 +2125,13 @@ static void esp_evt_work_cb(void *arg)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Some of the following logic (eg. esp32s3_wlan_sta_set_linkstatus)
|
||||||
|
* can take net_lock(). To maintain the consistent locking order,
|
||||||
|
* we take net_lock() here before taking esp_wifi_lock. Note that
|
||||||
|
* net_lock() is a recursive lock.
|
||||||
|
*/
|
||||||
|
|
||||||
|
net_lock();
|
||||||
esp_wifi_lock(true);
|
esp_wifi_lock(true);
|
||||||
|
|
||||||
switch (evt_adpt->id)
|
switch (evt_adpt->id)
|
||||||
|
@ -2268,6 +2275,7 @@ static void esp_evt_work_cb(void *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_wifi_lock(false);
|
esp_wifi_lock(false);
|
||||||
|
net_unlock();
|
||||||
|
|
||||||
kmm_free(evt_adpt);
|
kmm_free(evt_adpt);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue