Ver Fonte

workqueue: sanity check pool->cpu in wq_worker_sleeping()

In theory, pool->cpu is equals to @cpu in wq_worker_sleeping() after
worker->flags is checked.

And "pool->cpu != cpu" sanity check will help us if something wrong.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Lai Jiangshan há 11 anos atrás
pai
commit
92b69f5091
1 ficheiros alterados com 1 adições e 1 exclusões
  1. 1 1
      kernel/workqueue.c

+ 1 - 1
kernel/workqueue.c

@@ -843,7 +843,7 @@ struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu)
 	pool = worker->pool;
 
 	/* this can only happen on the local cpu */
-	if (WARN_ON_ONCE(cpu != raw_smp_processor_id()))
+	if (WARN_ON_ONCE(cpu != raw_smp_processor_id() || pool->cpu != cpu))
 		return NULL;
 
 	/*