27 lines
1,017 B
Diff
27 lines
1,017 B
Diff
|
From: Felix Fietkau <nbd@openwrt.org>
|
||
|
Date: Wed, 24 Feb 2016 12:03:13 +0100
|
||
|
Subject: [PATCH] mac80211: minstrel_ht: fix a logic error in RTS/CTS handling
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
RTS/CTS needs to be enabled if the rate is a fallback rate *or* if it's
|
||
|
a dual-stream rate and the sta is in dynamic SMPS mode.
|
||
|
|
||
|
Fixes: a3ebb4e1b763 ("mac80211: minstrel_ht: handle peers in dynamic SMPS")
|
||
|
Reported-by: Matías Richart <mrichart@fing.edu.uy>
|
||
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||
|
---
|
||
|
|
||
|
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||
|
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||
|
@@ -872,7 +872,7 @@ minstrel_ht_set_rate(struct minstrel_pri
|
||
|
* - if station is in dynamic SMPS (and streams > 1)
|
||
|
* - for fallback rates, to increase chances of getting through
|
||
|
*/
|
||
|
- if (offset > 0 &&
|
||
|
+ if (offset > 0 ||
|
||
|
(mi->sta->smps_mode == IEEE80211_SMPS_DYNAMIC &&
|
||
|
group->streams > 1)) {
|
||
|
ratetbl->rate[offset].count = ratetbl->rate[offset].count_rts;
|