|
@@ -111,6 +111,7 @@ ENTRY(mcount)
|
|
.globl mcount_call
|
|
.globl mcount_call
|
|
mcount_call:
|
|
mcount_call:
|
|
bl ftrace_stub
|
|
bl ftrace_stub
|
|
|
|
+ ldr lr, [fp, #-4] @ restore lr
|
|
ldmia sp!, {r0-r3, pc}
|
|
ldmia sp!, {r0-r3, pc}
|
|
|
|
|
|
ENTRY(ftrace_caller)
|
|
ENTRY(ftrace_caller)
|
|
@@ -122,6 +123,7 @@ ENTRY(ftrace_caller)
|
|
.globl ftrace_call
|
|
.globl ftrace_call
|
|
ftrace_call:
|
|
ftrace_call:
|
|
bl ftrace_stub
|
|
bl ftrace_stub
|
|
|
|
+ ldr lr, [fp, #-4] @ restore lr
|
|
ldmia sp!, {r0-r3, pc}
|
|
ldmia sp!, {r0-r3, pc}
|
|
|
|
|
|
#else
|
|
#else
|
|
@@ -133,6 +135,7 @@ ENTRY(mcount)
|
|
adr r0, ftrace_stub
|
|
adr r0, ftrace_stub
|
|
cmp r0, r2
|
|
cmp r0, r2
|
|
bne trace
|
|
bne trace
|
|
|
|
+ ldr lr, [fp, #-4] @ restore lr
|
|
ldmia sp!, {r0-r3, pc}
|
|
ldmia sp!, {r0-r3, pc}
|
|
|
|
|
|
trace:
|
|
trace:
|
|
@@ -141,6 +144,7 @@ trace:
|
|
sub r0, r0, #MCOUNT_INSN_SIZE
|
|
sub r0, r0, #MCOUNT_INSN_SIZE
|
|
mov lr, pc
|
|
mov lr, pc
|
|
mov pc, r2
|
|
mov pc, r2
|
|
|
|
+ mov lr, r1 @ restore lr
|
|
ldmia sp!, {r0-r3, pc}
|
|
ldmia sp!, {r0-r3, pc}
|
|
|
|
|
|
#endif /* CONFIG_DYNAMIC_FTRACE */
|
|
#endif /* CONFIG_DYNAMIC_FTRACE */
|