ftrace: abstract DYNAMIC_FTRACE_WITH_ARGS accesses
authorMark Rutland <mark.rutland@arm.com>
Thu, 3 Nov 2022 17:05:19 +0000 (17:05 +0000)
committerWill Deacon <will@kernel.org>
Fri, 18 Nov 2022 13:56:41 +0000 (13:56 +0000)
commit94d095ffa0e16bb7f161a2b73bbe5c2795d499a8
tree414e441cbfac851e75ad6c3f04e33da2f4989a2a
parent0ef86097f127d0d73e19aa4dcf86106105e7db09
ftrace: abstract DYNAMIC_FTRACE_WITH_ARGS accesses

In subsequent patches we'll arrange for architectures to have an
ftrace_regs which is entirely distinct from pt_regs. In preparation for
this, we need to minimize the use of pt_regs to where strictly necessary
in the core ftrace code.

This patch adds new ftrace_regs_{get,set}_*() helpers which can be used
to manipulate ftrace_regs. When CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y,
these can always be used on any ftrace_regs, and when
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=n these can be used when regs are
available. A new ftrace_regs_has_args(fregs) helper is added which code
can use to check when these are usable.

Co-developed-by: Florent Revest <revest@chromium.org>
Signed-off-by: Florent Revest <revest@chromium.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/r/20221103170520.931305-4-mark.rutland@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/powerpc/include/asm/ftrace.h
arch/s390/include/asm/ftrace.h
arch/x86/include/asm/ftrace.h
include/linux/ftrace.h
kernel/trace/Kconfig