diff options
author | 2016-12-08 17:25:28 +0000 | |
---|---|---|
committer | 2016-12-08 17:25:28 +0000 | |
commit | 0502b803cafc01b4a154868d91c70abb7efa8d6b (patch) | |
tree | ce2a4407c7e78f3da1c32c0f0e3e8a9e461ce799 | |
parent | iwm(4) was stripping some bits from the MCS index value before passing (diff) | |
download | wireguard-openbsd-0502b803cafc01b4a154868d91c70abb7efa8d6b.tar.xz wireguard-openbsd-0502b803cafc01b4a154868d91c70abb7efa8d6b.zip |
Fix mira's next intra-rate calculations for MCS >= 8.
ok tb@ phessler@
-rw-r--r-- | sys/net80211/ieee80211_mira.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/net80211/ieee80211_mira.c b/sys/net80211/ieee80211_mira.c index 45e8944ab50..0568ca5b206 100644 --- a/sys/net80211/ieee80211_mira.c +++ b/sys/net80211/ieee80211_mira.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee80211_mira.c,v 1.2 2016/12/06 02:41:28 jsg Exp $ */ +/* $OpenBSD: ieee80211_mira.c,v 1.3 2016/12/08 17:25:28 stsp Exp $ */ /* * Copyright (c) 2016 Stefan Sperling <stsp@openbsd.org> @@ -518,8 +518,8 @@ ieee80211_mira_next_lower_intra_rate(struct ieee80211_mira_node *mn, for (i = rs->nrates - 1; i >= 0; i--) { if ((mn->valid_rates & (1 << (i + rs->min_mcs))) == 0) continue; - if (i < ni->ni_txmcs) { - next = i; + if (i + rs->min_mcs < ni->ni_txmcs) { + next = i + rs->min_mcs; break; } } @@ -542,8 +542,8 @@ ieee80211_mira_next_intra_rate(struct ieee80211_mira_node *mn, for (i = 0; i < rs->nrates; i++) { if ((mn->valid_rates & (1 << (i + rs->min_mcs))) == 0) continue; - if (i > ni->ni_txmcs) { - next = i; + if (i + rs->min_mcs > ni->ni_txmcs) { + next = i + rs->min_mcs; break; } } |