ath9k: fix regression in sending aggregated packets
authorFelix Fietkau <nbd@openwrt.org>
Sat, 27 Aug 2011 08:25:27 +0000 (10:25 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 29 Aug 2011 19:33:02 +0000 (15:33 -0400)
The recent commit "ath9k: Send legacy rated frames as unaggregated"
introduced a check to ensure that packets with non-MCS rates set in
the rate series will not be aggregated. However, it failed to check
if the rate series is valid before testing the flags, thus breaking
aggregation for normal MCS-only packets if the last series is unset.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/xmit.c

index 5e2982938ffc3b9e5bc95b803367dfe6141b100e..ac393a6dbe776c29bad426f0ca8e46acbdf4d1dd 100644 (file)
@@ -582,7 +582,10 @@ static bool ath_lookup_legacy(struct ath_buf *bf)
        tx_info = IEEE80211_SKB_CB(skb);
        rates = tx_info->control.rates;
 
-       for (i = 3; i >= 0; i--) {
+       for (i = 0; i < 4; i++) {
+               if (!rates[i].count || rates[i].idx < 0)
+                       break;
+
                if (!(rates[i].flags & IEEE80211_TX_RC_MCS))
                        return true;
        }