diff options
author | Paul Mackerras <paulus@samba.org> | 2005-10-19 07:44:51 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-10-19 07:44:51 -0400 |
commit | 7ed476d17f04473f70d796cb6c172bdcfcc9b8e5 (patch) | |
tree | bafacf9813cdbb27a9e4a125340c98415cdcb903 | |
parent | 46aab8c584ea69cdbe1060f5eae5bf092763f710 (diff) |
ppc: Minor smp changes for consistency with ppc64
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>
-rw-r--r-- | arch/powerpc/platforms/powermac/setup.c | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/smp.c | 5 | ||||
-rw-r--r-- | arch/ppc/kernel/smp.c | 20 | ||||
-rw-r--r-- | arch/ppc/platforms/chrp_setup.c | 2 | ||||
-rw-r--r-- | arch/ppc/platforms/gemini_setup.c | 2 | ||||
-rw-r--r-- | arch/ppc/platforms/hdpu.c | 4 | ||||
-rw-r--r-- | arch/ppc/platforms/pmac_setup.c | 4 | ||||
-rw-r--r-- | arch/ppc/platforms/pmac_smp.c | 3 | ||||
-rw-r--r-- | arch/ppc/platforms/pplus.c | 2 | ||||
-rw-r--r-- | arch/ppc/platforms/prep_setup.c | 2 | ||||
-rw-r--r-- | arch/ppc/syslib/open_pic.c | 2 |
11 files changed, 22 insertions, 28 deletions
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 9416fcaa6daa..7eb0c34b6994 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -312,9 +312,9 @@ pmac_setup_arch(void) | |||
312 | #ifdef CONFIG_SMP | 312 | #ifdef CONFIG_SMP |
313 | /* Check for Core99 */ | 313 | /* Check for Core99 */ |
314 | if (find_devices("uni-n") || find_devices("u3")) | 314 | if (find_devices("uni-n") || find_devices("u3")) |
315 | ppc_md.smp_ops = &core99_smp_ops; | 315 | smp_ops = &core99_smp_ops; |
316 | else | 316 | else |
317 | ppc_md.smp_ops = &psurge_smp_ops; | 317 | smp_ops = &psurge_smp_ops; |
318 | #endif /* CONFIG_SMP */ | 318 | #endif /* CONFIG_SMP */ |
319 | 319 | ||
320 | pci_create_OF_bus_map(); | 320 | pci_create_OF_bus_map(); |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index fb996336c58b..ccaa0534d60f 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -209,8 +209,7 @@ irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) | |||
209 | return IRQ_HANDLED; | 209 | return IRQ_HANDLED; |
210 | } | 210 | } |
211 | 211 | ||
212 | static void smp_psurge_message_pass(int target, int msg, unsigned long data, | 212 | static void smp_psurge_message_pass(int target, int msg) |
213 | int wait) | ||
214 | { | 213 | { |
215 | int i; | 214 | int i; |
216 | 215 | ||
@@ -627,7 +626,7 @@ void smp_core99_give_timebase(void) | |||
627 | local_irq_restore(flags); | 626 | local_irq_restore(flags); |
628 | } | 627 | } |
629 | 628 | ||
630 | void smp_core99_message_pass(int target, int msg, unsigned long data, int wait) | 629 | void smp_core99_message_pass(int target, int msg) |
631 | { | 630 | { |
632 | cpumask_t mask = CPU_MASK_ALL; | 631 | cpumask_t mask = CPU_MASK_ALL; |
633 | /* make sure we're sending something that translates to an IPI */ | 632 | /* make sure we're sending something that translates to an IPI */ |
diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c index 801c793fdec8..bc5bf1124836 100644 --- a/arch/ppc/kernel/smp.c +++ b/arch/ppc/kernel/smp.c | |||
@@ -51,7 +51,7 @@ EXPORT_SYMBOL(cpu_online_map); | |||
51 | EXPORT_SYMBOL(cpu_possible_map); | 51 | EXPORT_SYMBOL(cpu_possible_map); |
52 | 52 | ||
53 | /* SMP operations for this machine */ | 53 | /* SMP operations for this machine */ |
54 | static struct smp_ops_t *smp_ops; | 54 | struct smp_ops_t *smp_ops; |
55 | 55 | ||
56 | /* all cpu mappings are 1-1 -- Cort */ | 56 | /* all cpu mappings are 1-1 -- Cort */ |
57 | volatile unsigned long cpu_callin_map[NR_CPUS]; | 57 | volatile unsigned long cpu_callin_map[NR_CPUS]; |
@@ -74,11 +74,11 @@ extern void __save_cpu_setup(void); | |||
74 | #define PPC_MSG_XMON_BREAK 3 | 74 | #define PPC_MSG_XMON_BREAK 3 |
75 | 75 | ||
76 | static inline void | 76 | static inline void |
77 | smp_message_pass(int target, int msg, unsigned long data, int wait) | 77 | smp_message_pass(int target, int msg) |
78 | { | 78 | { |
79 | if (smp_ops){ | 79 | if (smp_ops) { |
80 | atomic_inc(&ipi_sent); | 80 | atomic_inc(&ipi_sent); |
81 | smp_ops->message_pass(target,msg,data,wait); | 81 | smp_ops->message_pass(target, msg); |
82 | } | 82 | } |
83 | } | 83 | } |
84 | 84 | ||
@@ -119,7 +119,7 @@ void smp_message_recv(int msg, struct pt_regs *regs) | |||
119 | void smp_send_tlb_invalidate(int cpu) | 119 | void smp_send_tlb_invalidate(int cpu) |
120 | { | 120 | { |
121 | if ( PVR_VER(mfspr(SPRN_PVR)) == 8 ) | 121 | if ( PVR_VER(mfspr(SPRN_PVR)) == 8 ) |
122 | smp_message_pass(MSG_ALL_BUT_SELF, PPC_MSG_INVALIDATE_TLB, 0, 0); | 122 | smp_message_pass(MSG_ALL_BUT_SELF, PPC_MSG_INVALIDATE_TLB); |
123 | } | 123 | } |
124 | 124 | ||
125 | void smp_send_reschedule(int cpu) | 125 | void smp_send_reschedule(int cpu) |
@@ -135,13 +135,13 @@ void smp_send_reschedule(int cpu) | |||
135 | */ | 135 | */ |
136 | /* This is only used if `cpu' is running an idle task, | 136 | /* This is only used if `cpu' is running an idle task, |
137 | so it will reschedule itself anyway... */ | 137 | so it will reschedule itself anyway... */ |
138 | smp_message_pass(cpu, PPC_MSG_RESCHEDULE, 0, 0); | 138 | smp_message_pass(cpu, PPC_MSG_RESCHEDULE); |
139 | } | 139 | } |
140 | 140 | ||
141 | #ifdef CONFIG_XMON | 141 | #ifdef CONFIG_XMON |
142 | void smp_send_xmon_break(int cpu) | 142 | void smp_send_xmon_break(int cpu) |
143 | { | 143 | { |
144 | smp_message_pass(cpu, PPC_MSG_XMON_BREAK, 0, 0); | 144 | smp_message_pass(cpu, PPC_MSG_XMON_BREAK); |
145 | } | 145 | } |
146 | #endif /* CONFIG_XMON */ | 146 | #endif /* CONFIG_XMON */ |
147 | 147 | ||
@@ -224,7 +224,7 @@ static int __smp_call_function(void (*func) (void *info), void *info, | |||
224 | spin_lock(&call_lock); | 224 | spin_lock(&call_lock); |
225 | call_data = &data; | 225 | call_data = &data; |
226 | /* Send a message to all other CPUs and wait for them to respond */ | 226 | /* Send a message to all other CPUs and wait for them to respond */ |
227 | smp_message_pass(target, PPC_MSG_CALL_FUNCTION, 0, 0); | 227 | smp_message_pass(target, PPC_MSG_CALL_FUNCTION); |
228 | 228 | ||
229 | /* Wait for response */ | 229 | /* Wait for response */ |
230 | timeout = 1000000; | 230 | timeout = 1000000; |
@@ -294,7 +294,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
294 | smp_store_cpu_info(smp_processor_id()); | 294 | smp_store_cpu_info(smp_processor_id()); |
295 | cpu_callin_map[smp_processor_id()] = 1; | 295 | cpu_callin_map[smp_processor_id()] = 1; |
296 | 296 | ||
297 | smp_ops = ppc_md.smp_ops; | ||
298 | if (smp_ops == NULL) { | 297 | if (smp_ops == NULL) { |
299 | printk("SMP not supported on this machine.\n"); | 298 | printk("SMP not supported on this machine.\n"); |
300 | return; | 299 | return; |
@@ -308,9 +307,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
308 | /* Backup CPU 0 state */ | 307 | /* Backup CPU 0 state */ |
309 | __save_cpu_setup(); | 308 | __save_cpu_setup(); |
310 | 309 | ||
311 | if (smp_ops->space_timers) | ||
312 | smp_ops->space_timers(num_cpus); | ||
313 | |||
314 | for_each_cpu(cpu) { | 310 | for_each_cpu(cpu) { |
315 | if (cpu == smp_processor_id()) | 311 | if (cpu == smp_processor_id()) |
316 | continue; | 312 | continue; |
diff --git a/arch/ppc/platforms/chrp_setup.c b/arch/ppc/platforms/chrp_setup.c index 8c874e957a4b..56c53bb3dfd4 100644 --- a/arch/ppc/platforms/chrp_setup.c +++ b/arch/ppc/platforms/chrp_setup.c | |||
@@ -553,7 +553,7 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
553 | #endif | 553 | #endif |
554 | 554 | ||
555 | #ifdef CONFIG_SMP | 555 | #ifdef CONFIG_SMP |
556 | ppc_md.smp_ops = &chrp_smp_ops; | 556 | smp_ops = &chrp_smp_ops; |
557 | #endif /* CONFIG_SMP */ | 557 | #endif /* CONFIG_SMP */ |
558 | 558 | ||
559 | /* | 559 | /* |
diff --git a/arch/ppc/platforms/gemini_setup.c b/arch/ppc/platforms/gemini_setup.c index ec6aa04d001e..729897c59033 100644 --- a/arch/ppc/platforms/gemini_setup.c +++ b/arch/ppc/platforms/gemini_setup.c | |||
@@ -575,6 +575,6 @@ void __init platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
575 | ppc_md.pcibios_fixup_bus = gemini_pcibios_fixup; | 575 | ppc_md.pcibios_fixup_bus = gemini_pcibios_fixup; |
576 | 576 | ||
577 | #ifdef CONFIG_SMP | 577 | #ifdef CONFIG_SMP |
578 | ppc_md.smp_ops = &gemini_smp_ops; | 578 | smp_ops = &gemini_smp_ops; |
579 | #endif /* CONFIG_SMP */ | 579 | #endif /* CONFIG_SMP */ |
580 | } | 580 | } |
diff --git a/arch/ppc/platforms/hdpu.c b/arch/ppc/platforms/hdpu.c index ff3796860123..2cc12b04584a 100644 --- a/arch/ppc/platforms/hdpu.c +++ b/arch/ppc/platforms/hdpu.c | |||
@@ -753,7 +753,7 @@ static int smp_hdpu_probe(void) | |||
753 | } | 753 | } |
754 | 754 | ||
755 | static void | 755 | static void |
756 | smp_hdpu_message_pass(int target, int msg, unsigned long data, int wait) | 756 | smp_hdpu_message_pass(int target, int msg) |
757 | { | 757 | { |
758 | if (msg > 0x3) { | 758 | if (msg > 0x3) { |
759 | printk("SMP %d: smp_message_pass: unknown msg %d\n", | 759 | 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, | |||
949 | #endif /* CONFIG_SERIAL_TEXT_DEBUG */ | 949 | #endif /* CONFIG_SERIAL_TEXT_DEBUG */ |
950 | 950 | ||
951 | #ifdef CONFIG_SMP | 951 | #ifdef CONFIG_SMP |
952 | ppc_md.smp_ops = &hdpu_smp_ops; | 952 | smp_ops = &hdpu_smp_ops; |
953 | #endif /* CONFIG_SMP */ | 953 | #endif /* CONFIG_SMP */ |
954 | 954 | ||
955 | #if defined(CONFIG_SERIAL_MPSC) || defined(CONFIG_MV643XX_ETH) | 955 | #if defined(CONFIG_SERIAL_MPSC) || defined(CONFIG_MV643XX_ETH) |
diff --git a/arch/ppc/platforms/pmac_setup.c b/arch/ppc/platforms/pmac_setup.c index 74165684552a..55d2beffe560 100644 --- a/arch/ppc/platforms/pmac_setup.c +++ b/arch/ppc/platforms/pmac_setup.c | |||
@@ -330,9 +330,9 @@ pmac_setup_arch(void) | |||
330 | #ifdef CONFIG_SMP | 330 | #ifdef CONFIG_SMP |
331 | /* Check for Core99 */ | 331 | /* Check for Core99 */ |
332 | if (find_devices("uni-n") || find_devices("u3")) | 332 | if (find_devices("uni-n") || find_devices("u3")) |
333 | ppc_md.smp_ops = &core99_smp_ops; | 333 | smp_ops = &core99_smp_ops; |
334 | else | 334 | else |
335 | ppc_md.smp_ops = &psurge_smp_ops; | 335 | smp_ops = &psurge_smp_ops; |
336 | #endif /* CONFIG_SMP */ | 336 | #endif /* CONFIG_SMP */ |
337 | 337 | ||
338 | pci_create_OF_bus_map(); | 338 | pci_create_OF_bus_map(); |
diff --git a/arch/ppc/platforms/pmac_smp.c b/arch/ppc/platforms/pmac_smp.c index e613f0e0d9eb..26ff26238f03 100644 --- a/arch/ppc/platforms/pmac_smp.c +++ b/arch/ppc/platforms/pmac_smp.c | |||
@@ -209,8 +209,7 @@ irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) | |||
209 | return IRQ_HANDLED; | 209 | return IRQ_HANDLED; |
210 | } | 210 | } |
211 | 211 | ||
212 | static void smp_psurge_message_pass(int target, int msg, unsigned long data, | 212 | static void smp_psurge_message_pass(int target, int msg) |
213 | int wait) | ||
214 | { | 213 | { |
215 | int i; | 214 | int i; |
216 | 215 | ||
diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c index c8803214405d..59eb330b2090 100644 --- a/arch/ppc/platforms/pplus.c +++ b/arch/ppc/platforms/pplus.c | |||
@@ -903,6 +903,6 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
903 | ppc_md.kgdb_map_scc = gen550_kgdb_map_scc; | 903 | ppc_md.kgdb_map_scc = gen550_kgdb_map_scc; |
904 | #endif | 904 | #endif |
905 | #ifdef CONFIG_SMP | 905 | #ifdef CONFIG_SMP |
906 | ppc_md.smp_ops = &pplus_smp_ops; | 906 | smp_ops = &pplus_smp_ops; |
907 | #endif /* CONFIG_SMP */ | 907 | #endif /* CONFIG_SMP */ |
908 | } | 908 | } |
diff --git a/arch/ppc/platforms/prep_setup.c b/arch/ppc/platforms/prep_setup.c index 490ff175c902..9e5637e5f5a9 100644 --- a/arch/ppc/platforms/prep_setup.c +++ b/arch/ppc/platforms/prep_setup.c | |||
@@ -1160,6 +1160,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5, | |||
1160 | #endif | 1160 | #endif |
1161 | 1161 | ||
1162 | #ifdef CONFIG_SMP | 1162 | #ifdef CONFIG_SMP |
1163 | ppc_md.smp_ops = &prep_smp_ops; | 1163 | smp_ops = &prep_smp_ops; |
1164 | #endif /* CONFIG_SMP */ | 1164 | #endif /* CONFIG_SMP */ |
1165 | } | 1165 | } |
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c index 361f113260d7..894779712b46 100644 --- a/arch/ppc/syslib/open_pic.c +++ b/arch/ppc/syslib/open_pic.c | |||
@@ -890,7 +890,7 @@ openpic_get_irq(struct pt_regs *regs) | |||
890 | 890 | ||
891 | #ifdef CONFIG_SMP | 891 | #ifdef CONFIG_SMP |
892 | void | 892 | void |
893 | smp_openpic_message_pass(int target, int msg, unsigned long data, int wait) | 893 | smp_openpic_message_pass(int target, int msg) |
894 | { | 894 | { |
895 | cpumask_t mask = CPU_MASK_ALL; | 895 | cpumask_t mask = CPU_MASK_ALL; |
896 | /* make sure we're sending something that translates to an IPI */ | 896 | /* make sure we're sending something that translates to an IPI */ |