Use default pwq when alloc_unbound_pwq() is failed. And remove "if" condition for whether "pwq" is same as "wq->dfl_pwq" when wq_calc_node_cpumask() returns false and just use "goto use_dfl_pwq"
Signed-off-by: Daeseok Youn <daeseok.y...@gmail.com> --- V2: replace "if condition" with "goto" as Lai's comment. V3: Use default pwq when alloc_unbound_pwq() is failed. kernel/workqueue.c | 8 +++----- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 0ee63af..0679854 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -4087,10 +4087,7 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu, if (cpumask_equal(cpumask, pwq->pool->attrs->cpumask)) goto out_unlock; } else { - if (pwq == wq->dfl_pwq) - goto out_unlock; - else - goto use_dfl_pwq; + goto use_dfl_pwq; } mutex_unlock(&wq->mutex); @@ -4100,7 +4097,8 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu, if (!pwq) { pr_warning("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n", wq->name); - goto out_unlock; + mutex_lock(&wq->mutex); + goto use_dfl_pwq; } /* -- 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/