PERFORCE change 43903 for review

Sam Leffler sam at FreeBSD.org
Sat Dec 13 10:39:18 PST 2003


http://perforce.freebsd.org/chv.cgi?CH=43903

Change 43903 by sam at sam_ebb on 2003/12/13 10:38:26

	only expect a negotiated rate set when operating in station mode;
	this corrects a problem where marking the interface up in monitor
	mode w/o first operating in another mode would cause an assertion
	failure
	
	note this may be suboptimal for adhoc mode; we may want to default
	to a base rate other than the lowest

Affected files ...

.. //depot/projects/netperf/sys/dev/ath/if_ath.c#48 edit

Differences ...

==== //depot/projects/netperf/sys/dev/ath/if_ath.c#48 (text+ko) ====

@@ -2774,7 +2774,21 @@
 	struct ieee80211com *ic = &sc->sc_ic;
 	struct ieee80211_node *ni;
 
-	if (ic->ic_opmode != IEEE80211_M_STA) {
+	if (ic->ic_opmode == IEEE80211_M_STA) {
+		/*
+		 * Reset local xmit state; this is really only
+		 * meaningful when operating in station mode.
+		 */
+		ni = ic->ic_bss;
+		if (state == IEEE80211_S_RUN) {
+			/* start with highest negotiated rate */
+			KASSERT(ni->ni_rates.rs_nrates > 0,
+				("transition to RUN state w/ no rates!"));
+			ath_rate_update(sc, ni, ni->ni_rates.rs_nrates - 1);
+		} else {
+			ath_rate_update(sc, ni, 0);
+		}
+	} else {
 		/*
 		 * When operating as a station the node table holds
 		 * the AP's that were discovered during scanning.
@@ -2783,19 +2797,7 @@
 		 */
 		TAILQ_FOREACH(ni, &ic->ic_node, ni_list)
 			ath_rate_update(sc, ni, 0);	/* use lowest rate */
-	}
-	/*
-	 * Reset local xmit state; this is really only meaningful
-	 * when operating in station or adhoc mode.
-	 */
-	ni = ic->ic_bss;
-	if (state == IEEE80211_S_RUN) {
-		/* start with highest negotiated rate */
-		KASSERT(ni->ni_rates.rs_nrates > 0,
-			("transition to RUN state w/ no rates!"));
-		ath_rate_update(sc, ni, ni->ni_rates.rs_nrates - 1);
-	} else {
-		ath_rate_update(sc, ni, 0);		/* use lowest rate */
+		ath_rate_update(sc, ic->ic_bss, 0);
 	}
 }
 


More information about the p4-projects mailing list