aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/workqueue.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 11869faa6819..90a17ca2ad0b 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2047,6 +2047,15 @@ repeat:
2047 move_linked_works(work, scheduled, &n); 2047 move_linked_works(work, scheduled, &n);
2048 2048
2049 process_scheduled_works(rescuer); 2049 process_scheduled_works(rescuer);
2050
2051 /*
2052 * Leave this gcwq. If keep_working() is %true, notify a
2053 * regular worker; otherwise, we end up with 0 concurrency
2054 * and stalling the execution.
2055 */
2056 if (keep_working(gcwq))
2057 wake_up_worker(gcwq);
2058
2050 spin_unlock_irq(&gcwq->lock); 2059 spin_unlock_irq(&gcwq->lock);
2051 } 2060 }
2052 2061