summaryrefslogtreecommitdiff
path: root/package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch')
-rw-r--r--package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch b/package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch
new file mode 100644
index 0000000..66449ac
--- /dev/null
+++ b/package/kernel/mac80211/patches/323-mac80211-remove-bogus-skb-vif-assignment.patch
@@ -0,0 +1,29 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 4 Nov 2016 10:17:38 +0100
+Subject: [PATCH] mac80211: remove bogus skb vif assignment
+
+The call to ieee80211_txq_enqueue overwrites the vif pointer with the
+codel enqueue time, so setting it just before that call makes no sense.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -1500,7 +1500,6 @@ static bool ieee80211_queue_skb(struct i
+ struct sta_info *sta,
+ struct sk_buff *skb)
+ {
+- struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ struct fq *fq = &local->fq;
+ struct ieee80211_vif *vif;
+ struct txq_info *txqi;
+@@ -1525,8 +1524,6 @@ static bool ieee80211_queue_skb(struct i
+ if (!txqi)
+ return false;
+
+- info->control.vif = vif;
+-
+ spin_lock_bh(&fq->lock);
+ ieee80211_txq_enqueue(local, txqi, skb);
+ spin_unlock_bh(&fq->lock);