aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/smp.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2011-01-05 06:48:09 -0500
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-01-05 06:47:30 -0500
commitda7f51c11d5fedca9ba779ee220063ccb4f0a27e (patch)
treea8cd6d843e72128ad6bfef0f19ef601f27f56ba9 /arch/s390/kernel/smp.c
parentf230886b0b0f0ce604395481bea05f3c0ad8fc9e (diff)
[S390] smp/idle: call init_idle() before starting a new cpu
Call init_idle() which (re-)initializes the idle task structure before it gets used on a new cpu. That way we can also get rid of the odd preempt_enable_no_resched() call we have in the cpu offline path within cpu_idle(). That call prevented preempt count imbalances between cpu hotplug operations. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/smp.c')
-rw-r--r--arch/s390/kernel/smp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 8e84b5af49ba..10766be524eb 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -575,6 +575,7 @@ int __cpuinit __cpu_up(unsigned int cpu)
575 idle = c_idle.idle; 575 idle = c_idle.idle;
576 current_set[cpu] = c_idle.idle; 576 current_set[cpu] = c_idle.idle;
577 } 577 }
578 init_idle(idle, cpu);
578 if (smp_alloc_lowcore(cpu)) 579 if (smp_alloc_lowcore(cpu))
579 return -ENOMEM; 580 return -ENOMEM;
580 do { 581 do {