summaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2023-10-09 10:18:01 +0200
committerJohannes Berg <johannes.berg@intel.com>2023-10-11 16:36:12 +0200
commit91d20ab9d9ca035527af503d00e1e30d6c375f2a (patch)
treeaac117f0250ef65676f3f2cf761f0793ef1f7597 /net/wireless
parentf291209eca5eba0b4704fa0832af57b12dbc1a02 (diff)
downloadlinux-91d20ab9d9ca035527af503d00e1e30d6c375f2a.tar.gz
linux-91d20ab9d9ca035527af503d00e1e30d6c375f2a.tar.bz2
linux-91d20ab9d9ca035527af503d00e1e30d6c375f2a.zip
wifi: cfg80211: use system_unbound_wq for wiphy work
Since wiphy work items can run pretty much arbitrary code in the stack/driver, it can take longer to run all of this, so we shouldn't be using system_wq via schedule_work(). Also, we lock the wiphy (which is the reason this exists), so use system_unbound_wq. Reported-and-tested-by: Kalle Valo <kvalo@kernel.org> Fixes: a3ee4dc84c4e ("wifi: cfg80211: add a work abstraction with special semantics") Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 64e861617110..acec41c1809a 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -1622,7 +1622,7 @@ void wiphy_work_queue(struct wiphy *wiphy, struct wiphy_work *work)
list_add_tail(&work->entry, &rdev->wiphy_work_list);
spin_unlock_irqrestore(&rdev->wiphy_work_lock, flags);
- schedule_work(&rdev->wiphy_work);
+ queue_work(system_unbound_wq, &rdev->wiphy_work);
}
EXPORT_SYMBOL_GPL(wiphy_work_queue);