aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/mpic.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2005-10-20 03:09:51 -0400
committerPaul Mackerras <paulus@samba.org>2005-10-20 03:09:51 -0400
commita9c59264690aea9d0df2d2d76683bc39ec6b7288 (patch)
tree5cf1bc1181caacf93abe91585ab6e989542527e1 /arch/powerpc/sysdev/mpic.c
parentd8699e65c6bc0a81b5e679ca5b135bfe3c3fb483 (diff)
powerpc: Move smp_mpic_message_pass into mpic.c
Having it here rather than in arch/ppc64/kernel/smp.c means that we can use it on 32-bit SMP systems easily with ARCH=powerpc. Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/sysdev/mpic.c')
-rw-r--r--arch/powerpc/sysdev/mpic.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 02b4d2488bfd..3948e759d41a 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -904,4 +904,25 @@ void mpic_request_ipis(void)
904 904
905 printk("IPIs requested... \n"); 905 printk("IPIs requested... \n");
906} 906}
907
908void smp_mpic_message_pass(int target, int msg)
909{
910 /* make sure we're sending something that translates to an IPI */
911 if ((unsigned int)msg > 3) {
912 printk("SMP %d: smp_message_pass: unknown msg %d\n",
913 smp_processor_id(), msg);
914 return;
915 }
916 switch (target) {
917 case MSG_ALL:
918 mpic_send_ipi(msg, 0xffffffff);
919 break;
920 case MSG_ALL_BUT_SELF:
921 mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id()));
922 break;
923 default:
924 mpic_send_ipi(msg, 1 << target);
925 break;
926 }
927}
907#endif /* CONFIG_SMP */ 928#endif /* CONFIG_SMP */