]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - kernel/workqueue.c
workqueue: clear POOL_DISASSOCIATED in rebind_workers()
[mirror_ubuntu-jammy-kernel.git] / kernel / workqueue.c
index 8474e5752f1f8df25d30b9a95712bd55a2caeb73..68461b8d9b39d4f71f86d4c3b6ab95a9483755f8 100644 (file)
@@ -4535,6 +4535,7 @@ static void rebind_workers(struct worker_pool *pool)
                                                  pool->attrs->cpumask) < 0);
 
        spin_lock_irq(&pool->lock);
+       pool->flags &= ~POOL_DISASSOCIATED;
 
        for_each_pool_worker(worker, pool) {
                unsigned int worker_flags = worker->flags;
@@ -4637,10 +4638,6 @@ static int workqueue_cpu_up_callback(struct notifier_block *nfb,
                        mutex_lock(&pool->attach_mutex);
 
                        if (pool->cpu == cpu) {
-                               spin_lock_irq(&pool->lock);
-                               pool->flags &= ~POOL_DISASSOCIATED;
-                               spin_unlock_irq(&pool->lock);
-
                                rebind_workers(pool);
                        } else if (pool->cpu < 0) {
                                restore_unbound_workers_cpumask(pool, cpu);