aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/sh/include/asm/smp.h1
-rw-r--r--arch/sh/kernel/smp.c20
2 files changed, 20 insertions, 1 deletions
diff --git a/arch/sh/include/asm/smp.h b/arch/sh/include/asm/smp.h
index e2b79e6864e7..1292c6d3c53e 100644
--- a/arch/sh/include/asm/smp.h
+++ b/arch/sh/include/asm/smp.h
@@ -26,6 +26,7 @@ extern int __cpu_logical_map[NR_CPUS];
26#define SMP_MSG_FUNCTION_SINGLE 2 26#define SMP_MSG_FUNCTION_SINGLE 2
27#define SMP_MSG_NR 3 27#define SMP_MSG_NR 3
28 28
29void smp_message_recv(unsigned int msg);
29void plat_smp_setup(void); 30void plat_smp_setup(void);
30void plat_prepare_cpus(unsigned int max_cpus); 31void plat_prepare_cpus(unsigned int max_cpus);
31int plat_smp_processor_id(void); 32int plat_smp_processor_id(void);
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 60c50841143e..ebfdd364544f 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * SMP support for the SuperH processors. 4 * SMP support for the SuperH processors.
5 * 5 *
6 * Copyright (C) 2002 - 2007 Paul Mundt 6 * Copyright (C) 2002 - 2008 Paul Mundt
7 * Copyright (C) 2006 - 2007 Akio Idehara 7 * Copyright (C) 2006 - 2007 Akio Idehara
8 * 8 *
9 * This file is subject to the terms and conditions of the GNU General Public 9 * This file is subject to the terms and conditions of the GNU General Public
@@ -184,6 +184,24 @@ void arch_send_call_function_single_ipi(int cpu)
184 plat_send_ipi(cpu, SMP_MSG_FUNCTION_SINGLE); 184 plat_send_ipi(cpu, SMP_MSG_FUNCTION_SINGLE);
185} 185}
186 186
187void smp_message_recv(unsigned int msg)
188{
189 switch (msg) {
190 case SMP_MSG_FUNCTION:
191 generic_smp_call_function_interrupt();
192 break;
193 case SMP_MSG_RESCHEDULE:
194 break;
195 case SMP_MSG_FUNCTION_SINGLE:
196 generic_smp_call_function_single_interrupt();
197 break;
198 default:
199 printk(KERN_WARNING "SMP %d: %s(): unknown IPI %d\n",
200 smp_processor_id(), __func__, msg);
201 break;
202 }
203}
204
187/* Not really SMP stuff ... */ 205/* Not really SMP stuff ... */
188int setup_profiling_timer(unsigned int multiplier) 206int setup_profiling_timer(unsigned int multiplier)
189{ 207{