Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48a048fe authored by Rusty Russell's avatar Rusty Russell
Browse files

cpumask: arch_send_call_function_ipi_mask: mips



We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask(), and by defining
it, the old arch_send_call_function_ipi is defined by the core code.

We also take the chance to wean the implementations off the
obsolescent for_each_cpu_mask(): making send_ipi_mask take the pointer
seemed the most natural way to ensure all implementations used
for_each_cpu.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent c2a3a488
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ struct task_struct;

struct plat_smp_ops {
	void (*send_ipi_single)(int cpu, unsigned int action);
	void (*send_ipi_mask)(cpumask_t mask, unsigned int action);
	void (*send_ipi_mask)(const struct cpumask *mask, unsigned int action);
	void (*init_secondary)(void);
	void (*smp_finish)(void);
	void (*cpus_done)(void);
+2 −1
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ extern void play_dead(void);
extern asmlinkage void smp_call_function_interrupt(void);

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

#endif /* __ASM_SMP_H */
+2 −2
Original line number Diff line number Diff line
@@ -80,11 +80,11 @@ void cmp_send_ipi_single(int cpu, unsigned int action)
	local_irq_restore(flags);
}

static void cmp_send_ipi_mask(cpumask_t mask, unsigned int action)
static void cmp_send_ipi_mask(const struct cpumask *mask, unsigned int action)
{
	unsigned int i;

	for_each_cpu_mask(i, mask)
	for_each_cpu(i, mask)
		cmp_send_ipi_single(i, action);
}

+2 −2
Original line number Diff line number Diff line
@@ -141,11 +141,11 @@ static void vsmp_send_ipi_single(int cpu, unsigned int action)
	local_irq_restore(flags);
}

static void vsmp_send_ipi_mask(cpumask_t mask, unsigned int action)
static void vsmp_send_ipi_mask(const struct cpumask *mask, unsigned int action)
{
	unsigned int i;

	for_each_cpu_mask(i, mask)
	for_each_cpu(i, mask)
		vsmp_send_ipi_single(i, action);
}

+2 −1
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@ static void up_send_ipi_single(int cpu, unsigned int action)
	panic(KERN_ERR "%s called", __func__);
}

static inline void up_send_ipi_mask(cpumask_t mask, unsigned int action)
static inline void up_send_ipi_mask(const struct cpumask *mask,
				    unsigned int action)
{
	panic(KERN_ERR "%s called", __func__);
}
Loading