summaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 3bfdff06eea7..5f5068e94003 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -4554,6 +4554,17 @@ static void rebind_workers(struct worker_pool *pool)
4554 pool->attrs->cpumask) < 0); 4554 pool->attrs->cpumask) < 0);
4555 4555
4556 spin_lock_irq(&pool->lock); 4556 spin_lock_irq(&pool->lock);
4557
4558 /*
4559 * XXX: CPU hotplug notifiers are weird and can call DOWN_FAILED
4560 * w/o preceding DOWN_PREPARE. Work around it. CPU hotplug is
4561 * being reworked and this can go away in time.
4562 */
4563 if (!(pool->flags & POOL_DISASSOCIATED)) {
4564 spin_unlock_irq(&pool->lock);
4565 return;
4566 }
4567
4557 pool->flags &= ~POOL_DISASSOCIATED; 4568 pool->flags &= ~POOL_DISASSOCIATED;
4558 4569
4559 for_each_pool_worker(worker, pool) { 4570 for_each_pool_worker(worker, pool) {