diff options
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/entry-common.S | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/fiq.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/irq.c | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 49a6ba926c2..159d0416f27 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -111,6 +111,7 @@ ENTRY(mcount) | |||
| 111 | .globl mcount_call | 111 | .globl mcount_call |
| 112 | mcount_call: | 112 | mcount_call: |
| 113 | bl ftrace_stub | 113 | bl ftrace_stub |
| 114 | ldr lr, [fp, #-4] @ restore lr | ||
| 114 | ldmia sp!, {r0-r3, pc} | 115 | ldmia sp!, {r0-r3, pc} |
| 115 | 116 | ||
| 116 | ENTRY(ftrace_caller) | 117 | ENTRY(ftrace_caller) |
| @@ -122,6 +123,7 @@ ENTRY(ftrace_caller) | |||
| 122 | .globl ftrace_call | 123 | .globl ftrace_call |
| 123 | ftrace_call: | 124 | ftrace_call: |
| 124 | bl ftrace_stub | 125 | bl ftrace_stub |
| 126 | ldr lr, [fp, #-4] @ restore lr | ||
| 125 | ldmia sp!, {r0-r3, pc} | 127 | ldmia sp!, {r0-r3, pc} |
| 126 | 128 | ||
| 127 | #else | 129 | #else |
| @@ -133,6 +135,7 @@ ENTRY(mcount) | |||
| 133 | adr r0, ftrace_stub | 135 | adr r0, ftrace_stub |
| 134 | cmp r0, r2 | 136 | cmp r0, r2 |
| 135 | bne trace | 137 | bne trace |
| 138 | ldr lr, [fp, #-4] @ restore lr | ||
| 136 | ldmia sp!, {r0-r3, pc} | 139 | ldmia sp!, {r0-r3, pc} |
| 137 | 140 | ||
| 138 | trace: | 141 | trace: |
| @@ -141,6 +144,7 @@ trace: | |||
| 141 | sub r0, r0, #MCOUNT_INSN_SIZE | 144 | sub r0, r0, #MCOUNT_INSN_SIZE |
| 142 | mov lr, pc | 145 | mov lr, pc |
| 143 | mov pc, r2 | 146 | mov pc, r2 |
| 147 | mov lr, r1 @ restore lr | ||
| 144 | ldmia sp!, {r0-r3, pc} | 148 | ldmia sp!, {r0-r3, pc} |
| 145 | 149 | ||
| 146 | #endif /* CONFIG_DYNAMIC_FTRACE */ | 150 | #endif /* CONFIG_DYNAMIC_FTRACE */ |
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c index 36f81d96797..6ff7919613d 100644 --- a/arch/arm/kernel/fiq.c +++ b/arch/arm/kernel/fiq.c | |||
| @@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length) | |||
| 88 | * disable irqs for the duration. Note - these functions are almost | 88 | * disable irqs for the duration. Note - these functions are almost |
| 89 | * entirely coded in assembly. | 89 | * entirely coded in assembly. |
| 90 | */ | 90 | */ |
| 91 | void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) | 91 | void __naked set_fiq_regs(struct pt_regs *regs) |
| 92 | { | 92 | { |
| 93 | register unsigned long tmp; | 93 | register unsigned long tmp; |
| 94 | asm volatile ( | 94 | asm volatile ( |
| @@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) | |||
| 106 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); | 106 | : "r" (®s->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) | 109 | void __naked get_fiq_regs(struct pt_regs *regs) |
| 110 | { | 110 | { |
| 111 | register unsigned long tmp; | 111 | register unsigned long tmp; |
| 112 | asm volatile ( | 112 | asm volatile ( |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 45eacb5a2ec..6874c7dca75 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
| @@ -76,7 +76,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 76 | 76 | ||
| 77 | seq_printf(p, "%3d: ", i); | 77 | seq_printf(p, "%3d: ", i); |
| 78 | for_each_present_cpu(cpu) | 78 | for_each_present_cpu(cpu) |
| 79 | seq_printf(p, "%10u ", kstat_cpu(cpu).irqs[i]); | 79 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); |
| 80 | seq_printf(p, " %10s", irq_desc[i].chip->name ? : "-"); | 80 | seq_printf(p, " %10s", irq_desc[i].chip->name ? : "-"); |
| 81 | seq_printf(p, " %s", action->name); | 81 | seq_printf(p, " %s", action->name); |
| 82 | for (action = action->next; action; action = action->next) | 82 | for (action = action->next; action; action = action->next) |
