aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-realview
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-11-15 04:42:08 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-03 03:26:30 -0500
commitad3b6993b9c5482e8a2ec5aed181538c921fdcbd (patch)
treeec14d13777bc9b7d495929d74a83c36687ec4eab /arch/arm/mach-realview
parentd92e04713c6323e09a0d0fdfa0d7cbcedb175e49 (diff)
ARM: SMP: pass an ipi number to smp_cross_call()
This allows us to use smp_cross_call() to trigger a number of different software generated interrupts, rather than combining them all on one SGI. Recover the SGI number via do_IPI. Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-realview')
-rw-r--r--arch/arm/mach-realview/include/mach/smp.h4
-rw-r--r--arch/arm/mach-realview/platsmp.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mach-realview/include/mach/smp.h b/arch/arm/mach-realview/include/mach/smp.h
index d3cd265cb058..d1aa70415a4e 100644
--- a/arch/arm/mach-realview/include/mach/smp.h
+++ b/arch/arm/mach-realview/include/mach/smp.h
@@ -7,9 +7,9 @@
7/* 7/*
8 * We use IRQ1 as the IPI 8 * We use IRQ1 as the IPI
9 */ 9 */
10static inline void smp_cross_call(const struct cpumask *mask) 10static inline void smp_cross_call(const struct cpumask *mask, int ipi)
11{ 11{
12 gic_raise_softirq(mask, 1); 12 gic_raise_softirq(mask, ipi);
13} 13}
14 14
15#endif 15#endif
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index 009265818d55..af3d9093390b 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -116,7 +116,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
116 * Use smp_cross_call() for this, since there's little 116 * Use smp_cross_call() for this, since there's little
117 * point duplicating the code here 117 * point duplicating the code here
118 */ 118 */
119 smp_cross_call(cpumask_of(cpu)); 119 smp_cross_call(cpumask_of(cpu), 1);
120 120
121 timeout = jiffies + (1 * HZ); 121 timeout = jiffies + (1 * HZ);
122 while (time_before(jiffies, timeout)) { 122 while (time_before(jiffies, timeout)) {