On Tue,  7 May 2024 23:08:35 +0900
"Masami Hiramatsu (Google)" <mhira...@kernel.org> wrote:

> From: Masami Hiramatsu (Google) <mhira...@kernel.org>
> 
> Add ftrace_regs definition for x86_64 in the ftrace header to
> clarify what register will be accessible from ftrace_regs.
> 
> Signed-off-by: Masami Hiramatsu (Google) <mhira...@kernel.org>
> ---
>  Changes in v3:
>   - Add rip to be saved.
>  Changes in v2:
>   - Newly added.
> ---
>  arch/x86/include/asm/ftrace.h |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/x86/include/asm/ftrace.h b/arch/x86/include/asm/ftrace.h
> index cf88cc8cc74d..c88bf47f46da 100644
> --- a/arch/x86/include/asm/ftrace.h
> +++ b/arch/x86/include/asm/ftrace.h
> @@ -36,6 +36,12 @@ static inline unsigned long ftrace_call_adjust(unsigned 
> long addr)
>  
>  #ifdef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS
>  struct ftrace_regs {
> +     /*
> +      * On the x86_64, the ftrace_regs saves;
> +      * rax, rcx, rdx, rdi, rsi, r8, r9, rbp, rip and rsp.
> +      * Also orig_ax is used for passing direct trampoline address.
> +      * x86_32 doesn't support ftrace_regs.

Should add a comment that if fregs->regs.cs is set, then all of the pt_regs
is valid. And x86_32 does support ftrace_regs, it just doesn't support
having a subset of it.

-- Steve


> +      */
>       struct pt_regs          regs;
>  };
>  


Reply via email to