aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/workqueue.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index d3444169e261..c20cfbe89194 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2048,10 +2048,13 @@ __acquires(&pool->lock)
2048 worker_set_flags(worker, WORKER_CPU_INTENSIVE, true); 2048 worker_set_flags(worker, WORKER_CPU_INTENSIVE, true);
2049 2049
2050 /* 2050 /*
2051 * Unbound pool isn't concurrency managed and work items should be 2051 * Wake up another worker if necessary. The condition is always
2052 * executed ASAP. Wake up another worker if necessary. 2052 * false for normal per-cpu workers since nr_running would always
2053 * be >= 1 at this point. This is used to chain execution of the
2054 * pending work items for WORKER_NOT_RUNNING workers such as the
2055 * UNBOUND ones.
2053 */ 2056 */
2054 if ((worker->flags & WORKER_UNBOUND) && need_more_worker(pool)) 2057 if (need_more_worker(pool))
2055 wake_up_worker(pool); 2058 wake_up_worker(pool);
2056 2059
2057 /* 2060 /*