diff options
| -rw-r--r-- | arch/arm/kernel/entry-common.S | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index c7a8c208a45c..f5e75de0203e 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -167,7 +167,7 @@ ENTRY(__gnu_mcount_nc) | |||
| 167 | stmdb sp!, {r0-r3, lr} | 167 | stmdb sp!, {r0-r3, lr} |
| 168 | ldr r0, =ftrace_trace_function | 168 | ldr r0, =ftrace_trace_function |
| 169 | ldr r2, [r0] | 169 | ldr r2, [r0] |
| 170 | adr r0, ftrace_stub | 170 | adr r0, .Lftrace_stub |
| 171 | cmp r0, r2 | 171 | cmp r0, r2 |
| 172 | bne gnu_trace | 172 | bne gnu_trace |
| 173 | ldmia sp!, {r0-r3, ip, lr} | 173 | ldmia sp!, {r0-r3, ip, lr} |
| @@ -177,8 +177,9 @@ gnu_trace: | |||
| 177 | ldr r1, [sp, #20] @ lr of instrumented routine | 177 | ldr r1, [sp, #20] @ lr of instrumented routine |
| 178 | mov r0, lr | 178 | mov r0, lr |
| 179 | sub r0, r0, #MCOUNT_INSN_SIZE | 179 | sub r0, r0, #MCOUNT_INSN_SIZE |
| 180 | mov lr, pc | 180 | adr lr, BSYM(1f) |
| 181 | mov pc, r2 | 181 | mov pc, r2 |
| 182 | 1: | ||
| 182 | ldmia sp!, {r0-r3, ip, lr} | 183 | ldmia sp!, {r0-r3, ip, lr} |
| 183 | mov pc, ip | 184 | mov pc, ip |
| 184 | ENDPROC(__gnu_mcount_nc) | 185 | ENDPROC(__gnu_mcount_nc) |
| @@ -213,6 +214,7 @@ ENDPROC(mcount) | |||
| 213 | #endif /* CONFIG_DYNAMIC_FTRACE */ | 214 | #endif /* CONFIG_DYNAMIC_FTRACE */ |
| 214 | 215 | ||
| 215 | ENTRY(ftrace_stub) | 216 | ENTRY(ftrace_stub) |
| 217 | .Lftrace_stub: | ||
| 216 | mov pc, lr | 218 | mov pc, lr |
| 217 | ENDPROC(ftrace_stub) | 219 | ENDPROC(ftrace_stub) |
| 218 | 220 | ||
