All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 1/6] mac80211: agg-tx: call drv_wake_tx_queue in proper context
@ 2017-06-21 23:50 Johannes Berg
  2017-06-21 23:50 ` [RFC 2/6] mac80211: fix VLAN handling with TXQs Johannes Berg
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Johannes Berg @ 2017-06-21 23:50 UTC (permalink / raw)
  To: linux-wireless; +Cc: nbd, Johannes Berg

From: Johannes Berg <johannes.berg@intel.com>

Since drv_wake_tx_queue() is normally called in the TX path, which
is already in an RCU critical section, we should call it the same
way in the aggregation code path, so if the driver expects to be
able to use RCU, it'll already be protected without having to enter
a nested critical section.

Additionally, disable soft-IRQs, since not doing so could cause
issues in a driver that relies on them already being disabled like
in the other path.

Fixes: ba8c3d6f16a1 ("mac80211: add an intermediate software queue implementation")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 net/mac80211/agg-tx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index cbd48762256c..4f9dd3e59091 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -226,7 +226,11 @@ ieee80211_agg_start_txq(struct sta_info *sta, int tid, bool enable)
 		clear_bit(IEEE80211_TXQ_AMPDU, &txqi->flags);
 
 	clear_bit(IEEE80211_TXQ_STOP, &txqi->flags);
+	local_bh_disable();
+	rcu_read_lock();
 	drv_wake_tx_queue(sta->sdata->local, txqi);
+	rcu_read_unlock();
+	local_bh_enable();
 }
 
 /*
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-06-26 14:27 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-21 23:50 [RFC 1/6] mac80211: agg-tx: call drv_wake_tx_queue in proper context Johannes Berg
2017-06-21 23:50 ` [RFC 2/6] mac80211: fix VLAN handling with TXQs Johannes Berg
2017-06-21 23:50 ` [RFC 3/6] mac80211: add a TXQ for other powersave-buffered frames Johannes Berg
2017-06-22  0:02   ` Ben Greear
2017-06-22  6:24     ` Johannes Berg
2017-06-22 14:43       ` Ben Greear
2017-06-23  9:21         ` Johannes Berg
2017-06-23 12:27           ` Ben Greear
2017-06-26 11:00             ` Johannes Berg
2017-06-26 14:15               ` Ben Greear
2017-06-26 14:27                 ` Johannes Berg
2017-06-21 23:50 ` [RFC 4/6] mac80211: don't put null-data frames on the normal TXQ Johannes Berg
2017-06-21 23:50 ` [RFC 5/6] mac80211: add a general fallback TXQ Johannes Berg
2017-06-22  8:48   ` Johannes Berg
2017-06-21 23:50 ` [RFC 6/6] mac80211: always go through txqs Johannes Berg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.