On Mon, Aug 7, 2023 at 8:48 AM Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote: > diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h > index ce156c7704ee..3fb94a1a2461 100644 > --- a/include/linux/ftrace.h > +++ b/include/linux/ftrace.h > @@ -112,11 +112,11 @@ static inline int ftrace_mod_get_kallsym(unsigned int symnum, unsigned long *val > } > #endif > > -#ifdef CONFIG_FUNCTION_TRACER > - > -extern int ftrace_enabled; > - > -#ifndef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS > +/* > + * If the architecture doesn't support FTRACE_WITH_ARGS or disable function nit: disables* > + * tracer, define the default(pt_regs compatible) ftrace_regs. > + */ > +#if !defined(CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS) || !defined(CONFIG_FUNCTION_TRACER) I wonder if we should make things simpler with: #if defined(HAVE_PT_REGS_COMPAT_FTRACE_REGS) || !defined(CONFIG_FUNCTION_TRACER) And remove the ftrace_regs definitions that are copy-pastes of this block in arch specific headers. Then we can enforce in a single point that HAVE_PT_REGS_COMPAT_FTRACE_REGS holds. Maybe that's a question for Steven ?