diff options
author | Erik Stromdahl <erik.stromdahl@gmail.com> | 2019-06-17 22:01:39 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2019-07-26 13:23:19 +0200 |
commit | fb0e76abe34bd67756dbdf4d5982b7dc54afa1d8 (patch) | |
tree | d8d1927308f0e6e6452412144313e4b58c43da71 /net | |
parent | a11e2f85481c2f08b55c06467445602a2330ee5b (diff) | |
download | linux-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.c | 2 |
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); |