aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2021-06-17 18:10:36 +0200
committerFelix Fietkau <nbd@nbd.name>2021-06-17 18:25:35 +0200
commita603e82dd342680d584c4eb5f1b222e056379890 (patch)
treea7a37ecf03cb3de5094ff017a7604a45dcf59d13 /package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch
parentdb9784beddd01ef960833b6ad6696eb581faf605 (diff)
downloadupstream-a603e82dd342680d584c4eb5f1b222e056379890.tar.gz
upstream-a603e82dd342680d584c4eb5f1b222e056379890.tar.bz2
upstream-a603e82dd342680d584c4eb5f1b222e056379890.zip
mac80211: system hang caused by deferring calls into minstrel to dequeue
Move the aggregation check to mac80211 Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch39
1 files changed, 0 insertions, 39 deletions
diff --git a/package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch b/package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch
deleted file mode 100644
index 2fe19dfd94..0000000000
--- a/package/kernel/mac80211/patches/subsys/375-mac80211-minstrel_ht-fix-minstrel_aggr_check-for-enc.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Ryder Lee <ryder.lee@mediatek.com>
-Date: Fri, 28 May 2021 14:05:42 +0800
-Subject: [PATCH] mac80211: minstrel_ht: fix minstrel_aggr_check for encap
- offload
-
-Avoid checking ieee80211_hdr to support encap offload.
-
-Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
----
-
---- a/net/mac80211/rc80211_minstrel_ht.c
-+++ b/net/mac80211/rc80211_minstrel_ht.c
-@@ -1156,19 +1156,24 @@ static void
- minstrel_aggr_check(struct ieee80211_sta *pubsta, struct sk_buff *skb)
- {
- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
-+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
- struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
- u16 tid;
-
- if (skb_get_queue_mapping(skb) == IEEE80211_AC_VO)
- return;
-
-- if (unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
-+ if (unlikely(!pubsta->wme))
-+ return;
-+
-+ if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) &&
-+ unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
- return;
-
- if (unlikely(skb->protocol == cpu_to_be16(ETH_P_PAE)))
- return;
-
-- tid = ieee80211_get_tid(hdr);
-+ tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK;
- if (likely(sta->ampdu_mlme.tid_tx[tid]))
- return;
-