mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 00:11:13 +00:00
ad51e09fd1
Signed-off-by: Felix Fietkau <nbd@nbd.name>
36 lines
827 B
Diff
36 lines
827 B
Diff
From: Bob Copeland <me@bobcopeland.com>
|
|
Date: Wed, 12 Oct 2016 08:24:54 -0400
|
|
Subject: [PATCH] mac80211: fix up mismerge of ieee80211_tx_dequeue
|
|
|
|
Looks like this spinlock wound up on the wrong side of the
|
|
linearize, and I also lost the part that re-enters the loop.
|
|
Fix up to match mac80211-next.
|
|
|
|
Signed-off-by: Bob Copeland <me@bobcopeland.com>
|
|
---
|
|
|
|
--- a/net/mac80211/tx.c
|
|
+++ b/net/mac80211/tx.c
|
|
@@ -3457,17 +3457,17 @@ begin:
|
|
skb_queue_splice_tail(&tx.skbs, &txqi->frags);
|
|
}
|
|
|
|
-out:
|
|
- spin_unlock_bh(&fq->lock);
|
|
-
|
|
if (skb && skb_has_frag_list(skb) &&
|
|
!ieee80211_hw_check(&local->hw, TX_FRAG_LIST)) {
|
|
if (skb_linearize(skb)) {
|
|
ieee80211_free_txskb(&local->hw, skb);
|
|
- return NULL;
|
|
+ goto begin;
|
|
}
|
|
}
|
|
|
|
+out:
|
|
+ spin_unlock_bh(&fq->lock);
|
|
+
|
|
return skb;
|
|
}
|
|
EXPORT_SYMBOL(ieee80211_tx_dequeue);
|