summaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-13 12:25:28 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-03-18 20:15:05 +0100
commit445ea4e83ec50668cc9ad7e5cf96d242f19165e8 (patch)
tree1b6e6c909854358c03fd0047b9f441e0095460e3 /net/mac80211/tx.c
parentmac80211: pass queue bitmap to flush operation (diff)
downloadlinux-445ea4e83ec50668cc9ad7e5cf96d242f19165e8.tar.xz
linux-445ea4e83ec50668cc9ad7e5cf96d242f19165e8.zip
mac80211: stop queues temporarily for flushing
Sometimes queues are flushed in the middle of operation, which can lead to driver issues. Stop queues temporarily, while flushing, to avoid transmitting new packets while they are being flushed. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 3fcdf2118101..2a6ae8030bd9 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -233,6 +233,7 @@ ieee80211_tx_h_dynamic_ps(struct ieee80211_tx_data *tx)
if (local->hw.conf.flags & IEEE80211_CONF_PS) {
ieee80211_stop_queues_by_reason(&local->hw,
+ IEEE80211_MAX_QUEUE_MAP,
IEEE80211_QUEUE_STOP_REASON_PS);
ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED;
ieee80211_queue_work(&local->hw,