]> err.no Git - linux-2.6/commitdiff
x86: add barriers statement
authorGlauber de Oliveira Costa <gcosta@redhat.com>
Wed, 19 Mar 2008 17:25:12 +0000 (14:25 -0300)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:00 +0000 (17:41 +0200)
goal is to have i386 and x86_64 closer, so we
add barriers to match

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/smpboot_32.c
arch/x86/kernel/smpboot_64.c

index 4e5416eb42b09877a0799765e22ce28daf4c1fa0..a232f4d1f7a5ad96cfc37b3b2f0e4f4af23eef43 100644 (file)
@@ -180,6 +180,9 @@ static void __cpuinit start_secondary(void *unused)
        smp_callin();
        while (!cpu_isset(smp_processor_id(), smp_commenced_mask))
                cpu_relax();
+
+       /* otherwise gcc will move up smp_processor_id before the cpu_init */
+       barrier();
        /*
         * Check TSC synchronization with the BP:
         */
@@ -432,6 +435,7 @@ wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
        Dprintk("Waiting for send to finish...\n");
        send_status = safe_apic_wait_icr_idle();
 
+       mb();
        atomic_set(&init_deasserted, 1);
 
        /*
index d7b59d6c6963275baaefe65b59a0f9f5006d7b8f..a9cc91127b9111946a0ebee8f631d64fedf13e1b 100644 (file)
@@ -239,6 +239,7 @@ void __cpuinit start_secondary(void)
 
        setup_secondary_clock();
 
+       wmb();
        cpu_idle();
 }