diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2023-10-09 11:18:01 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-02-06 18:42:06 +0300 |
| commit | 4737cc74b2fd88dc8161016f4dcf962608050c4d (patch) | |
| tree | 54a55468d5ed70be08acc5804fcd5a0a15bbef36 | |
| parent | c8b15b0d2eec3b5c7f585e5a53dfc8d36c818283 (diff) | |
| download | linux-4737cc74b2fd88dc8161016f4dcf962608050c4d.tar.xz | |
wifi: cfg80211: use system_unbound_wq for wiphy work
commit 91d20ab9d9ca035527af503d00e1e30d6c375f2a upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| -rw-r--r-- | net/wireless/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index 788ca1055d6a..64e51b02a5f5 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c @@ -1593,7 +1593,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); |
