summaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-02-17 22:52:46 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-17 22:59:26 +0100
commit1fca251f36fac3fae7d9cf10de69c2c93f6c0000 (patch)
tree0fd4e7816dc310a48e95901ae411e5442805e224 /arch/s390
parent[PATCH] s390: ccw device disbanding (diff)
downloadlinux-1fca251f36fac3fae7d9cf10de69c2c93f6c0000.tar.xz
linux-1fca251f36fac3fae7d9cf10de69c2c93f6c0000.zip
[PATCH] s390: fix preempt_count of idle thread with cpu hotplug
Set preempt_count of idle_thread to zero before switching off cpu. Otherwise the preempt_count will be wrong if the cpu is switched on again since the thread will be reused. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/kernel/process.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 008c74526fd3..da6fbae8df91 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -128,8 +128,10 @@ void default_idle(void)
__ctl_set_bit(8, 15);
#ifdef CONFIG_HOTPLUG_CPU
- if (cpu_is_offline(cpu))
+ if (cpu_is_offline(cpu)) {
+ preempt_enable_no_resched();
cpu_die();
+ }
#endif
local_mcck_disable();