x86, trampoline: Common infrastructure for low memory trampolines
[deliverable/linux.git] / arch / x86 / kernel / smpboot.c
index 08776a953487f826dad0acc84b5b6e35f6272387..545273369efa366b19e4087a8c09ac668c2cb536 100644 (file)
@@ -788,7 +788,7 @@ do_rest:
        stack_start  = c_idle.idle->thread.sp;
 
        /* start_ip had better be page-aligned! */
-       start_ip = setup_trampoline();
+       start_ip = trampoline_address();
 
        /* So we see what's up */
        announce_cpu(cpu, apicid);
@@ -798,6 +798,8 @@ do_rest:
         * the targeted processor.
         */
 
+       printk(KERN_DEBUG "smpboot cpu %d: start_ip = %lx\n", cpu, start_ip);
+
        atomic_set(&init_deasserted, 0);
 
        if (get_uv_system_type() != UV_NON_UNIQUE_APIC) {
@@ -851,8 +853,8 @@ do_rest:
                        pr_debug("CPU%d: has booted.\n", cpu);
                else {
                        boot_error = 1;
-                       if (*((volatile unsigned char *)trampoline_base)
-                                       == 0xA5)
+                       if (*(volatile u32 *)TRAMPOLINE_SYM(trampoline_status)
+                           == 0xA5A5A5A5)
                                /* trampoline started but...? */
                                pr_err("CPU%d: Stuck ??\n", cpu);
                        else
@@ -878,7 +880,7 @@ do_rest:
        }
 
        /* mark "stuck" area as not stuck */
-       *((volatile unsigned long *)trampoline_base) = 0;
+       *(volatile u32 *)TRAMPOLINE_SYM(trampoline_status) = 0;
 
        if (get_uv_system_type() != UV_NON_UNIQUE_APIC) {
                /*
This page took 0.024626 seconds and 5 git commands to generate.