mac80211: fix an RTS/CTS issue in minstrel_ht

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48759
owl
Felix Fietkau 2016-02-25 09:24:13 +00:00
parent 2f7dcdec58
commit 3064f16863
1 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,26 @@
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;