|
@@ -2201,6 +2201,15 @@ __acquires(&pool->lock)
|
|
|
dump_stack();
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * The following prevents a kworker from hogging CPU on !PREEMPT
|
|
|
+ * kernels, where a requeueing work item waiting for something to
|
|
|
+ * happen could deadlock with stop_machine as such work item could
|
|
|
+ * indefinitely requeue itself while all other CPUs are trapped in
|
|
|
+ * stop_machine.
|
|
|
+ */
|
|
|
+ cond_resched();
|
|
|
+
|
|
|
spin_lock_irq(&pool->lock);
|
|
|
|
|
|
/* clear cpu intensive status */
|