Use the regular version with irq disabled. Signed-off-by: Hillf Danton <hdanton@xxxxxxxx> --- --- c/kernel/workqueue.c +++ d/kernel/workqueue.c @@ -1415,11 +1415,11 @@ retry: /* pwq which will be used unless @work is executing elsewhere */ if (wq->flags & WQ_UNBOUND) { if (req_cpu == WORK_CPU_UNBOUND) - cpu = wq_select_unbound_cpu(raw_smp_processor_id()); + cpu = wq_select_unbound_cpu(smp_processor_id()); pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu)); } else { if (req_cpu == WORK_CPU_UNBOUND) - cpu = raw_smp_processor_id(); + cpu = smp_processor_id(); pwq = per_cpu_ptr(wq->cpu_pwqs, cpu); }