summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2004-04-02 20:22:25 +0000
committersam <sam@FreeBSD.org>2004-04-02 20:22:25 +0000
commit4cfcf755a18406d3e894ed17bd06f74068e8d6de (patch)
tree7b2b5be5e837da574ccbe991e87a57ef0fe15127 /sys/net80211
parentd007eaede6b833212506266f79f73aaeca14bbd0 (diff)
downloadFreeBSD-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.c11
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) {
/*
OpenPOWER on IntegriCloud