|
|
@@ -0,0 +1,26 @@
|
|
|
+From: Felix Fietkau <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
+---
|
|
|
+
|
|
|
+--- 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;
|