Commit fc6d6476 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt (VMware)
Browse files

arm64: kprobes: Make a frame pointer on __kretprobe_trampoline



Make a frame pointer (make the x29 register points the
address of pt_regs->regs[29]) on __kretprobe_trampoline.

This frame pointer will be used by the stacktracer when it is
called from the kretprobe handlers. In this case, the stack
tracer will unwind stack to trampoline_probe_handler() and
find the next frame pointer in the stack frame of the
__kretprobe_trampoline().

Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Acked-by: default avatarWill Deacon <will@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent f8717410
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -66,6 +66,9 @@ SYM_CODE_START(__kretprobe_trampoline)

	save_all_base_regs

	/* Setup a frame pointer. */
	add x29, sp, #S_FP

	mov x0, sp
	bl trampoline_probe_handler
	/*
@@ -74,6 +77,7 @@ SYM_CODE_START(__kretprobe_trampoline)
	 */
	mov lr, x0

	/* The frame pointer (x29) is restored with other registers. */
	restore_all_base_regs

	add sp, sp, #PT_REGS_SIZE