Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net80211/ieee80211.c
Show First 20 Lines • Show All 721 Lines • ▼ Show 20 Lines | ieee80211_vap_detach(struct ieee80211vap *vap) | ||||
ieee80211_stop(vap); | ieee80211_stop(vap); | ||||
/* | /* | ||||
* Flush any deferred vap tasks. | * Flush any deferred vap tasks. | ||||
*/ | */ | ||||
ieee80211_draintask(ic, &vap->iv_nstate_task); | ieee80211_draintask(ic, &vap->iv_nstate_task); | ||||
ieee80211_draintask(ic, &vap->iv_swbmiss_task); | ieee80211_draintask(ic, &vap->iv_swbmiss_task); | ||||
ieee80211_draintask(ic, &vap->iv_wme_task); | |||||
/* XXX band-aid until ifnet handles this for us */ | /* XXX band-aid until ifnet handles this for us */ | ||||
taskqueue_drain(taskqueue_swi, &ifp->if_linktask); | taskqueue_drain(taskqueue_swi, &ifp->if_linktask); | ||||
IEEE80211_LOCK(ic); | IEEE80211_LOCK(ic); | ||||
KASSERT(vap->iv_state == IEEE80211_S_INIT , ("vap still running")); | KASSERT(vap->iv_state == IEEE80211_S_INIT , ("vap still running")); | ||||
TAILQ_REMOVE(&ic->ic_vaps, vap, iv_next); | TAILQ_REMOVE(&ic->ic_vaps, vap, iv_next); | ||||
ieee80211_syncflag_locked(ic, IEEE80211_F_WME); | ieee80211_syncflag_locked(ic, IEEE80211_F_WME); | ||||
▲ Show 20 Lines • Show All 1,766 Lines • Show Last 20 Lines |