提交 5d2b10c1 编写于 作者: M Masami Hiramatsu 提交者: Yang Yingliang

tracing/kprobes: Do the notrace functions check without kprobes on ftrace

commit 7bb83f6f upstream.

Enable the notrace function check on the architecture which doesn't
support kprobes on ftrace but support dynamic ftrace. This notrace
function check is not only for the kprobes on ftrace but also
sw-breakpoint based kprobes.
Thus there is no reason to limit this check for the arch which
supports kprobes on ftrace.

This also changes the dependency of Kconfig. Because kprobe event
uses the function tracer's address list for identifying notrace
function, if the CONFIG_DYNAMIC_FTRACE=n, it can not check whether
the target function is notrace or not.

Link: https://lkml.kernel.org/r/20210105065730.2634785-1-naveen.n.rao@linux.vnet.ibm.com
Link: https://lkml.kernel.org/r/161007957862.114704.4512260007555399463.stgit@devnote2

Cc: stable@vger.kernel.org
Fixes: 45408c4f ("tracing: kprobes: Prohibit probing on notrace function")
Acked-by: NNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: NMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 e08013a0
...@@ -476,7 +476,7 @@ config KPROBE_EVENTS ...@@ -476,7 +476,7 @@ config KPROBE_EVENTS
config KPROBE_EVENTS_ON_NOTRACE config KPROBE_EVENTS_ON_NOTRACE
bool "Do NOT protect notrace function from kprobe events" bool "Do NOT protect notrace function from kprobe events"
depends on KPROBE_EVENTS depends on KPROBE_EVENTS
depends on KPROBES_ON_FTRACE depends on DYNAMIC_FTRACE
default n default n
help help
This is only for the developers who want to debug ftrace itself This is only for the developers who want to debug ftrace itself
......
...@@ -517,7 +517,7 @@ disable_trace_kprobe(struct trace_kprobe *tk, struct trace_event_file *file) ...@@ -517,7 +517,7 @@ disable_trace_kprobe(struct trace_kprobe *tk, struct trace_event_file *file)
return ret; return ret;
} }
#if defined(CONFIG_KPROBES_ON_FTRACE) && \ #if defined(CONFIG_DYNAMIC_FTRACE) && \
!defined(CONFIG_KPROBE_EVENTS_ON_NOTRACE) !defined(CONFIG_KPROBE_EVENTS_ON_NOTRACE)
static bool __within_notrace_func(unsigned long addr) static bool __within_notrace_func(unsigned long addr)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册