Skip to content

Commit

Permalink
cpumask: arch_send_call_function_ipi_mask: mips
Browse files Browse the repository at this point in the history
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: Rusty Russell <[email protected]>
  • Loading branch information
rustyrussell committed Sep 24, 2009
1 parent c2a3a48 commit 48a048f
Show file tree
Hide file tree
Showing 12 changed files with 25 additions and 20 deletions.
2 changes: 1 addition & 1 deletion arch/mips/include/asm/smp-ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion arch/mips/include/asm/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
4 changes: 2 additions & 2 deletions arch/mips/kernel/smp-cmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
4 changes: 2 additions & 2 deletions arch/mips/kernel/smp-mt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
3 changes: 2 additions & 1 deletion arch/mips/kernel/smp-up.c
Original file line number Diff line number Diff line change
Expand Up @@ -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__);
}
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ asmlinkage __cpuinit void start_secondary(void)
cpu_idle();
}

void arch_send_call_function_ipi(cpumask_t mask)
void arch_send_call_function_ipi_mask(const struct cpumask *mask)
{
mp_ops->send_ipi_mask(mask, SMP_CALL_FUNCTION);
}
Expand Down
5 changes: 3 additions & 2 deletions arch/mips/mipssim/sim_smtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,12 @@ static void ssmtc_send_ipi_single(int cpu, unsigned int action)
/* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */
}

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

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

Expand Down
4 changes: 2 additions & 2 deletions arch/mips/mti-malta/malta-smtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ static void msmtc_send_ipi_single(int cpu, unsigned int action)
smtc_send_ipi(cpu, LINUX_SMP_IPI, action);
}

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

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

Expand Down
4 changes: 2 additions & 2 deletions arch/mips/pmc-sierra/yosemite/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,11 @@ static void yos_send_ipi_single(int cpu, unsigned int action)
}
}

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

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

Expand Down
4 changes: 2 additions & 2 deletions arch/mips/sgi-ip27/ip27-smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,11 +165,11 @@ static void ip27_send_ipi_single(int destid, unsigned int action)
REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq);
}

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

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

Expand Down
5 changes: 3 additions & 2 deletions arch/mips/sibyte/bcm1480/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,12 @@ static void bcm1480_send_ipi_single(int cpu, unsigned int action)
__raw_writeq((((u64)action)<< 48), mailbox_0_set_regs[cpu]);
}

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

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

Expand Down
5 changes: 3 additions & 2 deletions arch/mips/sibyte/sb1250/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,12 @@ static void sb1250_send_ipi_single(int cpu, unsigned int action)
__raw_writeq((((u64)action) << 48), mailbox_set_regs[cpu]);
}

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

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

Expand Down

0 comments on commit 48a048f

Please sign in to comment.