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