]> Pileus Git - ~andy/linux/blobdiff - arch/x86/xen/smp.c
Merge branch 'x86/spinlocks' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
[~andy/linux] / arch / x86 / xen / smp.c
index ca92754eb846b6d7f8293a4f6f75dedae7bf13a9..368c290929fe851b5426d4dff140b98986617cc9 100644 (file)
@@ -279,6 +279,7 @@ static void __init xen_smp_prepare_boot_cpu(void)
 
        xen_filter_cpu_maps();
        xen_setup_vcpu_info_placement();
+       xen_init_spinlocks();
 }
 
 static void __init xen_smp_prepare_cpus(unsigned int max_cpus)
@@ -572,6 +573,12 @@ static inline int xen_map_vector(int vector)
        case IRQ_WORK_VECTOR:
                xen_vector = XEN_IRQ_WORK_VECTOR;
                break;
+#ifdef CONFIG_X86_64
+       case NMI_VECTOR:
+       case APIC_DM_NMI: /* Some use that instead of NMI_VECTOR */
+               xen_vector = XEN_NMI_VECTOR;
+               break;
+#endif
        default:
                xen_vector = -1;
                printk(KERN_ERR "xen: vector 0x%x is not implemented\n",
@@ -680,7 +687,6 @@ void __init xen_smp_init(void)
 {
        smp_ops = xen_smp_ops;
        xen_fill_possible_map();
-       xen_init_spinlocks();
 }
 
 static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus)