aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-08-27 04:25:27 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-29 15:33:02 -0400
commit059ee09b99942bf64f4075196a7a2a992e64193d (patch)
treee1fe6498724dece130c1df5c7e02879bcb3b18b1 /drivers/net
parenta7be039d347743c289b7280d5de82abf7bbdf1d8 (diff)
ath9k: fix regression in sending aggregated packets
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>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 5e2982938ffc..ac393a6dbe77 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -582,7 +582,10 @@ static bool ath_lookup_legacy(struct ath_buf *bf)
582 tx_info = IEEE80211_SKB_CB(skb); 582 tx_info = IEEE80211_SKB_CB(skb);
583 rates = tx_info->control.rates; 583 rates = tx_info->control.rates;
584 584
585 for (i = 3; i >= 0; i--) { 585 for (i = 0; i < 4; i++) {
586 if (!rates[i].count || rates[i].idx < 0)
587 break;
588
586 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) 589 if (!(rates[i].flags & IEEE80211_TX_RC_MCS))
587 return true; 590 return true;
588 } 591 }