ppc: Minor smp changes for consistency with ppc64
authorPaul Mackerras <paulus@samba.org>
Wed, 19 Oct 2005 11:44:51 +0000 (21:44 +1000)
committerPaul Mackerras <paulus@samba.org>
Wed, 19 Oct 2005 11:44:51 +0000 (21:44 +1000)
This makes platform code use the smp_ops variable directly instead
of ppc_md.smp_ops, removes the two unused `data' and `wait' arguments
from the *_message_pass() functions, and removes the call to the
never-implemented smp_ops->space_timers() function.

Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/powermac/setup.c
arch/powerpc/platforms/powermac/smp.c
arch/ppc/kernel/smp.c
arch/ppc/platforms/chrp_setup.c
arch/ppc/platforms/gemini_setup.c
arch/ppc/platforms/hdpu.c
arch/ppc/platforms/pmac_setup.c
arch/ppc/platforms/pmac_smp.c
arch/ppc/platforms/pplus.c
arch/ppc/platforms/prep_setup.c
arch/ppc/syslib/open_pic.c

index 9416fcaa6daae6d811e311c8bf4e9570292f1d5b..7eb0c34b69942df02e89d8b24bf6d06b649e4d9f 100644 (file)
@@ -312,9 +312,9 @@ pmac_setup_arch(void)
 #ifdef CONFIG_SMP
        /* Check for Core99 */
        if (find_devices("uni-n") || find_devices("u3"))
-               ppc_md.smp_ops = &core99_smp_ops;
+               smp_ops = &core99_smp_ops;
        else
-               ppc_md.smp_ops = &psurge_smp_ops;
+               smp_ops = &psurge_smp_ops;
 #endif /* CONFIG_SMP */
 
        pci_create_OF_bus_map();
index fb996336c58b6f5abc38f0ede4b18c50065a0243..ccaa0534d60f7d08bb8c873684f57afd04e59ea2 100644 (file)
@@ -209,8 +209,7 @@ irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static void smp_psurge_message_pass(int target, int msg, unsigned long data,
-                                          int wait)
+static void smp_psurge_message_pass(int target, int msg)
 {
        int i;
 
@@ -627,7 +626,7 @@ void smp_core99_give_timebase(void)
        local_irq_restore(flags);
 }
 
