Drain the tasks before the interface stop call in case a restart was queued.
This commit is contained in:
parent
6f950b00be
commit
5d4a7e0146
@ -404,13 +404,13 @@ ipw_detach(device_t dev)
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = ifp->if_l2com;
|
||||
|
||||
ieee80211_draintask(ic, &sc->sc_init_task);
|
||||
ipw_stop(sc);
|
||||
|
||||
bpfdetach(ifp);
|
||||
ieee80211_ifdetach(ic);
|
||||
|
||||
callout_drain(&sc->sc_wdtimer);
|
||||
ieee80211_draintask(ic, &sc->sc_init_task);
|
||||
|
||||
ipw_release(sc);
|
||||
|
||||
|
@ -459,17 +459,17 @@ iwi_detach(device_t dev)
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = ifp->if_l2com;
|
||||
|
||||
iwi_stop(sc);
|
||||
|
||||
bpfdetach(ifp);
|
||||
ieee80211_ifdetach(ic);
|
||||
|
||||
/* NB: do early to drain any pending tasks */
|
||||
ieee80211_draintask(ic, &sc->sc_radiontask);
|
||||
ieee80211_draintask(ic, &sc->sc_radiofftask);
|
||||
ieee80211_draintask(ic, &sc->sc_restarttask);
|
||||
ieee80211_draintask(ic, &sc->sc_disassoctask);
|
||||
|
||||
iwi_stop(sc);
|
||||
|
||||
bpfdetach(ifp);
|
||||
ieee80211_ifdetach(ic);
|
||||
|
||||
iwi_put_firmware(sc);
|
||||
iwi_release_fw_dma(sc);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user