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. 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 eea58f77a37b..fa29b7a083a6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5085,12 +5085,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, cpu); mutex_unlock(&wq_pool_attach_mutex); -- 2.19.1.6.gb485710b