summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-02-22 16:16:07 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-15 10:20:14 +0800
commit4a6d105fb27769361a81edf55432f6a11ce8ba9c (patch)
tree252f5f8d34ccc1bff9bc99d40e65ef21cdab3208
parentdf7db05561f67f742b2efa9a5fff6e7b9c243e2d (diff)
downloadlinux-4a6d105fb27769361a81edf55432f6a11ce8ba9c.tar.gz
linux-4a6d105fb27769361a81edf55432f6a11ce8ba9c.tar.bz2
linux-4a6d105fb27769361a81edf55432f6a11ce8ba9c.zip
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>
-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 ddf71c648cab..ad37b4e58c2f 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;
}