diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-05-08 13:44:33 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-05-08 13:44:33 +0000 |
commit | 5d4a7e01467ffe614556f7fd960d0f9c431b700a (patch) | |
tree | e0914f90353fb52205ca386771dbe9d50e7e386d /sys/dev/iwi | |
parent | 6f950b00be2c5bff65afbec0c233123bd9b699e1 (diff) | |
download | FreeBSD-src-5d4a7e01467ffe614556f7fd960d0f9c431b700a.zip FreeBSD-src-5d4a7e01467ffe614556f7fd960d0f9c431b700a.tar.gz |
Drain the tasks before the interface stop call in case a restart was queued.
Diffstat (limited to 'sys/dev/iwi')
-rw-r--r-- | sys/dev/iwi/if_iwi.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/iwi/if_iwi.c b/sys/dev/iwi/if_iwi.c index 6957f9b..b04403b 100644 --- a/sys/dev/iwi/if_iwi.c +++ b/sys/dev/iwi/if_iwi.c @@ -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); |