diff options
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index cb2ccfbed0c6..b57a8babdec3 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -604,7 +604,9 @@ static bool keep_working(struct global_cwq *gcwq) | |||
604 | { | 604 | { |
605 | atomic_t *nr_running = get_gcwq_nr_running(gcwq->cpu); | 605 | atomic_t *nr_running = get_gcwq_nr_running(gcwq->cpu); |
606 | 606 | ||
607 | return !list_empty(&gcwq->worklist) && atomic_read(nr_running) <= 1; | 607 | return !list_empty(&gcwq->worklist) && |
608 | (atomic_read(nr_running) <= 1 || | ||
609 | gcwq->flags & GCWQ_HIGHPRI_PENDING); | ||
608 | } | 610 | } |
609 | 611 | ||
610 | /* Do we need a new worker? Called from manager. */ | 612 | /* Do we need a new worker? Called from manager. */ |