From: Bob Copeland 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 --- --- 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);