summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rate.c
diff options
context:
space:
mode:
authorAndrei Otcheretianski <andrei.otcheretianski@intel.com>2013-10-14 10:46:55 +0200
committerJohannes Berg <johannes.berg@intel.com>2013-10-15 15:16:12 +0200
commit1431fcb74eb5c67d3c38db5e5fe60b726c204273 (patch)
tree39e8cfe7651e2491e775b40d26e023852def93af /net/mac80211/rate.c
parentmac80211: fix crash if bitrate calculation goes wrong (diff)
downloadlinux-1431fcb74eb5c67d3c38db5e5fe60b726c204273.tar.xz
linux-1431fcb74eb5c67d3c38db5e5fe60b726c204273.zip
mac80211: fix honouring rate flags in low-rate transmit
Transmissions with the IEEE80211_TX_CTL_NO_CCK_RATE flag set (which can come from userspace) were no longer guaranteed to be transmitted with allowed rates since commit 2103dec14792b ("mac80211: select and adjust bitrates according to channel mode") due to a missing rate_flags check in that commit. The commit also introduced the need to check the 5/10 MHz flags but accidentally didn't. Fix it by adding the missing check. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rate.c')
-rw-r--r--net/mac80211/rate.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index e126605cec66..7f7ce1173bf6 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -247,6 +247,9 @@ static void __rate_control_send_low(struct ieee80211_hw *hw,
info->control.rates[0].idx = 0;
for (i = 0; i < sband->n_bitrates; i++) {
+ if ((rate_flags & sband->bitrates[i].flags) != rate_flags)
+ continue;
+
if (!rate_supported(sta, sband->band, i))
continue;