summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorErik Stromdahl <erik.stromdahl@gmail.com>2019-06-17 22:01:39 +0200
committerJohannes Berg <johannes.berg@intel.com>2019-07-26 13:23:19 +0200
commitfb0e76abe34bd67756dbdf4d5982b7dc54afa1d8 (patch)
treed8d1927308f0e6e6452412144313e4b58c43da71 /net
parenta11e2f85481c2f08b55c06467445602a2330ee5b (diff)
downloadlinux-fb0e76abe34bd67756dbdf4d5982b7dc54afa1d8.tar.gz
linux-fb0e76abe34bd67756dbdf4d5982b7dc54afa1d8.tar.bz2
linux-fb0e76abe34bd67756dbdf4d5982b7dc54afa1d8.zip
mac80211: add tx dequeue function for process context
Since ieee80211_tx_dequeue() must not be called with softirqs enabled (i.e. from process context without proper disable of bottom halves), we add a wrapper that disables bottom halves before calling ieee80211_tx_dequeue() The new function is named ieee80211_tx_dequeue_ni() just as all other from-process-context versions found in mac80211. The documentation of ieee80211_tx_dequeue() is also updated so it mentions that the function should not be called from process context. Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com> Link: https://lore.kernel.org/r/20190617200140.6189-1-erik.stromdahl@gmail.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/tx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index f13eb2f61ccf..fb8870d9eba3 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3546,6 +3546,8 @@ struct sk_buff *ieee80211_tx_dequeue(struct ieee80211_hw *hw,
ieee80211_tx_result r;
struct ieee80211_vif *vif = txq->vif;
+ WARN_ON_ONCE(softirq_count() == 0);
+
begin:
spin_lock_bh(&fq->lock);