cfg80211: Remove deprecated create_singlethread_workqueue
authorBhaktipriya Shridhar <bhaktipriya96@gmail.com>
Tue, 30 Aug 2016 19:05:07 +0000 (00:35 +0530)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 12 Sep 2016 09:24:48 +0000 (11:24 +0200)
The workqueue "cfg80211_wq" is involved in cleanup, scan and event related
works. It queues multiple work items &rdev->event_work,
&rdev->dfs_update_channels_wk,
&wiphy_to_rdev(request->wiphy)->scan_done_wk,
&wiphy_to_rdev(wiphy)->sched_scan_results_wk, which require strict
execution ordering.
Hence, an ordered dedicated workqueue has been used.

Since it's a wireless driver, WQ_MEM_RECLAIM has been set to ensure
forward progress under memory pressure.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/core.c

index 2029b49..4911cd9 100644 (file)
@@ -1252,7 +1252,7 @@ static int __init cfg80211_init(void)
        if (err)
                goto out_fail_reg;
 
-       cfg80211_wq = create_singlethread_workqueue("cfg80211");
+       cfg80211_wq = alloc_ordered_workqueue("cfg80211", WQ_MEM_RECLAIM);
        if (!cfg80211_wq) {
                err = -ENOMEM;
                goto out_fail_wq;