mt76: fix rx reordering with non explicit / psmp ack policy
authorFelix Fietkau <nbd@nbd.name>
Wed, 20 Apr 2022 10:27:18 +0000 (12:27 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 13 May 2022 07:39:34 +0000 (09:39 +0200)
When the QoS ack policy was set to non explicit / psmp ack, frames are treated
as not being part of a BA session, which causes extra latency on reordering.
Fix this by only bypassing reordering for packets with no-ack policy

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/agg-rx.c

index 7262222..9b8e1df 100644 (file)
@@ -169,8 +169,7 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
 
        /* not part of a BA session */
        ackp = status->qos_ctl & IEEE80211_QOS_CTL_ACK_POLICY_MASK;
-       if (ackp != IEEE80211_QOS_CTL_ACK_POLICY_BLOCKACK &&
-           ackp != IEEE80211_QOS_CTL_ACK_POLICY_NORMAL)
+       if (ackp == IEEE80211_QOS_CTL_ACK_POLICY_NOACK)
                return;
 
        tid = rcu_dereference(wcid->aggr[tidno]);