aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/mpic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev/mpic.c')
-rw-r--r--arch/powerpc/sysdev/mpic.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 116695b7a5cb..68ea50c41902 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1628,31 +1628,15 @@ static void mpic_send_ipi(unsigned int ipi_no, const struct cpumask *cpu_mask)
1628 mpic_physmask(cpumask_bits(cpu_mask)[0])); 1628 mpic_physmask(cpumask_bits(cpu_mask)[0]));
1629} 1629}
1630 1630
1631void smp_mpic_message_pass(int target, int msg) 1631void smp_mpic_message_pass(int cpu, int msg)
1632{ 1632{
1633 cpumask_var_t tmp;
1634
1635 /* make sure we're sending something that translates to an IPI */ 1633 /* make sure we're sending something that translates to an IPI */
1636 if ((unsigned int)msg > 3) { 1634 if ((unsigned int)msg > 3) {
1637 printk("SMP %d: smp_message_pass: unknown msg %d\n", 1635 printk("SMP %d: smp_message_pass: unknown msg %d\n",
1638 smp_processor_id(), msg); 1636 smp_processor_id(), msg);
1639 return; 1637 return;
1640 } 1638 }
1641 switch (target) { 1639 mpic_send_ipi(msg, cpumask_of(cpu));
1642 case MSG_ALL:
1643 mpic_send_ipi(msg, cpu_online_mask);
1644 break;
1645 case MSG_ALL_BUT_SELF:
1646 alloc_cpumask_var(&tmp, GFP_NOWAIT);
1647 cpumask_andnot(tmp, cpu_online_mask,
1648 cpumask_of(smp_processor_id()));
1649 mpic_send_ipi(msg, tmp);
1650 free_cpumask_var(tmp);
1651 break;
1652 default:
1653 mpic_send_ipi(msg, cpumask_of(target));
1654 break;
1655 }
1656} 1640}
1657 1641
1658int __init smp_mpic_probe(void) 1642int __init smp_mpic_probe(void)