From 9edff13abd97e233d7242eb0136c3ff25c58e75f Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Wed, 22 Feb 2017 22:51:04 +0100
Subject: [PATCH] mac80211: disable potentially harmful PS software retry for
 A-MPDU sessions

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 ...andle-filtered-frames-within-a-BA-se.patch | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 package/kernel/mac80211/patches/322-mac80211-don-t-handle-filtered-frames-within-a-BA-se.patch

diff --git a/package/kernel/mac80211/patches/322-mac80211-don-t-handle-filtered-frames-within-a-BA-se.patch b/package/kernel/mac80211/patches/322-mac80211-don-t-handle-filtered-frames-within-a-BA-se.patch
new file mode 100644
index 0000000000..66e1bfb4c1
--- /dev/null
+++ b/package/kernel/mac80211/patches/322-mac80211-don-t-handle-filtered-frames-within-a-BA-se.patch
@@ -0,0 +1,28 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Wed, 22 Feb 2017 16:13:17 +0100
+Subject: [PATCH] mac80211: don't handle filtered frames within a BA session
+
+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.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/status.c
++++ b/net/mac80211/status.c
+@@ -51,7 +51,8 @@ static void ieee80211_handle_filtered_fr
+ 	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;
+ 	}
-- 
GitLab