History

ftrace: Have the callbacks receive a struct ftrace_regs instead of pt_regs

In preparation to have arguments of a function passed to callbacks attached to functions as default, change the default callback prototype to receive a struct ftrace_regs as the forth parameter instead of a pt_regs. For callbacks that set the FL_SAVE_REGS flag in their ftrace_ops flags, they will now need to get the pt_regs via a ftrace_get_regs() helper call. If this is called by a callback that their ftrace_ops did not have a FL_SAVE_REGS flag set, it that helper function will return NULL. This will allow the ftrace_regs to hold enough just to get the parameters and stack pointer, but without the worry that callbacks may have a pt_regs that is not completely filled.

Steven Rostedt (VMware) committed 6 years ago

Commit d19ad071 parent 58954b318 files · +71 −45Browse files

Showing the changes to kernel/trace/trace_stack.c (1 of 18 files). Show all

Unified · Split

kernel/trace/trace_stack.c+1−1
@@ -290,7 +290,7 @@ static void check_stack(unsigned long ip, unsigned long *stack) · 289 unmodified lines
290 290
291static void291static void
292stack_trace_call(unsigned long ip, unsigned long parent_ip,292stack_trace_call(unsigned long ip, unsigned long parent_ip,
293 struct ftrace_ops *op, struct pt_regs *pt_regs)293 struct ftrace_ops *op, struct ftrace_regs *fregs)
294{294{
295 unsigned long stack;295 unsigned long stack;
296 296