From: Masami Hiramatsu <mhiramat@kernel.org>
To: Andrea Righi <righi.andrea@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>,
peterz@infradead.org,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH 2/2] kprobes: Mark ftrace mcount handler functions nokprobe
Date: Tue, 8 Jan 2019 11:40:50 +0900 [thread overview]
Message-ID: <20190108114050.25e64eeb80aab51fc70fc07d@kernel.org> (raw)
In-Reply-To: <20190107145536.GA1944@xps-13>
On Mon, 7 Jan 2019 15:55:36 +0100
Andrea Righi <righi.andrea@gmail.com> wrote:
> On Mon, Jan 07, 2019 at 10:32:32PM +0900, Masami Hiramatsu wrote:
> > Mark ftrace mcount handler functions nokprobe since
> > probing on these functions with kretprobe pushes
> > return address incorrectly on kretprobe shadow stack.
> >
> > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > Reported-by: Francis Deslauriers <francis.deslauriers@efficios.com>
> > ---
> > kernel/trace/ftrace.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> > index f0ff24173a0b..ad4babad4a03 100644
> > --- a/kernel/trace/ftrace.c
> > +++ b/kernel/trace/ftrace.c
> > @@ -6250,7 +6250,7 @@ void ftrace_reset_array_ops(struct trace_array *tr)
> > tr->ops->func = ftrace_stub;
> > }
> >
> > -static inline void
> > +static nokprobe_inline void
>
> I think we need to #include <linux/kprobes.h>, otherwise:
>
> CC kernel/trace/ftrace.o
> kernel/trace/ftrace.c:6219:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
> static nokprobe_inline void
> ^~~~
>
> kernel/trace/ftrace.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 3a58ad280d83..0333241034d5 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -32,6 +32,7 @@
> #include <linux/sort.h>
> #include <linux/list.h>
> #include <linux/hash.h>
> +#include <linux/kprobes.h>
> #include <linux/rcupdate.h>
>
> #include <trace/events/sched.h>
Oops, I missed it while reordering other patches...
Thank you,
>
> Thanks,
> -Andrea
>
> > __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
> > struct ftrace_ops *ignored, struct pt_regs *regs)
> > {
> > @@ -6310,11 +6310,13 @@ static void ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
> > {
> > __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
> >
> > /*
> > @@ -6341,6 +6343,7 @@ static void ftrace_ops_assist_func(unsigned long ip, unsigned long parent_ip,
> > preempt_enable_notrace();
> > trace_clear_recursion(bit);
> > }
> > +NOKPROBE_SYMBOL(ftrace_ops_assist_func);
> >
> > /**
> > * ftrace_ops_get_func - get the function a trampoline should call
--
Masami Hiramatsu <mhiramat@kernel.org>
next prev parent reply other threads:[~2019-01-08 2:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-07 13:31 [PATCH 0/2] kprobes: Fix kretprobe incorrect stacking order problem Masami Hiramatsu
2019-01-07 13:32 ` [PATCH 1/2] x86/kprobes: Verify stack frame on kretprobe Masami Hiramatsu
2019-01-07 13:32 ` [PATCH 2/2] kprobes: Mark ftrace mcount handler functions nokprobe Masami Hiramatsu
2019-01-07 14:55 ` Andrea Righi
2019-01-07 17:29 ` Steven Rostedt
2019-01-08 2:41 ` Masami Hiramatsu
2019-01-08 2:40 ` Masami Hiramatsu [this message]
2019-01-07 17:23 ` kbuild test robot
2019-01-07 17:38 ` kbuild test robot
2019-01-07 17:28 ` [PATCH 0/2] kprobes: Fix kretprobe incorrect stacking order problem Andrea Righi
2019-01-07 18:34 ` Andrea Righi
2019-01-07 19:27 ` Steven Rostedt
2019-01-07 19:52 ` Andrea Righi
2019-01-07 19:59 ` Steven Rostedt
2019-01-07 21:19 ` Andrea Righi
2019-01-07 21:28 ` Steven Rostedt
2019-01-07 21:34 ` Andrea Righi
2019-01-08 2:56 ` Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190108114050.25e64eeb80aab51fc70fc07d@kernel.org \
--to=mhiramat@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=righi.andrea@gmail.com \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.