--- x/kernel/workqueue.c +++ y/kernel/workqueue.c @@ -2679,7 +2679,8 @@ static void worker_attach_to_pool(struct worker->flags |= WORKER_UNBOUND; } else { WARN_ON_ONCE(pool->flags & POOL_BH); - kthread_set_per_cpu(worker->task, pool->cpu); + if (!worker->rescue_wq) + kthread_set_per_cpu(worker->task, pool->cpu); } if (worker->rescue_wq)