From: Lai Jiangshan <la...@linux.alibaba.com> Just move around the code, no functionality changed.
It prepares for later patch protecting wq_online_cpumask in wq_pool_attach_mutex. Acked-by: Tejun Heo <t...@kernel.org> Signed-off-by: Lai Jiangshan <la...@linux.alibaba.com> --- kernel/workqueue.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 79cc87df0cda..94545e6feda5 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5088,12 +5088,17 @@ int workqueue_online_cpu(unsigned int cpu) mutex_lock(&wq_pool_mutex); cpumask_set_cpu(cpu, wq_online_cpumask); + for_each_cpu_worker_pool(pool, cpu) { + mutex_lock(&wq_pool_attach_mutex); + rebind_workers(pool); + mutex_unlock(&wq_pool_attach_mutex); + } + + /* update CPU affinity of workers of unbound pools */ for_each_pool(pool, pi) { mutex_lock(&wq_pool_attach_mutex); - if (pool->cpu == cpu) - rebind_workers(pool); - else if (pool->cpu < 0) + if (pool->cpu < 0) update_unbound_workers_cpumask(pool, true, cpu); mutex_unlock(&wq_pool_attach_mutex); -- 2.19.1.6.gb485710b