summaryrefslogtreecommitdiff
path: root/net/mac80211/pm.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-13 11:25:28 (GMT)
committerJohannes Berg <johannes.berg@intel.com>2013-03-18 19:15:05 (GMT)
commit445ea4e83ec50668cc9ad7e5cf96d242f19165e8 (patch)
tree1b6e6c909854358c03fd0047b9f441e0095460e3 /net/mac80211/pm.c
parent39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95 (diff)
downloadlinux-fsl-qoriq-445ea4e83ec50668cc9ad7e5cf96d242f19165e8.tar.xz
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/pm.c')
-rw-r--r--net/mac80211/pm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
index 497f21a..3d16f4e 100644
--- a/net/mac80211/pm.c
+++ b/net/mac80211/pm.c
@@ -30,7 +30,8 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
}
ieee80211_stop_queues_by_reason(hw,
- IEEE80211_QUEUE_STOP_REASON_SUSPEND);
+ IEEE80211_MAX_QUEUE_MAP,
+ IEEE80211_QUEUE_STOP_REASON_SUSPEND);
/* flush out all packets */
synchronize_net();
@@ -68,6 +69,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
mutex_unlock(&local->sta_mtx);
}
ieee80211_wake_queues_by_reason(hw,
+ IEEE80211_MAX_QUEUE_MAP,
IEEE80211_QUEUE_STOP_REASON_SUSPEND);
return err;
} else if (err > 0) {