aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorBob Copeland <me@bobcopeland.com>2009-01-23 23:09:35 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 16:01:41 -0500
commit30d3ef41b4395d9bee5f481395eef2d3b8b6ee50 (patch)
treecaec9f60bc917fb7cfe89e5179eed673a765ff13 /net/mac80211
parentdfe670121a2719be6ead12eb5306d4d2714c09cb (diff)
mac80211: change workqueue back to non-freezeable
"mac80211: make workqueue freezable" made the mac80211 workqueue freezeable to prevent us from doing any work after the driver went away. This was fine before mac80211 had any suspend support. However, now we want to flush this workqueue in suspend(). Because the thread for a freezeable workqueue is stopped before the device class suspend() is called, flush_workqueue() will hang in the suspend-to-disk case. Converting it back to a non-freezeable queue will keep suspend from hanging. Moreover, since we flush the workqueue under RTNL and userspace is stopped, there won't be any new work in the workqueue until after resume. Thus we still don't have to worry about pinging the AP without hardware. Signed-off-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 8d5c19e4a1bc..210dfe3cf6c3 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -858,7 +858,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
858 mdev->set_multicast_list = ieee80211_master_set_multicast_list; 858 mdev->set_multicast_list = ieee80211_master_set_multicast_list;
859 859
860 local->hw.workqueue = 860 local->hw.workqueue =
861 create_freezeable_workqueue(wiphy_name(local->hw.wiphy)); 861 create_singlethread_workqueue(wiphy_name(local->hw.wiphy));
862 if (!local->hw.workqueue) { 862 if (!local->hw.workqueue) {
863 result = -ENOMEM; 863 result = -ENOMEM;
864 goto fail_workqueue; 864 goto fail_workqueue;