PERFORCE change 139437 for review
Sam Leffler
sam at FreeBSD.org
Sat Apr 5 23:26:46 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=139437
Change 139437 by sam at sam_ebb on 2008/04/05 23:25:59
o eliminate locking in ieee80211_scan_next; just fire a callout
to happen immediately (avoids common LOR with driver softc lock)
o add assert in scan_curchan
Affected files ...
.. //depot/projects/vap/sys/net80211/ieee80211_scan.c#20 edit
Differences ...
==== //depot/projects/vap/sys/net80211/ieee80211_scan.c#20 (text+ko) ====
@@ -806,16 +806,9 @@
ieee80211_scan_next(struct ieee80211vap *vap)
{
struct ieee80211com *ic = vap->iv_ic;
+ struct ieee80211_scan_state *ss = ic->ic_scan;
- /*
- * XXX: We might need/want to decouple context here by either:
- * callout_reset(&SCAN_PRIVATE(ss)->ss_scan_timer, 0, scan_next, ss);
- * or using a taskqueue. Let's see what kind of problems direct
- * dispatch has for now.
- */
- IEEE80211_LOCK(ic);
- scan_next(ic->ic_scan);
- IEEE80211_UNLOCK(ic);
+ callout_reset(&SCAN_PRIVATE(ss)->ss_scan_timer, 0, scan_next, ss);
}
/*
@@ -881,6 +874,8 @@
{
struct ieee80211vap *vap = ss->ss_vap;
+ IEEE80211_LOCK_ASSERT(vap->iv_ic);
+
if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
ieee80211_probe_curchan(vap, 0);
callout_reset(&SCAN_PRIVATE(ss)->ss_scan_timer,
More information about the p4-projects
mailing list