summaryrefslogtreecommitdiffstats
path: root/kernel/cpu.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2010-01-21 16:34:27 +0100
committerIngo Molnar <mingo@elte.hu>2010-01-28 06:59:51 +0100
commit11854247e2c851e7ff9ce138e501c6cffc5a4217 (patch)
tree281c12176055279558b31b4b059e32e59229f486 /kernel/cpu.c
parentfabf318e5e4bda0aca2b0d617b191884fda62703 (diff)
downloadlinux-11854247e2c851e7ff9ce138e501c6cffc5a4217.tar.gz
linux-11854247e2c851e7ff9ce138e501c6cffc5a4217.tar.bz2
linux-11854247e2c851e7ff9ce138e501c6cffc5a4217.zip
sched: Fix incorrect sanity check
We moved to migrate on wakeup, which means that sleeping tasks could still be present on offline cpus. Amend the check to only test running tasks. Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/cpu.c')
-rw-r--r--kernel/cpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 1c8ddd6ee940..08e54e7beaed 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -151,7 +151,7 @@ static inline void check_for_tasks(int cpu)
write_lock_irq(&tasklist_lock);
for_each_process(p) {
- if (task_cpu(p) == cpu &&
+ if (task_cpu(p) == cpu && p->state == TASK_RUNNING &&
(!cputime_eq(p->utime, cputime_zero) ||
!cputime_eq(p->stime, cputime_zero)))
printk(KERN_WARNING "Task %s (pid = %d) is on cpu %d\