2016-02-24 19:24:22

by Felix Fietkau

[permalink] [raw]
Subject: [PATCH] mac80211: minstrel_ht: fix a logic error in RTS/CTS handling

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]>
---
net/mac80211/rc80211_minstrel_ht.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index 702328b..5e3dc7e 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -872,7 +872,7 @@ minstrel_ht_set_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
* - 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;
--
2.2.2



2016-03-01 14:49:46

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: minstrel_ht: fix a logic error in RTS/CTS handling

On Wed, 2016-02-24 at 12:07 +0100, Felix Fietkau wrote:
> 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.
>
Applied, thanks.

johannes