diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2011-10-06 10:18:14 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-10-17 04:02:43 -0400 |
commit | 0b5a1b95dcdfa451125132d5ce3f79a27ffb0950 (patch) | |
tree | 0a2ae9da15b1a9789bf3cc3ccff37b961dacfc1b /arch/arm/kernel/smp.c | |
parent | 26a527e69d6e6077bff9e2cddcb08337ac33a52d (diff) |
ARM: 7123/1: smp: Add an IPI handler callable from C code
In order to be able to handle IPI directly from C code instead of
assembly code, introduce handle_IPI(), which is modeled after handle_IRQ().
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/smp.c')
-rw-r--r-- | arch/arm/kernel/smp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 3f12ce9b0796..2e49f1883fe9 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -587,6 +587,11 @@ static void ipi_cpu_stop(unsigned int cpu) | |||
587 | */ | 587 | */ |
588 | asmlinkage void __exception_irq_entry do_IPI(int ipinr, struct pt_regs *regs) | 588 | asmlinkage void __exception_irq_entry do_IPI(int ipinr, struct pt_regs *regs) |
589 | { | 589 | { |
590 | handle_IPI(ipinr, regs); | ||
591 | } | ||
592 | |||
593 | void handle_IPI(int ipinr, struct pt_regs *regs) | ||
594 | { | ||
590 | unsigned int cpu = smp_processor_id(); | 595 | unsigned int cpu = smp_processor_id(); |
591 | struct pt_regs *old_regs = set_irq_regs(regs); | 596 | struct pt_regs *old_regs = set_irq_regs(regs); |
592 | 597 | ||