x86_32: remove unnecessary use of %ebx as the boot cpu flag
authorIan Campbell <[email protected]>
Wed, 30 Jan 2008 12:33:27 +0000 (13:33 +0100)
committerIngo Molnar <[email protected]>
Wed, 30 Jan 2008 12:33:27 +0000 (13:33 +0100)
Currently in head_32.S there are two ways we test to see if we
are the boot cpu.  By looking at %ebx and by looking at the
static variable ready.  When changing things around I have
found that it gets tricky to preserve %ebx.  So this
patch just switches head.S over to the more reliable
test of always using ready.

Hopefully later we can kill these tests entirely.

Signed-off-by: Eric W. Biederman <[email protected]>
Signed-off-by: Ian Campbell <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Mika Penttilä <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
arch/x86/kernel/head_32.S

index f409fe2a52e48a3abbe79d09b9070851d70429ab..7b9b2566b7a8f107eb2bd5dbdcc582b03bd9f72b 100644 (file)
@@ -199,7 +199,6 @@ default_entry:
        addl $0x67, %eax                        /* 0x67 == _PAGE_TABLE */
        movl %eax, 4092(%edx)
 
-       xorl %ebx,%ebx                          /* This is the boot CPU (BSP) */
        jmp 3f
 /*
  * Non-boot CPU entry point; entered from trampoline.S
@@ -268,10 +267,6 @@ ENTRY(startup_32_smp)
        wrmsr
 
 6:
-       /* This is a secondary processor (AP) */
-       xorl %ebx,%ebx
-       incl %ebx
-
 #endif /* CONFIG_SMP */
 3:
 
@@ -297,7 +292,7 @@ ENTRY(startup_32_smp)
        popfl
 
 #ifdef CONFIG_SMP
-       andl %ebx,%ebx
+       cmpb $0, ready
        jz  1f                          /* Initial CPU cleans BSS */
        jmp checkCPUtype
 1: