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 | ||