diff options
author | Shaohua Li <shaohua.li@intel.com> | 2005-06-25 17:54:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:28 -0400 |
commit | d92de65cab5980c16d4a1c326c1ef9a591892883 (patch) | |
tree | 98f3ae9c33f18a126d7e0f2e800b6b65631180d0 /arch/i386/kernel/head.S | |
parent | a13db56624c2a9d6c0dae0a693b25b0e58de9ea3 (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/i386/kernel/head.S')
-rw-r--r-- | arch/i386/kernel/head.S | 6 |
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 | |||
299 | movl %eax,%cr0 | 299 | movl %eax,%cr0 |
300 | 300 | ||
301 | call check_x87 | 301 | call check_x87 |
302 | incb ready | ||
303 | lgdt cpu_gdt_descr | 302 | lgdt cpu_gdt_descr |
304 | lidt idt_descr | 303 | lidt idt_descr |
305 | ljmp $(__KERNEL_CS),$1f | 304 | ljmp $(__KERNEL_CS),$1f |
@@ -316,8 +315,9 @@ is386: movl $2,%ecx # set MP | |||
316 | lldt %ax | 315 | lldt %ax |
317 | cld # gcc2 wants the direction flag cleared at all times | 316 | cld # gcc2 wants the direction flag cleared at all times |
318 | #ifdef CONFIG_SMP | 317 | #ifdef CONFIG_SMP |
319 | movb ready, %cl | 318 | movb ready, %cl |
320 | cmpb $1,%cl | 319 | movb $1, ready |
320 | cmpb $0,%cl | ||
321 | je 1f # the first CPU calls start_kernel | 321 | je 1f # the first CPU calls start_kernel |
322 | # all other CPUs call initialize_secondary | 322 | # all other CPUs call initialize_secondary |
323 | call initialize_secondary | 323 | call initialize_secondary |