Commit e296c95e authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: cfg80211: fully move wiphy work to unbound workqueue



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: 91d20ab9 ("wifi: cfg80211: use system_unbound_wq for wiphy work")
Reviewed-by: default avatarMiriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240522124126.7ca959f2cbd3.I3e2a71ef445d167b84000ccf934ea245aef8d395@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 4dc3a389
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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)