aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch55
1 files changed, 0 insertions, 55 deletions
diff --git a/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch b/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch
deleted file mode 100644
index 3127c86822..0000000000
--- a/package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Sat, 16 Mar 2019 18:00:12 +0100
-Subject: [PATCH] mac80211: run late dequeue late tx handlers without
- holding fq->lock
-
-Reduces lock contention on enqueue/dequeue of iTXQ packets
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -3507,6 +3507,7 @@ struct sk_buff *ieee80211_tx_dequeue(str
- ieee80211_tx_result r;
- struct ieee80211_vif *vif = txq->vif;
-
-+begin:
- spin_lock_bh(&fq->lock);
-
- if (test_bit(IEEE80211_TXQ_STOP, &txqi->flags) ||
-@@ -3523,11 +3524,12 @@ struct sk_buff *ieee80211_tx_dequeue(str
- if (skb)
- goto out;
-
--begin:
- skb = fq_tin_dequeue(fq, tin, fq_tin_dequeue_func);
- if (!skb)
- goto out;
-
-+ spin_unlock_bh(&fq->lock);
-+
- hdr = (struct ieee80211_hdr *)skb->data;
- info = IEEE80211_SKB_CB(skb);
-
-@@ -3573,8 +3575,11 @@ begin:
-
- skb = __skb_dequeue(&tx.skbs);
-
-- if (!skb_queue_empty(&tx.skbs))
-+ if (!skb_queue_empty(&tx.skbs)) {
-+ spin_lock_bh(&fq->lock);
- skb_queue_splice_tail(&tx.skbs, &txqi->frags);
-+ spin_unlock_bh(&fq->lock);
-+ }
- }
-
- if (skb && skb_has_frag_list(skb) &&
-@@ -3613,6 +3618,7 @@ begin:
- }
-
- IEEE80211_SKB_CB(skb)->control.vif = vif;
-+ return skb;
-
- out:
- spin_unlock_bh(&fq->lock);