Skip to content

Commit

Permalink
ARM: 7123/1: smp: Add an IPI handler callable from C code
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Russell King <[email protected]>
shawnguo2 authored and Russell King committed Oct 17, 2011
1 parent 26a527e commit 0b5a1b9
Showing 2 changed files with 10 additions and 0 deletions.
5 changes: 5 additions & 0 deletions arch/arm/include/asm/smp.h
Original file line number Diff line number Diff line change
@@ -32,6 +32,11 @@ extern void show_ipi_list(struct seq_file *, int);
*/
asmlinkage void do_IPI(int ipinr, struct pt_regs *regs);

/*
* Called from C code, this handles an IPI.
*/
void handle_IPI(int ipinr, struct pt_regs *regs);

/*
* Setup the set of possible CPUs (via set_cpu_possible)
*/
5 changes: 5 additions & 0 deletions arch/arm/kernel/smp.c
Original file line number Diff line number Diff line change
@@ -586,6 +586,11 @@ static void ipi_cpu_stop(unsigned int cpu)
* Main handler for inter-processor interrupts
*/
asmlinkage void __exception_irq_entry do_IPI(int ipinr, struct pt_regs *regs)
{
handle_IPI(ipinr, regs);
}

void handle_IPI(int ipinr, struct pt_regs *regs)
{
unsigned int cpu = smp_processor_id();
struct pt_regs *old_regs = set_irq_regs(regs);

0 comments on commit 0b5a1b9

Please sign in to comment.