summaryrefslogtreecommitdiff
path: root/net/mac80211
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-02-22 15:16:07 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-15 02:02:48 (GMT)
commit39813849996f96a764df9b993ba726e995aa1dda (patch)
tree5b72a26d8075c283429abba710154fc59d2a54b9 /net/mac80211
parent42e7f3771429d40b5307f0db0ecdba61e79272ac (diff)
downloadlinux-39813849996f96a764df9b993ba726e995aa1dda.tar.xz
mac80211: don't handle filtered frames within a BA session
commit 890030d3c425f49abaa4acf60e20f288b599f980 upstream. When running a BA session, the driver (or the hardware) already takes care of retransmitting failed frames, since it has to keep the receiver reorder window in sync. Adding another layer of retransmit around that does not improve anything. In fact, it can only lead to some strong reordering with huge latency. Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/status.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index ddf71c6..ad37b4e 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -51,7 +51,8 @@ static void ieee80211_handle_filtered_frame(struct ieee80211_local *local,
struct ieee80211_hdr *hdr = (void *)skb->data;
int ac;
- if (info->flags & IEEE80211_TX_CTL_NO_PS_BUFFER) {
+ if (info->flags & (IEEE80211_TX_CTL_NO_PS_BUFFER |
+ IEEE80211_TX_CTL_AMPDU)) {
ieee80211_free_txskb(&local->hw, skb);
return;
}