Drain the tasks before the interface stop call in case a restart was queued.

This commit is contained in:
Andrew Thompson 2009-05-08 13:44:33 +00:00
parent 6e8e2779b3
commit b569d2132e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=191912
2 changed files with 6 additions and 6 deletions

View File

@ -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);

View File

@ -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);