diff options
author | Rabin Vincent <rabin@rab.in> | 2010-10-07 11:21:58 -0400 |
---|---|---|
committer | Rabin Vincent <rabin@rab.in> | 2010-11-19 11:13:26 -0500 |
commit | 61b5cb1c3bff8875d2fd289c7b6ac344f95261fa (patch) | |
tree | 05a10694778dc70c5eb6114a1ed8403745a2cfcd /arch/arm/kernel/smp.c | |
parent | ec763f0de879fa1a64b7641098271107f5e32c67 (diff) |
ARM: place C irq handlers in IRQ_ENTRY for ftrace
When FUNCTION_GRAPH_TRACER is enabled, place do_IRQ() and friends in the
IRQ_ENTRY section so that the irq-related features of the function graph
tracer work.
Signed-off-by: Rabin Vincent <rabin@rab.in>
Diffstat (limited to 'arch/arm/kernel/smp.c')
-rw-r--r-- | arch/arm/kernel/smp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 8c1959590252..bbca89872c18 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/cache.h> | 16 | #include <linux/cache.h> |
17 | #include <linux/profile.h> | 17 | #include <linux/profile.h> |
18 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
19 | #include <linux/ftrace.h> | ||
19 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
20 | #include <linux/err.h> | 21 | #include <linux/err.h> |
21 | #include <linux/cpu.h> | 22 | #include <linux/cpu.h> |
@@ -457,7 +458,7 @@ static void ipi_timer(void) | |||
457 | } | 458 | } |
458 | 459 | ||
459 | #ifdef CONFIG_LOCAL_TIMERS | 460 | #ifdef CONFIG_LOCAL_TIMERS |
460 | asmlinkage void __exception do_local_timer(struct pt_regs *regs) | 461 | asmlinkage void __exception_irq_entry do_local_timer(struct pt_regs *regs) |
461 | { | 462 | { |
462 | struct pt_regs *old_regs = set_irq_regs(regs); | 463 | struct pt_regs *old_regs = set_irq_regs(regs); |
463 | int cpu = smp_processor_id(); | 464 | int cpu = smp_processor_id(); |
@@ -544,7 +545,7 @@ static void ipi_cpu_stop(unsigned int cpu) | |||
544 | * | 545 | * |
545 | * Bit 0 - Inter-processor function call | 546 | * Bit 0 - Inter-processor function call |
546 | */ | 547 | */ |
547 | asmlinkage void __exception do_IPI(struct pt_regs *regs) | 548 | asmlinkage void __exception_irq_entry do_IPI(struct pt_regs *regs) |
548 | { | 549 | { |
549 | unsigned int cpu = smp_processor_id(); | 550 | unsigned int cpu = smp_processor_id(); |
550 | struct ipi_data *ipi = &per_cpu(ipi_data, cpu); | 551 | struct ipi_data *ipi = &per_cpu(ipi_data, cpu); |