aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-04-20 12:27:18 +0200
committerFelix Fietkau <nbd@nbd.name>2022-05-13 09:39:34 +0200
commitf5874fc6f54e58da8afb01092286f5e18a54c55d (patch)
treee9f49e1c73807e39a7fee8c1a524e316982b060d
parentmt76: mt7921: Add AP mode support (diff)
downloadwireguard-linux-f5874fc6f54e58da8afb01092286f5e18a54c55d.tar.xz
wireguard-linux-f5874fc6f54e58da8afb01092286f5e18a54c55d.zip
mt76: fix rx reordering with non explicit / psmp ack policy
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>
-rw-r--r--drivers/net/wireless/mediatek/mt76/agg-rx.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/agg-rx.c b/drivers/net/wireless/mediatek/mt76/agg-rx.c
index 72622220051b..9b8e1dfbc814 100644
--- a/drivers/net/wireless/mediatek/mt76/agg-rx.c
+++ b/drivers/net/wireless/mediatek/mt76/agg-rx.c
@@ -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]);