]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mac80211: fix honouring rate flags in low-rate transmit
authorAndrei Otcheretianski <andrei.otcheretianski@intel.com>
Mon, 14 Oct 2013 08:46:55 +0000 (10:46 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 15 Oct 2013 13:16:12 +0000 (15:16 +0200)
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>
net/mac80211/rate.c

index e126605cec66baf82aadb835856110d74105795f..7f7ce1173bf67671cfb01d756c466c7cd7a6cabe 100644 (file)
@@ -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;