linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / powerpc / platforms / powermac / smp.c
index 827b712..6d64a9b 100644 (file)
@@ -21,6 +21,7 @@
  *  as published by the Free Software Foundation; either version
  *  2 of the License, or (at your option) any later version.
  */
+#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
@@ -190,7 +191,9 @@ static void smp_psurge_message_pass(int target, int msg)
        if (num_online_cpus() < 2)
                return;
 
-       for_each_online_cpu(i) {
+       for (i = 0; i < NR_CPUS; i++) {
+               if (!cpu_online(i))
+                       continue;
                if (target == MSG_ALL
                    || (target == MSG_ALL_BUT_SELF && i != smp_processor_id())
                    || target == i) {
@@ -377,7 +380,7 @@ static void __init psurge_dual_sync_tb(int cpu_nr)
 
 static struct irqaction psurge_irqaction = {
        .handler = psurge_primary_intr,
-       .flags = IRQF_DISABLED,
+       .flags = SA_INTERRUPT,
        .mask = CPU_MASK_NONE,
        .name = "primary IPI",
 };