diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-02-13 12:25:28 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-03-18 20:15:05 +0100 |
commit | 445ea4e83ec50668cc9ad7e5cf96d242f19165e8 (patch) | |
tree | 1b6e6c909854358c03fd0047b9f441e0095460e3 /net/mac80211/pm.c | |
parent | 39ecc01d1bbe3de2cf5f01a81e176ea5160d3b95 (diff) | |
download | op-kernel-dev-445ea4e83ec50668cc9ad7e5cf96d242f19165e8.zip op-kernel-dev-445ea4e83ec50668cc9ad7e5cf96d242f19165e8.tar.gz |
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.c | 4 |
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) { |