summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2005-06-25 14:54:49 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 16:24:28 -0700
commitd92de65cab5980c16d4a1c326c1ef9a591892883 (patch)
tree98f3ae9c33f18a126d7e0f2e800b6b65631180d0 /arch
parenta13db56624c2a9d6c0dae0a693b25b0e58de9ea3 (diff)
[PATCH] variable overflow after hundreds round of hotplug CPU
I'm doing the cpu hotplug stress test and found a variable ('ready') is overflow after several hundreds rounds of cpu hotplug. Here is a fix. Signed-off-by: Shaohua Li<shaohua.li@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/head.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S
index e966fc8c44c4..4477bb107098 100644
--- a/arch/i386/kernel/head.S
+++ b/arch/i386/kernel/head.S
@@ -299,7 +299,6 @@ is386: movl $2,%ecx # set MP
movl %eax,%cr0
call check_x87
- incb ready
lgdt cpu_gdt_descr
lidt idt_descr
ljmp $(__KERNEL_CS),$1f
@@ -316,8 +315,9 @@ is386: movl $2,%ecx # set MP
lldt %ax
cld # gcc2 wants the direction flag cleared at all times
#ifdef CONFIG_SMP
- movb ready, %cl
- cmpb $1,%cl
+ movb ready, %cl
+ movb $1, ready
+ cmpb $0,%cl
je 1f # the first CPU calls start_kernel
# all other CPUs call initialize_secondary
call initialize_secondary