wifi: cfg80211: fully move wiphy work to unbound workqueue
authorJohannes Berg <johannes.berg@intel.com>
Wed, 22 May 2024 10:41:25 +0000 (12:41 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 29 May 2024 13:23:33 +0000 (15:23 +0200)
Previously I had moved the wiphy work to the unbound
system workqueue, but missed that when it restarts and
during resume it was still using the normal system
workqueue. Fix that.

Fixes: 91d20ab9d9ca ("wifi: cfg80211: use system_unbound_wq for wiphy work")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240522124126.7ca959f2cbd3.I3e2a71ef445d167b84000ccf934ea245aef8d395@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/core.c
net/wireless/sysfs.c

index 3fb1b637352a9d0b469206d890601031ffd4c68f..4b1f45e3070e06c72095037793cf5b087bf5cd0f 100644 (file)
@@ -431,7 +431,7 @@ static void cfg80211_wiphy_work(struct work_struct *work)
        if (wk) {
                list_del_init(&wk->entry);
                if (!list_empty(&rdev->wiphy_work_list))
-                       schedule_work(work);
+                       queue_work(system_unbound_wq, work);
                spin_unlock_irq(&rdev->wiphy_work_lock);
 
                wk->func(&rdev->wiphy, wk);
index 565511a3f461ed6872db387439a196351d02f00a..62f26618f674741a5163fa8e8d14c5319b2ceff8 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright 2005-2006 Jiri Benc <jbenc@suse.cz>
  * Copyright 2006      Johannes Berg <johannes@sipsolutions.net>
- * Copyright (C) 2020-2021, 2023 Intel Corporation
+ * Copyright (C) 2020-2021, 2023-2024 Intel Corporation
  */
 
 #include <linux/device.h>
@@ -137,7 +137,7 @@ static int wiphy_resume(struct device *dev)
        if (rdev->wiphy.registered && rdev->ops->resume)
                ret = rdev_resume(rdev);
        rdev->suspended = false;
-       schedule_work(&rdev->wiphy_work);
+       queue_work(system_unbound_wq, &rdev->wiphy_work);
        wiphy_unlock(&rdev->wiphy);
 
        if (ret)