mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
fgraph: Replace fgraph_ret_regs with ftrace_regs
Use ftrace_regs instead of fgraph_ret_regs for tracing return value on function_graph tracer because of simplifying the callback interface. The CONFIG_HAVE_FUNCTION_GRAPH_RETVAL is also replaced by CONFIG_HAVE_FUNCTION_GRAPH_FREGS. Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Acked-by: Heiko Carstens <hca@linux.ibm.com> Acked-by: Will Deacon <will@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com> Cc: Florent Revest <revest@chromium.org> Cc: Martin KaFai Lau <martin.lau@linux.dev> Cc: bpf <bpf@vger.kernel.org> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Alan Maguire <alan.maguire@oracle.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: WANG Xuerui <kernel@xen0n.name> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Christian Borntraeger <borntraeger@linux.ibm.com> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: x86@kernel.org Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Link: https://lore.kernel.org/173518991508.391279.16635322774382197642.stgit@devnote2 Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt (Google)
parent
41705c4262
commit
a3ed4157b7
@@ -43,9 +43,8 @@ struct dyn_ftrace;
|
||||
|
||||
char *arch_ftrace_match_adjust(char *str, const char *search);
|
||||
|
||||
#ifdef CONFIG_HAVE_FUNCTION_GRAPH_RETVAL
|
||||
struct fgraph_ret_regs;
|
||||
unsigned long ftrace_return_to_handler(struct fgraph_ret_regs *ret_regs);
|
||||
#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FREGS
|
||||
unsigned long ftrace_return_to_handler(struct ftrace_regs *fregs);
|
||||
#else
|
||||
unsigned long ftrace_return_to_handler(unsigned long frame_pointer);
|
||||
#endif
|
||||
@@ -134,6 +133,13 @@ extern int ftrace_enabled;
|
||||
* Also, architecture dependent fields can be used for internal process.
|
||||
* (e.g. orig_ax on x86_64)
|
||||
*
|
||||
* Basically, ftrace_regs stores the registers related to the context.
|
||||
* On function entry, registers for function parameters and hooking the
|
||||
* function call are stored, and on function exit, registers for function
|
||||
* return value and frame pointers are stored.
|
||||
*
|
||||
* And also, it dpends on the context that which registers are restored
|
||||
* from the ftrace_regs.
|
||||
* On the function entry, those registers will be restored except for
|
||||
* the stack pointer, so that user can change the function parameters
|
||||
* and instruction pointer (e.g. live patching.)
|
||||
|
||||
Reference in New Issue
Block a user