aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-vexpress
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-vexpress
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-vexpress')
-rw-r--r--arch/arm/mach-vexpress/include/mach/smp.h4
-rw-r--r--arch/arm/mach-vexpress/platsmp.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/mach-vexpress/include/mach/smp.h b/arch/arm/mach-vexpress/include/mach/smp.h
index 5a6da4fd247e..721be0f0311d 100644
--- a/arch/arm/mach-vexpress/include/mach/smp.h
+++ b/arch/arm/mach-vexpress/include/mach/smp.h
@@ -7,8 +7,8 @@
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#endif 14#endif
diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c
index 670970699ba9..276f916014c1 100644
--- a/arch/arm/mach-vexpress/platsmp.c
+++ b/arch/arm/mach-vexpress/platsmp.c
@@ -92,7 +92,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
92 * the boot monitor to read the system wide flags register, 92 * the boot monitor to read the system wide flags register,
93 * and branch to the address found there. 93 * and branch to the address found there.
94 */ 94 */
95 smp_cross_call(cpumask_of(cpu)); 95 smp_cross_call(cpumask_of(cpu), 1);
96 96
97 timeout = jiffies + (1 * HZ); 97 timeout = jiffies + (1 * HZ);
98 while (time_before(jiffies, timeout)) { 98 while (time_before(jiffies, timeout)) {