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)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 27 Feb 2017 13:06:00 +0000 (14:06 +0100)
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>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/status.c

index a3af6e1bfd984d3548b3f48dad508028b7958bae..05ccd55b5d83d4737347be7c9b9ada5cbb43a89f 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;
        }