]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/xen/smp.c
Merge tag 'v3.11-rc7' into stable/for-linus-3.12
[karo-tx-linux.git] / arch / x86 / xen / smp.c
index 368c290929fe851b5426d4dff140b98986617cc9..9235842cd76a14bf39ae61f9e1026754beee9f8a 100644 (file)
@@ -700,8 +700,15 @@ static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus)
 static int xen_hvm_cpu_up(unsigned int cpu, struct task_struct *tidle)
 {
        int rc;
-       rc = native_cpu_up(cpu, tidle);
-       WARN_ON (xen_smp_intr_init(cpu));
+       /*
+        * xen_smp_intr_init() needs to run before native_cpu_up()
+        * so that IPI vectors are set up on the booting CPU before
+        * it is marked online in native_cpu_up().
+       */
+       rc = xen_smp_intr_init(cpu);
+       WARN_ON(rc);
+       if (!rc)
+               rc =  native_cpu_up(cpu, tidle);
        return rc;
 }