浏览代码

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>
Felix Fietkau 14 年之前
父节点
当前提交
059ee09b99
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      drivers/net/wireless/ath/ath9k/xmit.c

+ 4 - 1
drivers/net/wireless/ath/ath9k/xmit.c

@@ -582,7 +582,10 @@ static bool ath_lookup_legacy(struct ath_buf *bf)
 	tx_info = IEEE80211_SKB_CB(skb);
 	tx_info = IEEE80211_SKB_CB(skb);
 	rates = tx_info->control.rates;
 	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))
 		if (!(rates[i].flags & IEEE80211_TX_RC_MCS))
 			return true;
 			return true;
 	}
 	}