Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
[pandora-kernel.git] / include / asm-i386 / mach-default / mach_ipi.h
index cc756a6..0dba244 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef __ASM_MACH_IPI_H
 #define __ASM_MACH_IPI_H
 
+/* Avoid include hell */
+#define NMI_VECTOR 0x02
+
 void send_IPI_mask_bitmask(cpumask_t mask, int vector);
 void __send_IPI_shortcut(unsigned int shortcut, int vector);
 
@@ -13,20 +16,18 @@ static inline void send_IPI_mask(cpumask_t mask, int vector)
 
 static inline void __local_send_IPI_allbutself(int vector)
 {
-       if (no_broadcast) {
+       if (no_broadcast || vector == NMI_VECTOR) {
                cpumask_t mask = cpu_online_map;
-               int this_cpu = get_cpu();
 
-               cpu_clear(this_cpu, mask);
+               cpu_clear(smp_processor_id(), mask);
                send_IPI_mask(mask, vector);
-               put_cpu();
        } else
                __send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
 }
 
 static inline void __local_send_IPI_all(int vector)
 {
-       if (no_broadcast)
+       if (no_broadcast || vector == NMI_VECTOR)
                send_IPI_mask(cpu_online_map, vector);
        else
                __send_IPI_shortcut(APIC_DEST_ALLINC, vector);