svn commit: r186879 - head/sys/dev/ath/ath_rate/sample
Sam Leffler
sam at FreeBSD.org
Wed Jan 7 15:30:27 PST 2009
Author: sam
Date: Wed Jan 7 23:30:26 2009
New Revision: 186879
URL: http://svn.freebsd.org/changeset/base/186879
Log:
correct fixed rate handling; the rixmap was changed a while back
to be indexed by the ieee rate code
Modified:
head/sys/dev/ath/ath_rate/sample/sample.c
Modified: head/sys/dev/ath/ath_rate/sample/sample.c
==============================================================================
--- head/sys/dev/ath/ath_rate/sample/sample.c Wed Jan 7 21:52:47 2009 (r186878)
+++ head/sys/dev/ath/ath_rate/sample/sample.c Wed Jan 7 23:30:26 2009 (r186879)
@@ -754,23 +754,18 @@ ath_rate_ctl_reset(struct ath_softc *sc,
sn->static_rix = -1;
if (tp != NULL && tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
/*
- * A fixed rate is to be used; ic_fixed_rate is the
- * IEEE code for this rate (sans basic bit). Convert this
- * to the index into the negotiated rate set for
- * the node.
+ * A fixed rate is to be used; ucastrate is the IEEE code
+ * for this rate (sans basic bit). Check this against the
+ * negotiated rate set for the node. Note the fixed rate
+ * may not be available for various reasons so we only
+ * setup the static rate index if the lookup is successful.
+ * XXX handle MCS
*/
- /* NB: the rate set is assumed sorted */
- srate = ni->ni_rates.rs_nrates - 1;
- for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--)
- ;
- /*
- * The fixed rate may not be available due to races
- * and mode settings. Also orphaned nodes created in
- * adhoc mode may not have any rate set so this lookup
- * can fail.
- */
- if (srate >= 0)
- sn->static_rix = sc->sc_rixmap[srate];
+ for (srate = ni->ni_rates.rs_nrates - 1; srate >= 0; srate--)
+ if (RATE(srate) == tp->ucastrate) {
+ sn->static_rix = sc->sc_rixmap[tp->ucastrate];
+ break;
+ }
}
/*
More information about the svn-src-all
mailing list