Athough pwq-installation without wq_pool_mutex held is not bug, but it is not good design, it is better to make the pwq-allocation and installation are in the (same) wq_pool_mutex.
And since the pwq-allocation and installation are in the same wq_pool_mutex, get_online_cpus() will not be needed for this reason, and it will be remove in later patch. Signed-off-by: Lai Jiangshan <la...@cn.fujitsu.com> --- kernel/workqueue.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 7a217f0..9bc3a87 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -3805,8 +3805,6 @@ int apply_workqueue_attrs(struct workqueue_struct *wq, } } - mutex_unlock(&wq_pool_mutex); - /* all pwqs have been created successfully, let's install'em */ mutex_lock(&wq->mutex); @@ -3827,6 +3825,8 @@ int apply_workqueue_attrs(struct workqueue_struct *wq, put_pwq_unlocked(pwq_tbl[node]); put_pwq_unlocked(dfl_pwq); + mutex_unlock(&wq_pool_mutex); + put_online_cpus(); ret = 0; /* fall through */ -- 1.7.4.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/