diff mbox

[wq#for-next] workqueue: fix HIGHPRI handling in keep_working()

Message ID 4CB2E24E.3020209@kernel.org (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Tejun Heo Oct. 11, 2010, 10:09 a.m. UTC
None
diff mbox

Patch

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index f77afd9..d355278 100644
--- a/kernel/workqueue.c
+++ b/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. */