On 4/25/2022 11:05 PM, Steven Rostedt wrote: > On Sun, 24 Apr 2022 11:40:23 -0400 > Xu Kuohai <xukuohai@xxxxxxxxxx> wrote: > >> diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c >> index abcadbe933bb..d2eff2b1d743 100644 >> --- a/kernel/trace/trace_selftest.c >> +++ b/kernel/trace/trace_selftest.c >> @@ -785,8 +785,24 @@ static struct fgraph_ops fgraph_ops __initdata = { >> }; >> >> #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS >> +#ifdef CONFIG_ARM64 > > Please find a way to add this in arm specific code. Do not add architecture > defines in generic code. > > You could add: > > #ifndef ARCH_HAVE_FTRACE_DIRECT_TEST_FUNC > noinline __noclone static void trace_direct_tramp(void) { } > #endif > > here, and in arch/arm64/include/ftrace.h > > #define ARCH_HAVE_FTRACE_DIRECT_TEST_FUNC > > and define your test function in the arm64 specific code. > > -- Steve > > will move this to arch/arm64/ in v4, thanks. > > >> +extern void trace_direct_tramp(void); >> + >> +asm ( >> +" .pushsection .text, \"ax\", @progbits\n" >> +" .type trace_direct_tramp, %function\n" >> +" .global trace_direct_tramp\n" >> +"trace_direct_tramp:" >> +" mov x10, x30\n" >> +" mov x30, x9\n" >> +" ret x10\n" >> +" .size trace_direct_tramp, .-trace_direct_tramp\n" >> +" .popsection\n" >> +); >> +#else >> noinline __noclone static void trace_direct_tramp(void) { } >> #endif >> +#endif >> >> /* >> * Pretty much the same than for the function tracer from which the selftest > > .