mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Fix a mutex LOR introduced by the conversion of if_ndis from spinlocks to
mutexes and replacing the obsolete if_watchdog interface. The ndis_ticktask function calls into ieee80211_new_state under one condition with NDIS_LOCK held. The ieee80211_new_state would call into ndis_start in some cases too, resulting in the occasional case where ndis_start acquires NDIS_LOCK from inside the NDIS_LOCK held by ndis_ticktask. Obtained from: Paul B. Mahol <onemda@gmail.com> MFC after: 1 week
This commit is contained in:
parent
552f9f63c1
commit
093d7be50e
1 changed files with 2 additions and 0 deletions
|
|
@ -1717,8 +1717,10 @@ ndis_ticktask(d, xsc)
|
|||
if (sc->ndis_link == 1 &&
|
||||
sc->ndis_sts == NDIS_STATUS_MEDIA_DISCONNECT) {
|
||||
sc->ndis_link = 0;
|
||||
NDIS_UNLOCK(sc);
|
||||
if (sc->ndis_80211)
|
||||
ieee80211_new_state(vap, IEEE80211_S_SCAN, 0);
|
||||
NDIS_LOCK(sc);
|
||||
if_link_state_change(sc->ifp, LINK_STATE_DOWN);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue