svn commit: r282705 - head/sys/net80211

Adrian Chadd adrian at FreeBSD.org
Sun May 10 06:59:35 UTC 2015


Author: adrian
Date: Sun May 10 06:59:34 2015
New Revision: 282705
URL: https://svnweb.freebsd.org/changeset/base/282705

Log:
  Turn ieee80211_start_scan_locked() into a swscan module private method.
  
  It turns out that ieee80211_start_scan_locked() is only ever called by
  the swscan code and it won't likely be required by firmware scanning
  implementations.
  
  So, don't bother keeping it in ieee80211_scan.c and it likely won't
  become an API call.
  
  Tested:
  
  * Intel 5100, STA mode
  * AR5416, STA mode

Modified:
  head/sys/net80211/ieee80211_scan.c
  head/sys/net80211/ieee80211_scan.h
  head/sys/net80211/ieee80211_scan_sw.c

Modified: head/sys/net80211/ieee80211_scan.c
==============================================================================
--- head/sys/net80211/ieee80211_scan.c	Sun May 10 06:57:53 2015	(r282704)
+++ head/sys/net80211/ieee80211_scan.c	Sun May 10 06:59:34 2015	(r282705)
@@ -309,80 +309,6 @@ ieee80211_scan_copy_ssid(struct ieee8021
  * Start a scan unless one is already going.
  */
 int
-ieee80211_start_scan_locked(const struct ieee80211_scanner *scan,
-	struct ieee80211vap *vap, int flags, u_int duration,
-	u_int mindwell, u_int maxdwell,
-	u_int nssid, const struct ieee80211_scan_ssid ssids[])
-{
-	struct ieee80211com *ic = vap->iv_ic;
-	struct ieee80211_scan_state *ss = ic->ic_scan;
-
-	IEEE80211_LOCK_ASSERT(ic);
-
-	if (ic->ic_flags & IEEE80211_F_CSAPENDING) {
-		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
-		    "%s: scan inhibited by pending channel change\n", __func__);
-	} else if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) {
-		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
-		    "%s: %s scan, duration %u mindwell %u maxdwell %u, desired mode %s, %s%s%s%s%s%s\n"
-		    , __func__
-		    , flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"
-		    , duration, mindwell, maxdwell
-		    , ieee80211_phymode_name[vap->iv_des_mode]
-		    , flags & IEEE80211_SCAN_FLUSH ? "flush" : "append"
-		    , flags & IEEE80211_SCAN_NOPICK ? ", nopick" : ""
-		    , flags & IEEE80211_SCAN_NOJOIN ? ", nojoin" : ""
-		    , flags & IEEE80211_SCAN_NOBCAST ? ", nobcast" : ""
-		    , flags & IEEE80211_SCAN_PICK1ST ? ", pick1st" : ""
-		    , flags & IEEE80211_SCAN_ONCE ? ", once" : ""
-		);
-
-		ieee80211_scan_update_locked(vap, scan);
-		if (ss->ss_ops != NULL) {
-			if ((flags & IEEE80211_SCAN_NOSSID) == 0)
-				ieee80211_scan_copy_ssid(vap, ss, nssid, ssids);
-
-			/* NB: top 4 bits for internal use */
-			ss->ss_flags = flags & 0xfff;
-			if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
-				vap->iv_stats.is_scan_active++;
-			else
-				vap->iv_stats.is_scan_passive++;
-			if (flags & IEEE80211_SCAN_FLUSH)
-				ss->ss_ops->scan_flush(ss);
-			if (flags & IEEE80211_SCAN_BGSCAN)
-				ic->ic_flags_ext |= IEEE80211_FEXT_BGSCAN;
-
-			/* Set duration for this particular scan */
-			ieee80211_swscan_set_scan_duration(vap, duration);
-
-			ss->ss_next = 0;
-			ss->ss_mindwell = mindwell;
-			ss->ss_maxdwell = maxdwell;
-			/* NB: scan_start must be before the scan runtask */
-			ss->ss_ops->scan_start(ss, vap);
-#ifdef IEEE80211_DEBUG
-			if (ieee80211_msg_scan(vap))
-				ieee80211_scan_dump(ss);
-#endif /* IEEE80211_DEBUG */
-			ic->ic_flags |= IEEE80211_F_SCAN;
-
-			/* Start scan task */
-			ieee80211_swscan_run_scan_task(vap);
-		}
-		return 1;
-	} else {
-		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
-		    "%s: %s scan already in progress\n", __func__,
-		    ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive");
-	}
-	return 0;
-}
-
-/*
- * Start a scan unless one is already going.
- */
-int
 ieee80211_start_scan(struct ieee80211vap *vap, int flags,
 	u_int duration, u_int mindwell, u_int maxdwell,
 	u_int nssid, const struct ieee80211_scan_ssid ssids[])

Modified: head/sys/net80211/ieee80211_scan.h
==============================================================================
--- head/sys/net80211/ieee80211_scan.h	Sun May 10 06:57:53 2015	(r282704)
+++ head/sys/net80211/ieee80211_scan.h	Sun May 10 06:59:34 2015	(r282705)
@@ -307,10 +307,6 @@ void	ieee80211_scan_copy_ssid(struct iee
 void	ieee80211_scan_dump_probe_beacon(uint8_t subtype, int isnew,
 		const uint8_t mac[IEEE80211_ADDR_LEN],
 		const struct ieee80211_scanparams *sp, int rssi);
-int	ieee80211_start_scan_locked(const struct ieee80211_scanner *scan,
-	struct ieee80211vap *vap, int flags, u_int duration,
-	u_int mindwell, u_int maxdwell,
-	u_int nssid, const struct ieee80211_scan_ssid ssids[]);
 void	ieee80211_scan_dump(struct ieee80211_scan_state *ss);
 
 #endif /* _NET80211_IEEE80211_SCAN_H_ */

Modified: head/sys/net80211/ieee80211_scan_sw.c
==============================================================================
--- head/sys/net80211/ieee80211_scan_sw.c	Sun May 10 06:57:53 2015	(r282704)
+++ head/sys/net80211/ieee80211_scan_sw.c	Sun May 10 06:59:34 2015	(r282705)
@@ -211,6 +211,81 @@ ieee80211_swscan_run_scan_task(struct ie
 
 /*
  * Start a scan unless one is already going.
+ */
+static int
+ieee80211_swscan_start_scan_locked(const struct ieee80211_scanner *scan,
+	struct ieee80211vap *vap, int flags, u_int duration,
+	u_int mindwell, u_int maxdwell,
+	u_int nssid, const struct ieee80211_scan_ssid ssids[])
+{
+	struct ieee80211com *ic = vap->iv_ic;
+	struct ieee80211_scan_state *ss = ic->ic_scan;
+
+	IEEE80211_LOCK_ASSERT(ic);
+
+	if (ic->ic_flags & IEEE80211_F_CSAPENDING) {
+		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
+		    "%s: scan inhibited by pending channel change\n", __func__);
+	} else if ((ic->ic_flags & IEEE80211_F_SCAN) == 0) {
+		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
+		    "%s: %s scan, duration %u mindwell %u maxdwell %u, desired mode %s, %s%s%s%s%s%s\n"
+		    , __func__
+		    , flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive"
+		    , duration, mindwell, maxdwell
+		    , ieee80211_phymode_name[vap->iv_des_mode]
+		    , flags & IEEE80211_SCAN_FLUSH ? "flush" : "append"
+		    , flags & IEEE80211_SCAN_NOPICK ? ", nopick" : ""
+		    , flags & IEEE80211_SCAN_NOJOIN ? ", nojoin" : ""
+		    , flags & IEEE80211_SCAN_NOBCAST ? ", nobcast" : ""
+		    , flags & IEEE80211_SCAN_PICK1ST ? ", pick1st" : ""
+		    , flags & IEEE80211_SCAN_ONCE ? ", once" : ""
+		);
+
+		ieee80211_scan_update_locked(vap, scan);
+		if (ss->ss_ops != NULL) {
+			if ((flags & IEEE80211_SCAN_NOSSID) == 0)
+				ieee80211_scan_copy_ssid(vap, ss, nssid, ssids);
+
+			/* NB: top 4 bits for internal use */
+			ss->ss_flags = flags & 0xfff;
+			if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
+				vap->iv_stats.is_scan_active++;
+			else
+				vap->iv_stats.is_scan_passive++;
+			if (flags & IEEE80211_SCAN_FLUSH)
+				ss->ss_ops->scan_flush(ss);
+			if (flags & IEEE80211_SCAN_BGSCAN)
+				ic->ic_flags_ext |= IEEE80211_FEXT_BGSCAN;
+
+			/* Set duration for this particular scan */
+			ieee80211_swscan_set_scan_duration(vap, duration);
+
+			ss->ss_next = 0;
+			ss->ss_mindwell = mindwell;
+			ss->ss_maxdwell = maxdwell;
+			/* NB: scan_start must be before the scan runtask */
+			ss->ss_ops->scan_start(ss, vap);
+#ifdef IEEE80211_DEBUG
+			if (ieee80211_msg_scan(vap))
+				ieee80211_scan_dump(ss);
+#endif /* IEEE80211_DEBUG */
+			ic->ic_flags |= IEEE80211_F_SCAN;
+
+			/* Start scan task */
+			ieee80211_swscan_run_scan_task(vap);
+		}
+		return 1;
+	} else {
+		IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
+		    "%s: %s scan already in progress\n", __func__,
+		    ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive");
+	}
+	return 0;
+}
+
+
+/*
+ * Start a scan unless one is already going.
  *
  * Called without the comlock held; grab the comlock as appropriate.
  */
@@ -226,7 +301,7 @@ ieee80211_swscan_start_scan(const struct
 	IEEE80211_UNLOCK_ASSERT(ic);
 
 	IEEE80211_LOCK(ic);
-	result = ieee80211_start_scan_locked(scan, vap, flags, duration,
+	result = ieee80211_swscan_start_scan_locked(scan, vap, flags, duration,
 	    mindwell, maxdwell, nssid, ssids);
 	IEEE80211_UNLOCK(ic);
 
@@ -289,7 +364,7 @@ ieee80211_swscan_check_scan(const struct
 			}
 		}
 	}
-	result = ieee80211_start_scan_locked(scan, vap, flags, duration,
+	result = ieee80211_swscan_start_scan_locked(scan, vap, flags, duration,
 	    mindwell, maxdwell, nssid, ssids);
 
 	return result;


More information about the svn-src-head mailing list