+++ /dev/null
-From fabe38ab6b2bd9418350284c63825f13b8a6abba Mon Sep 17 00:00:00 2001
-From: Masami Hiramatsu <mhiramat@kernel.org>
-Date: Sun, 24 Feb 2019 01:50:20 +0900
-Subject: kprobes: Mark ftrace mcount handler functions nokprobe
-
-From: Masami Hiramatsu <mhiramat@kernel.org>
-
-commit fabe38ab6b2bd9418350284c63825f13b8a6abba upstream.
-
-Mark ftrace mcount handler functions nokprobe since
-probing on these functions with kretprobe pushes
-return address incorrectly on kretprobe shadow stack.
-
-Reported-by: Francis Deslauriers <francis.deslauriers@efficios.com>
-Tested-by: Andrea Righi <righi.andrea@gmail.com>
-Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
-Acked-by: Steven Rostedt <rostedt@goodmis.org>
-Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: stable@vger.kernel.org
-Link: http://lkml.kernel.org/r/155094062044.6137.6419622920568680640.stgit@devbox
-Signed-off-by: Ingo Molnar <mingo@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- kernel/trace/ftrace.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/kernel/trace/ftrace.c
-+++ b/kernel/trace/ftrace.c
-@@ -32,6 +32,7 @@
- #include <linux/list.h>
- #include <linux/hash.h>
- #include <linux/rcupdate.h>
-+#include <linux/kprobes.h>
-
- #include <trace/events/sched.h>
-
-@@ -4878,7 +4879,7 @@ static struct ftrace_ops control_ops = {
- INIT_OPS_HASH(control_ops)
- };
-
--static inline void
-+static nokprobe_inline void
- __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
- struct ftrace_ops *ignored, struct pt_regs *regs)
- {
-@@ -4927,11 +4928,13 @@ static void ftrace_ops_list_func(unsigne
- {
- __ftrace_ops_list_func(ip, parent_ip, NULL, regs);
- }
-+NOKPROBE_SYMBOL(ftrace_ops_list_func);
- #else
- static void ftrace_ops_no_ops(unsigned long ip, unsigned long parent_ip)
- {
- __ftrace_ops_list_func(ip, parent_ip, NULL, NULL);
- }
-+NOKPROBE_SYMBOL(ftrace_ops_no_ops);
- #endif
-
- /*
-@@ -4952,6 +4955,7 @@ static void ftrace_ops_recurs_func(unsig
-
- trace_clear_recursion(bit);
- }
-+NOKPROBE_SYMBOL(ftrace_ops_assist_func);
-
- /**
- * ftrace_ops_get_func - get the function a trampoline should call