summaryrefslogtreecommitdiffstats
path: root/sys/dev/if_ndis
diff options
context:
space:
mode:
authorcokane <cokane@FreeBSD.org>2009-09-22 12:36:51 +0000
committercokane <cokane@FreeBSD.org>2009-09-22 12:36:51 +0000
commitfb78ea79e07b80f15ff0c6e351d41c35ad7a7666 (patch)
treeeb6c22548ae7fb0fc27a98793dcd948457830b89 /sys/dev/if_ndis
parent59346bd7150e2f805db7e022a56969647d253b31 (diff)
downloadFreeBSD-src-fb78ea79e07b80f15ff0c6e351d41c35ad7a7666.zip
FreeBSD-src-fb78ea79e07b80f15ff0c6e351d41c35ad7a7666.tar.gz
The ndis_scan function may be started after ndis vap have been destroyed
PR: kern/138632 Submitted by: Paul B. Mahol <onemda at gmail.com> MFC after: 3 days
Diffstat (limited to 'sys/dev/if_ndis')
-rw-r--r--sys/dev/if_ndis/if_ndis.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c
index cd23972..b153e65 100644
--- a/sys/dev/if_ndis/if_ndis.c
+++ b/sys/dev/if_ndis/if_ndis.c
@@ -1012,7 +1012,12 @@ static void
ndis_vap_delete(struct ieee80211vap *vap)
{
struct ndis_vap *nvp = NDIS_VAP(vap);
+ struct ieee80211com *ic = vap->iv_ic;
+ struct ifnet *ifp = ic->ic_ifp;
+ struct ndis_softc *sc = ifp->if_softc;
+ ndis_stop(sc);
+ callout_drain(&sc->ndis_scan_callout);
ieee80211_vap_detach(vap);
free(nvp, M_80211_VAP);
}
OpenPOWER on IntegriCloud