]> git.itanic.dy.fi Git - linux-stable/commitdiff
mac80211: don't handle filtered frames within a BA session
authorFelix Fietkau <nbd@nbd.name>
Wed, 22 Feb 2017 15:16:07 +0000 (16:16 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Mar 2017 02:02:48 +0000 (10:02 +0800)
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>
net/mac80211/status.c

index ddf71c648cab008baaff8ed430b9b222410f8ce1..ad37b4e58c2f864a973eca29bc8b78667a1079ac 100644 (file)
@@ -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;
        }