From: Lai Jiangshan <la...@linux.alibaba.com> There might be other CPU online. The workers losing binding on its CPU should have chance to work on those later onlined CPUs.
Fixes: 06249738a41a ("workqueue: Manually break affinity on hotplug") Signed-off-by: Lai Jiangshan <la...@linux.alibaba.com> --- kernel/workqueue.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index aba71ab359dd..1f5b8385c0cf 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4909,8 +4909,9 @@ static void unbind_workers(int cpu) raw_spin_unlock_irq(&pool->lock); + /* don't rely on the scheduler to force break affinity for us. */ for_each_pool_worker(worker, pool) - WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_active_mask) < 0); + WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, cpu_possible_mask) < 0); mutex_unlock(&wq_pool_attach_mutex); -- 2.19.1.6.gb485710b