cpumask: arch_send_call_function_ipi_mask: alpha
Rusty Russell [Thu, 24 Sep 2009 15:34:43 +0000 (09:34 -0600)]
We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask().

We also take the chance to wean the send_ipi_message off the
obsolescent for_each_cpu_mask(): making it take a pointer seemed the
most natural way to do this.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

arch/alpha/include/asm/smp.h
arch/alpha/kernel/smp.c

index 547e909..8818a1b 100644 (file)
@@ -47,7 +47,8 @@ extern struct cpuinfo_alpha cpu_data[NR_CPUS];
 extern int smp_num_cpus;
 
 extern void arch_send_call_function_single_ipi(int cpu);
-extern void arch_send_call_function_ipi(cpumask_t mask);
+extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
+#define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask
 
 #else /* CONFIG_SMP */
 
index b1fe567..42aa078 100644 (file)
@@ -548,16 +548,16 @@ setup_profiling_timer(unsigned int multiplier)
 
 \f
 static void
-send_ipi_message(cpumask_t to_whom, enum ipi_message_type operation)
+send_ipi_message(const struct cpumask *to_whom, enum ipi_message_type operation)
 {
        int i;
 
        mb();
-       for_each_cpu_mask(i, to_whom)
+       for_each_cpu(i, to_whom)
                set_bit(operation, &ipi_data[i].bits);
 
        mb();
-       for_each_cpu_mask(i, to_whom)
+       for_each_cpu(i, to_whom)
                wripir(i);
 }
 
@@ -624,7 +624,7 @@ smp_send_reschedule(int cpu)
                printk(KERN_WARNING
                       "smp_send_reschedule: Sending IPI to self.\n");
 #endif
-       send_ipi_message(cpumask_of_cpu(cpu), IPI_RESCHEDULE);
+       send_ipi_message(cpumask_of(cpu), IPI_RESCHEDULE);
 }
 
 void
@@ -636,17 +636,17 @@ smp_send_stop(void)
        if (hard_smp_processor_id() != boot_cpu_id)
                printk(KERN_WARNING "smp_send_stop: Not on boot cpu.\n");
 #endif
-       send_ipi_message(to_whom, IPI_CPU_STOP);
+       send_ipi_message(&to_whom, IPI_CPU_STOP);
 }
 
-void arch_send_call_function_ipi(cpumask_t mask)
+void arch_send_call_function_ipi_mask(const struct cpumask *mask)
 {
        send_ipi_message(mask, IPI_CALL_FUNC);
 }
 
 void arch_send_call_function_single_ipi(int cpu)
 {
-       send_ipi_message(cpumask_of_cpu(cpu), IPI_CALL_FUNC_SINGLE);
+       send_ipi_message(cpumask_of(cpu), IPI_CALL_FUNC_SINGLE);
 }
 
 static void