-void smp_core99_message_pass(int target, int msg, unsigned long data, int wait)
+void smp_core99_message_pass(int target, int msg)
 {
        cpumask_t mask = CPU_MASK_ALL;
        /* make sure we're sending something that translates to an IPI */
index 801c793fdec8bf3640e3fe2d3728020d10351149..bc5bf1124836adb4013c8a09ceb28c9421feed26 100644 (file)
@@ -51,7 +51,7 @@ EXPORT_SYMBOL(cpu_online_map);
 EXPORT_SYMBOL(cpu_possible_map);
 
 /* SMP operations for this machine */
-static struct smp_ops_t *smp_ops;
+struct smp_ops_t *smp_ops;
 
 /* all cpu mappings are 1-1 -- Cort */
 volatile unsigned long cpu_callin_map[NR_CPUS];
@@ -74,11 +74,11 @@ extern void __save_cpu_setup(void);
 #define PPC_MSG_XMON_BREAK     3
 
 static inline void
-smp_message_pass(int target, int msg, unsigned long data, int wait)
+smp_message_pass(int target, int msg)
 {
-       if (smp_ops){
+       if (smp_ops) {
                atomic_inc(&ipi_sent);
-               smp_ops->message_pass(target,msg,data,wait);
+               smp_ops->message_pass(target, msg);
        }
 }
 
@@ -119,7 +119,7 @@ void smp_message_recv(int msg, struct pt_regs *regs)
 void smp_send_tlb_invalidate(int cpu)
 {
        if ( PVR_VER(mfspr(SPRN_PVR)) == 8 )
-               smp_message_pass(MSG_ALL_BUT_SELF, PPC_MSG_INVALIDATE_TLB, 0, 0);
+               smp_message_pass(MSG_ALL_BUT_SELF, PPC_MSG_INVALIDATE_TLB);
 }
 
 void smp_send_reschedule(int cpu)
@@ -135,13 +135,13 @@ void smp_send_reschedule(int cpu)
         */
        /* This is only used if `cpu' is running an idle task,
           so it will reschedule itself anyway... */
-       smp_message_pass(cpu, PPC_MSG_RESCHEDULE, 0, 0);
+       smp_message_pass(cpu, PPC_MSG_RESCHEDULE);
 }
 
 #ifdef CONFIG_XMON
 void smp_send_xmon_break(int cpu)
 {
-       smp_message_pass(cpu, PPC_MSG_XMON_BREAK, 0, 0);
+       smp_message_pass(cpu, PPC_MSG_XMON_BREAK);
 }
 #endif /* CONFIG_XMON */
 
@@ -224,7 +224,7 @@ static int __smp_call_function(void (*func) (void *info), void *info,
        spin_lock(&call_lock);
        call_data = &data;
        /* Send a message to all other CPUs and wait for them to respond */
-       smp_message_pass(target, PPC_MSG_CALL_FUNCTION, 0, 0);
+       smp_message_pass(target, PPC_MSG_CALL_FUNCTION);
 
        /* Wait for response */
        timeout = 1000000;
@@ -294,7 +294,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
         smp_store_cpu_info(smp_processor_id());
        cpu_callin_map[smp_processor_id()] = 1;
 
-       smp_ops = ppc_md.smp_ops;
        if (smp_ops == NULL) {
                printk("SMP not supported on this machine.\n");
                return;
@@ -308,9 +307,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
        /* Backup CPU 0 state */
        __save_cpu_setup();
 
-       if (smp_ops->space_timers)
-               smp_ops->space_timers(num_cpus);
-
        for_each_cpu(cpu) {
                if (cpu == smp_processor_id())
                        continue;
index 8c874e957a4b33ea559de56146535e02a5090494..56c53bb3dfd41da19ed1eec5023647ba31dad900 100644 (file)
@@ -553,7 +553,7 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
 #endif
 
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops = &chrp_smp_ops;
+       smp_ops = &chrp_smp_ops;
 #endif /* CONFIG_SMP */
 
        /*
index ec6aa04d001e967e9059e71f3a0277cf6a2fc22d..729897c59033c429a0c4704dbae431c93f182c2a 100644 (file)
@@ -575,6 +575,6 @@ void __init platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.pcibios_fixup_bus = gemini_pcibios_fixup;
 
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops = &gemini_smp_ops;
+       smp_ops = &gemini_smp_ops;
 #endif /* CONFIG_SMP */
 }
index ff3796860123ae46ec899ea5da0a9afcaeeb7bdd..2cc12b04584ad0dc5de7c9594fa88ca789be8f0b 100644 (file)
@@ -753,7 +753,7 @@ static int smp_hdpu_probe(void)
 }
 
 static void
-smp_hdpu_message_pass(int target, int msg, unsigned long data, int wait)
+smp_hdpu_message_pass(int target, int msg)
 {
        if (msg > 0x3) {
                printk("SMP %d: smp_message_pass: unknown msg %d\n",
@@ -949,7 +949,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
 #endif                         /* CONFIG_SERIAL_TEXT_DEBUG */
 
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops = &hdpu_smp_ops;
+       smp_ops = &hdpu_smp_ops;
 #endif                         /* CONFIG_SMP */
 
 #if defined(CONFIG_SERIAL_MPSC) || defined(CONFIG_MV643XX_ETH)
index 74165684552a95c40763b7823f1c9f127c02a008..55d2beffe5606f72462ae960c49e94bc36276c4e 100644 (file)
@@ -330,9 +330,9 @@ pmac_setup_arch(void)
 #ifdef CONFIG_SMP
        /* Check for Core99 */
        if (find_devices("uni-n") || find_devices("u3"))
-               ppc_md.smp_ops = &core99_smp_ops;
+               smp_ops = &core99_smp_ops;
        else
-               ppc_md.smp_ops = &psurge_smp_ops;
+               smp_ops = &psurge_smp_ops;
 #endif /* CONFIG_SMP */
 
        pci_create_OF_bus_map();
index e613f0e0d9eb36f675f7fa306c38a31f77275586..26ff26238f03c8237a27d162d35996fbc8d40026 100644 (file)
@@ -209,8 +209,7 @@ irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static void smp_psurge_message_pass(int target, int msg, unsigned long data,
-                                          int wait)
+static void smp_psurge_message_pass(int target, int msg)
 {
        int i;
 
index c8803214405db32200a0861bad61fd3a199b3d44..59eb330b20905cbfc69a723b208a9d0854db8f3b 100644 (file)
@@ -903,6 +903,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.kgdb_map_scc = gen550_kgdb_map_scc;
 #endif
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops = &pplus_smp_ops;
+       smp_ops = &pplus_smp_ops;
 #endif                         /* CONFIG_SMP */
 }
index 490ff175c902c3e8e98cc529dc7b1e97f0d4eda5..9e5637e5f5a9aab23ebd10ac19eba632c792ab9c 100644 (file)
@@ -1160,6 +1160,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5,
 #endif
 
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops           = &prep_smp_ops;
+       smp_ops                  = &prep_smp_ops;
 #endif /* CONFIG_SMP */
 }
index 361f113260d718acd562b0c26c356c2a542b24d4..894779712b4614fbb517ffd23e3435fd76b835f7 100644 (file)
@@ -890,7 +890,7 @@ openpic_get_irq(struct pt_regs *regs)
 
 #ifdef CONFIG_SMP
 void
-smp_openpic_message_pass(int target, int msg, unsigned long data, int wait)
+smp_openpic_message_pass(int target, int msg)
 {
        cpumask_t mask = CPU_MASK_ALL;
        /* make sure we're sending something that translates to an IPI */