diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-11-15 04:42:08 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-03 03:26:30 -0500 |
commit | ad3b6993b9c5482e8a2ec5aed181538c921fdcbd (patch) | |
tree | ec14d13777bc9b7d495929d74a83c36687ec4eab /arch/arm/mach-vexpress | |
parent | d92e04713c6323e09a0d0fdfa0d7cbcedb175e49 (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.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/platsmp.c | 2 |
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 | */ |
10 | static inline void smp_cross_call(const struct cpumask *mask) | 10 | static 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)) { |