summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/head.S
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-04 06:29:54 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-04 06:29:54 -0400
commit3784fd7316d336f2ba79b6c7c8168d08eff8a714 (patch)
tree3019c37f1ba588f252d1a9f1ef33beb5d3d683b1 /arch/i386/kernel/head.S
parent7c440e7990ea22c0c374c59a5fbd79b0579d1517 (diff)
parentc336923b668fdcf0312efbec3b44895d713f4d81 (diff)
downloadlinux-3784fd7316d336f2ba79b6c7c8168d08eff8a714.tar.bz2
Merge branch 'master' into upstream
Diffstat (limited to 'arch/i386/kernel/head.S')
-rw-r--r--arch/i386/kernel/head.S14
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S
index eb79aa2fa8bb..a6b8bd89aa27 100644
--- a/arch/i386/kernel/head.S
+++ b/arch/i386/kernel/head.S
@@ -317,20 +317,14 @@ is386: movl $2,%ecx # set MP
movl %eax,%gs
lldt %ax
cld # gcc2 wants the direction flag cleared at all times
+ pushl %eax # fake return address
#ifdef CONFIG_SMP
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
- jmp L6
-1:
+ cmpb $0,%cl # the first CPU calls start_kernel
+ jne initialize_secondary # all other CPUs call initialize_secondary
#endif /* CONFIG_SMP */
- call start_kernel
-L6:
- jmp L6 # main should never return here, but
- # just in case, we know what happens.
+ jmp start_kernel
/*
* We depend on ET to be correct. This checks for 287/387.