]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/x86/xen/smp.c
Merge tag 'stable/for-linus-3.4-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel...
[linux.git] / arch / x86 / xen / smp.c
index 315d8fa0c8fb8070b95422ef03b96a8f27c49d1f..5fac6919b957fa88a9b9cc130007671ffbc00d13 100644 (file)
@@ -59,7 +59,7 @@ static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
 
 static void __cpuinit cpu_bringup(void)
 {
-       int cpu = smp_processor_id();
+       int cpu;
 
        cpu_init();
        touch_softlockup_watchdog();
@@ -75,8 +75,14 @@ static void __cpuinit cpu_bringup(void)
 
        xen_setup_cpu_clockevents();
 
+       notify_cpu_starting(cpu);
+
+       ipi_call_lock();
        set_cpu_online(cpu, true);
+       ipi_call_unlock();
+
        this_cpu_write(cpu_state, CPU_ONLINE);
+
        wmb();
 
        /* We can take interrupts now: we're officially "up". */