lkml.org 
[lkml]   [2021]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 4/8] arm64: kprobes: Make a frame pointer on __kretprobe_trampoline
On Fri, Oct 08, 2021 at 09:28:49PM +0900, Masami Hiramatsu wrote:
> 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: Masami Hiramatsu <mhiramat@kernel.org>
> ---
> arch/arm64/kernel/probes/kprobes_trampoline.S | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/arch/arm64/kernel/probes/kprobes_trampoline.S b/arch/arm64/kernel/probes/kprobes_trampoline.S
> index 520ee8711db1..9a6499bed58b 100644
> --- a/arch/arm64/kernel/probes/kprobes_trampoline.S
> +++ b/arch/arm64/kernel/probes/kprobes_trampoline.S
> @@ -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

Acked-by: Will Deacon <will@kernel.org>

Will

\
 
 \ /
  Last update: 2021-10-13 10:16    [W:0.120 / U:0.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site