aboutsummaryrefslogtreecommitdiff
path: root/net/mac80211
diff options
context:
space:
mode:
authorGravatar Christian Lamparter <chunkeey@googlemail.com> 2011-09-03 09:06:20 +0200
committerGravatar John W. Linville <linville@tuxdriver.com> 2011-09-14 13:56:23 -0400
commit64ed5cf01345da60b5fd9f27e22e5e2e2ffb0a33 (patch)
treea51db28e065d693ea3323612e2e419a10ceb81ed /net/mac80211
parentath9k: implement .get_antenna and .set_antenna (diff)
downloadlinux-64ed5cf01345da60b5fd9f27e22e5e2e2ffb0a33.tar.gz
linux-64ed5cf01345da60b5fd9f27e22e5e2e2ffb0a33.tar.bz2
linux-64ed5cf01345da60b5fd9f27e22e5e2e2ffb0a33.zip
minstrel_ht: fix Open BA session request floods
Minstrel HT tries very hard to establish a BA session with each peer once there's some data on the way. However the stack does not inform minstrel if an aggregation session is already in place, so it keeps trying and wastes good cycles in the tx status path. [ 8149.946393] Open BA session requested for $AP tid 0 [ 8150.048765] Open BA session requested for $AP tid 0 [ 8150.174509] Open BA session requested for $AP tid 0 [ 8150.274376] Open BA session requested for $AP tid 0 ... Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rc80211_minstrel_ht.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index 21588386a302..e19249b0f971 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -452,7 +452,8 @@ minstrel_ht_tx_status(void *priv, struct ieee80211_supported_band *sband,
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);
+ if (!(info->flags & IEEE80211_TX_CTL_AMPDU))
+ minstrel_aggr_check(mp, sta, skb);
}
}