On Wed, 9 Oct 2024 13:47:23 +0900 Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote: > > --- /dev/null > > +++ b/include/linux/ftrace_regs.h > > @@ -0,0 +1,36 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef _LINUX_FTRACE_TYPES_H > > +#define _LINUX_FTRACE_TYPES_H > ^^^^^^^^^^^^^^^^ Is this _LINUX_FTRACE_REGS_H? Ah, I originally called it ftrace_types.h, but later decided that name didn't really fit. I changed all references to it but this one. Thanks for catching this. > > > > + > > +/* > > + * For archs that just copy pt_regs in ftrace regs, it can use this default. > > + * If an architecture does not use pt_regs, it must define all the below > > + * accessor functions. > > + */ > > +#ifndef HAVE_ARCH_FTRACE_REGS > > +struct __arch_ftrace_regs { > > + struct pt_regs regs; > > +}; > > + > > +#define arch_ftrace_regs(fregs) ((struct __arch_ftrace_regs *)(fregs)) > > + > > +struct ftrace_regs; > > + > > +#define ftrace_regs_get_instruction_pointer(fregs) \ > > + instruction_pointer(arch_ftrace_get_regs(fregs)) > > +#define ftrace_regs_get_argument(fregs, n) \ > > + regs_get_kernel_argument(arch_ftrace_get_regs(fregs), n) > > +#define ftrace_regs_get_stack_pointer(fregs) \ > > + kernel_stack_pointer(arch_ftrace_get_regs(fregs)) > > +#define ftrace_regs_return_value(fregs) \ > > + regs_return_value(arch_ftrace_get_regs(fregs)) > > +#define ftrace_regs_set_return_value(fregs, ret) \ > > + regs_set_return_value(arch_ftrace_get_regs(fregs), ret) > > +#define ftrace_override_function_with_return(fregs) \ > > + override_function_with_return(arch_ftrace_get_regs(fregs)) > > +#define ftrace_regs_query_register_offset(name) \ > > + regs_query_register_offset(name) > > + > > +#endif /* HAVE_ARCH_FTRACE_REGS */ > > + > > +#endif /* _LINUX_FTRACE_TYPES_H */ > > Ditto. > > Others looks good to me. > > Acked-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> Thanks, I'll send a v2 with this update. -- Steve