--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
-@@ -355,10 +355,12 @@ minstrel_downgrade_rate(struct minstrel_
+@@ -357,10 +357,12 @@ minstrel_downgrade_rate(struct minstrel_
}
static void
u16 tid;
if (unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
-@@ -374,6 +376,12 @@ minstrel_aggr_check(struct minstrel_priv
+@@ -376,6 +378,12 @@ minstrel_aggr_check(struct minstrel_priv
if (skb_get_queue_mapping(skb) == IEEE80211_AC_VO)
return;
ieee80211_start_tx_ba_session(pubsta, tid, 5000);
}
-@@ -452,7 +460,7 @@ minstrel_ht_tx_status(void *priv, struct
-
+@@ -455,7 +463,7 @@ minstrel_ht_tx_status(void *priv, struct
if (time_after(jiffies, mi->stats_update + (mp->update_interval / 2 * HZ) / 1000)) {
minstrel_ht_update_stats(mp, mi);
-- minstrel_aggr_check(mp, sta, skb);
-+ minstrel_aggr_check(mp, mi, sta, skb);
+ if (!(info->flags & IEEE80211_TX_CTL_AMPDU))
+- minstrel_aggr_check(mp, sta, skb);
++ minstrel_aggr_check(mp, mi, sta, skb);
}
}