summaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2022-10-01 19:16:16 -0700
committerDan Williams <dan.j.williams@intel.com>2022-10-01 19:16:16 -0700
commit305a72efa791c826fe84768ca55e31adc4113ea8 (patch)
tree35c72646ea4b81528d73d3d79650004abed3285b /kernel/workqueue.c
parent53fc59511fc4c567342b2ef3f7b99a086430e0b4 (diff)
parent6a02124c87f0b61dcaaeb65e7fd406d8afb40fd4 (diff)
downloadlinux-305a72efa791c826fe84768ca55e31adc4113ea8.tar.gz
linux-305a72efa791c826fe84768ca55e31adc4113ea8.zip
Merge branch 'for-6.1/nvdimm' into libnvdimm-for-next
Add v6.1 content on top of some straggling updates that missed v6.0.
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 1ea50f6be843..aeea9731ef80 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3258,6 +3258,15 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
return ret;
}
+/*
+ * See cancel_delayed_work()
+ */
+bool cancel_work(struct work_struct *work)
+{
+ return __cancel_work(work, false);
+}
+EXPORT_SYMBOL(cancel_work);
+
/**
* cancel_delayed_work - cancel a delayed work
* @dwork: delayed_work to cancel
@@ -5001,7 +5010,10 @@ static void unbind_workers(int cpu)
for_each_pool_worker(worker, pool) {
kthread_set_per_cpu(worker->task, -1);
- WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, wq_unbound_cpumask) < 0);
+ if (cpumask_intersects(wq_unbound_cpumask, cpu_active_mask))
+ WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, wq_unbound_cpumask) < 0);
+ else
+ WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_possible_mask) < 0);
}
mutex_unlock(&wq_pool_attach_mutex);