Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Apr 2008 23:26:45 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 139437 for review
Message-ID:  <200804052326.m35NQjIp074658@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=139437

Change 139437 by sam@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,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804052326.m35NQjIp074658>