提交 81065e4f 编写于 作者: R Rusty Russell

cpumask: arch_send_call_function_ipi_mask: alpha

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: NRusty Russell <rusty@rustcorp.com.au>
上级 e50a6f19
...@@ -47,7 +47,8 @@ extern struct cpuinfo_alpha cpu_data[NR_CPUS]; ...@@ -47,7 +47,8 @@ extern struct cpuinfo_alpha cpu_data[NR_CPUS];
extern int smp_num_cpus; extern int smp_num_cpus;
extern void arch_send_call_function_single_ipi(int cpu); 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 */ #else /* CONFIG_SMP */
......
...@@ -548,16 +548,16 @@ setup_profiling_timer(unsigned int multiplier) ...@@ -548,16 +548,16 @@ setup_profiling_timer(unsigned int multiplier)
static void 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; int i;
mb(); mb();
for_each_cpu_mask(i, to_whom) for_each_cpu(i, to_whom)
set_bit(operation, &ipi_data[i].bits); set_bit(operation, &ipi_data[i].bits);
mb(); mb();
for_each_cpu_mask(i, to_whom) for_each_cpu(i, to_whom)
wripir(i); wripir(i);
} }
...@@ -624,7 +624,7 @@ smp_send_reschedule(int cpu) ...@@ -624,7 +624,7 @@ smp_send_reschedule(int cpu)
printk(KERN_WARNING printk(KERN_WARNING
"smp_send_reschedule: Sending IPI to self.\n"); "smp_send_reschedule: Sending IPI to self.\n");
#endif #endif
send_ipi_message(cpumask_of_cpu(cpu), IPI_RESCHEDULE); send_ipi_message(cpumask_of(cpu), IPI_RESCHEDULE);
} }
void void
...@@ -636,17 +636,17 @@ smp_send_stop(void) ...@@ -636,17 +636,17 @@ smp_send_stop(void)
if (hard_smp_processor_id() != boot_cpu_id) if (hard_smp_processor_id() != boot_cpu_id)
printk(KERN_WARNING "smp_send_stop: Not on boot cpu.\n"); printk(KERN_WARNING "smp_send_stop: Not on boot cpu.\n");
#endif #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); send_ipi_message(mask, IPI_CALL_FUNC);
} }
void arch_send_call_function_single_ipi(int cpu) 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 static void
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册