diff --git a/[refs] b/[refs] index 7d4a29f081b3..1eeb82d7b962 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cdadf0097cdca06c497ffaeb5982e028c6e4ed38 +refs/heads/master: 30310045dd20a286cf3800f063f79b468e132fb1 diff --git a/trunk/kernel/workqueue.c b/trunk/kernel/workqueue.c index cb2ccfbed0c6..b57a8babdec3 100644 --- a/trunk/kernel/workqueue.c +++ b/trunk/kernel/workqueue.c @@ -604,7 +604,9 @@ static bool keep_working(struct global_cwq *gcwq) { atomic_t *nr_running = get_gcwq_nr_running(gcwq->cpu); - return !list_empty(&gcwq->worklist) && atomic_read(nr_running) <= 1; + return !list_empty(&gcwq->worklist) && + (atomic_read(nr_running) <= 1 || + gcwq->flags & GCWQ_HIGHPRI_PENDING); } /* Do we need a new worker? Called from manager. */