powerpc: Move smp_mpic_message_pass into mpic.c
authorPaul Mackerras <paulus@samba.org>
Thu, 20 Oct 2005 07:09:51 +0000 (17:09 +1000)
committerPaul Mackerras <paulus@samba.org>
Thu, 20 Oct 2005 07:09:51 +0000 (17:09 +1000)
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>
arch/powerpc/sysdev/mpic.c
arch/ppc64/kernel/smp.c
include/asm-powerpc/mpic.h
include/asm-ppc64/smp.h

index 02b4d24..3948e75 100644 (file)
@@ -904,4 +904,25 @@ void mpic_request_ipis(void)
 
        printk("IPIs requested... \n");
 }
+
+void smp_mpic_message_pass(int target, int msg)
+{
+       /* make sure we're sending something that translates to an IPI */
+       if ((unsigned int)msg > 3) {
+               printk("SMP %d: smp_message_pass: unknown msg %d\n",
+                      smp_processor_id(), msg);
+               return;
+       }
+       switch (target) {
+       case MSG_ALL:
+               mpic_send_ipi(msg, 0xffffffff);
+               break;
+       case MSG_ALL_BUT_SELF:
+               mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id()));
+               break;
+       default:
+               mpic_send_ipi(msg, 1 << target);
+               break;
+       }
+}
 #endif /* CONFIG_SMP */
index 6f4f3da..192e323 100644 (file)
@@ -69,28 +69,6 @@ void smp_call_function_interrupt(void);
 int smt_enabled_at_boot = 1;
 
 #ifdef CONFIG_MPIC
-void smp_mpic_message_pass(int target, int msg)
-{
-       /* make sure we're sending something that translates to an IPI */
-       if ( msg > 0x3 ){
-               printk("SMP %d: smp_message_pass: unknown msg %d\n",
-                      smp_processor_id(), msg);
-               return;
-       }
-       switch ( target )
-       {
-       case MSG_ALL:
-               mpic_send_ipi(msg, 0xffffffff);
-               break;
-       case MSG_ALL_BUT_SELF:
-               mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id()));
-               break;
-       default:
-               mpic_send_ipi(msg, 1 << target);
-               break;
-       }
-}
-
 int __init smp_mpic_probe(void)
 {
        int nr_cpus;
index 6b558ae..7083d1f 100644 (file)
@@ -273,6 +273,9 @@ extern void mpic_request_ipis(void);
 /* Send an IPI (non offseted number 0..3) */
 extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
 
+/* Send a message (IPI) to a given target (cpu number or MSG_*) */
+void smp_mpic_message_pass(int target, int msg);
+
 /* Fetch interrupt from a given mpic */
 extern int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs);
 /* This one gets to the primary mpic */
index d86f742..c5e9052 100644 (file)
@@ -77,7 +77,6 @@ extern int smt_enabled_at_boot;
 
 extern int smp_mpic_probe(void);
 extern void smp_mpic_setup_cpu(int cpu);
-extern void smp_mpic_message_pass(int target, int msg);
 extern void smp_generic_kick_cpu(int nr);
 
 extern void smp_generic_give_timebase(void);