diff options
author | sam <sam@FreeBSD.org> | 2004-04-02 20:22:25 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2004-04-02 20:22:25 +0000 |
commit | 4cfcf755a18406d3e894ed17bd06f74068e8d6de (patch) | |
tree | 7b2b5be5e837da574ccbe991e87a57ef0fe15127 /sys/net80211 | |
parent | d007eaede6b833212506266f79f73aaeca14bbd0 (diff) | |
download | FreeBSD-src-4cfcf755a18406d3e894ed17bd06f74068e8d6de.zip FreeBSD-src-4cfcf755a18406d3e894ed17bd06f74068e8d6de.tar.gz |
insure basic rate bit is set in derived rate set; this
works around a protocol/firmware problem with some versions found
in hermes/prism cards
Diffstat (limited to 'sys/net80211')
-rw-r--r-- | sys/net80211/ieee80211_proto.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_proto.c b/sys/net80211/ieee80211_proto.c index 8305029..899fded 100644 --- a/sys/net80211/ieee80211_proto.c +++ b/sys/net80211/ieee80211_proto.c @@ -256,8 +256,17 @@ ieee80211_fix_rate(struct ieee80211com *ic, struct ieee80211_node *ni, int flags * Check against supported rates. */ for (j = 0; j < srs->rs_nrates; j++) { - if (r == RV(srs->rs_rates[j])) + if (r == RV(srs->rs_rates[j])) { + /* + * Overwrite with the supported rate + * value so any basic rate bit is set. + * This insures that response we send + * to stations have the necessary basic + * rate bit set. + */ + nrs->rs_rates[i] = srs->rs_rates[j]; break; + } } if (j == srs->rs_nrates) { /* |