X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=arch%2Fi386%2Fkernel%2Fsmp-xen.c;h=0079ba6f47f77520fa1327911cd97024aa141992;hp=78e3784514817e6510e973623ffe828ae67fbaa0;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hpb=4e76c8a9fa413ccc09d3f7f664183dcce3555d57 diff --git a/arch/i386/kernel/smp-xen.c b/arch/i386/kernel/smp-xen.c index 78e378451..0079ba6f4 100644 --- a/arch/i386/kernel/smp-xen.c +++ b/arch/i386/kernel/smp-xen.c @@ -118,7 +118,17 @@ DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate) ____cacheline_aligned = { &init_m static inline int __prepare_ICR (unsigned int shortcut, int vector) { - return APIC_DM_FIXED | shortcut | vector | APIC_DEST_LOGICAL; + unsigned int icr = shortcut | APIC_DEST_LOGICAL; + + switch (vector) { + default: + icr |= APIC_DM_FIXED | vector; + break; + case NMI_VECTOR: + icr |= APIC_DM_NMI; + break; + } + return icr; } static inline int __prepare_ICR2 (unsigned int mask)