From: Masami Hiramatsu <mhiramat@kernel.org> To: Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com> Cc: mhiramat@kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Naresh Kamboju <naresh.kamboju@linaro.org>, Dan Rue <dan.rue@linaro.org>, Matt Hart <matthew.hart@linaro.org>, Anders Roxell <anders.roxell@linaro.org>, Daniel Diaz <daniel.diaz@linaro.org> Subject: [PATCH v2 2/4] arm64: unwind: Prohibit probing on return_address() Date: Mon, 22 Jul 2019 16:48:48 +0900 [thread overview] Message-ID: <156378172702.12011.1144595747474511323.stgit@devnote2> (raw) In-Reply-To: <156378170297.12011.17385386326930403235.stgit@devnote2> Prohibit probing on return_address() and subroutines which is called from return_address(), since the it is invoked from trace_hardirqs_off() which is also kprobe blacklisted. Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> --- arch/arm64/kernel/return_address.c | 4 +++- arch/arm64/kernel/stacktrace.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/return_address.c b/arch/arm64/kernel/return_address.c index b21cba90f82d..7f8a143268b0 100644 --- a/arch/arm64/kernel/return_address.c +++ b/arch/arm64/kernel/return_address.c @@ -8,6 +8,7 @@ #include <linux/export.h> #include <linux/ftrace.h> +#include <linux/kprobes.h> #include <asm/stack_pointer.h> #include <asm/stacktrace.h> @@ -17,7 +18,7 @@ struct return_address_data { void *addr; }; -static int save_return_addr(struct stackframe *frame, void *d) +static nokprobe_inline int save_return_addr(struct stackframe *frame, void *d) { struct return_address_data *data = d; @@ -52,3 +53,4 @@ void *return_address(unsigned int level) return NULL; } EXPORT_SYMBOL_GPL(return_address); +NOKPROBE_SYMBOL(return_address); diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c index 62d395151abe..cd7dab54d17b 100644 --- a/arch/arm64/kernel/stacktrace.c +++ b/arch/arm64/kernel/stacktrace.c @@ -7,6 +7,7 @@ #include <linux/kernel.h> #include <linux/export.h> #include <linux/ftrace.h> +#include <linux/kprobes.h> #include <linux/sched.h> #include <linux/sched/debug.h> #include <linux/sched/task_stack.h> @@ -73,6 +74,7 @@ int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame) return 0; } +NOKPROBE_SYMBOL(unwind_frame); void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, int (*fn)(struct stackframe *, void *), void *data) @@ -87,6 +89,7 @@ void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, break; } } +NOKPROBE_SYMBOL(walk_stackframe); #ifdef CONFIG_STACKTRACE struct stack_trace_data {
WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@kernel.org> To: Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com> Cc: Dan Rue <dan.rue@linaro.org>, Daniel Diaz <daniel.diaz@linaro.org>, Anders Roxell <anders.roxell@linaro.org>, Naresh Kamboju <naresh.kamboju@linaro.org>, linux-kernel@vger.kernel.org, Matt Hart <matthew.hart@linaro.org>, linux-arm-kernel@lists.infradead.org, mhiramat@kernel.org Subject: [PATCH v2 2/4] arm64: unwind: Prohibit probing on return_address() Date: Mon, 22 Jul 2019 16:48:48 +0900 [thread overview] Message-ID: <156378172702.12011.1144595747474511323.stgit@devnote2> (raw) In-Reply-To: <156378170297.12011.17385386326930403235.stgit@devnote2> Prohibit probing on return_address() and subroutines which is called from return_address(), since the it is invoked from trace_hardirqs_off() which is also kprobe blacklisted. Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> --- arch/arm64/kernel/return_address.c | 4 +++- arch/arm64/kernel/stacktrace.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/return_address.c b/arch/arm64/kernel/return_address.c index b21cba90f82d..7f8a143268b0 100644 --- a/arch/arm64/kernel/return_address.c +++ b/arch/arm64/kernel/return_address.c @@ -8,6 +8,7 @@ #include <linux/export.h> #include <linux/ftrace.h> +#include <linux/kprobes.h> #include <asm/stack_pointer.h> #include <asm/stacktrace.h> @@ -17,7 +18,7 @@ struct return_address_data { void *addr; }; -static int save_return_addr(struct stackframe *frame, void *d) +static nokprobe_inline int save_return_addr(struct stackframe *frame, void *d) { struct return_address_data *data = d; @@ -52,3 +53,4 @@ void *return_address(unsigned int level) return NULL; } EXPORT_SYMBOL_GPL(return_address); +NOKPROBE_SYMBOL(return_address); diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c index 62d395151abe..cd7dab54d17b 100644 --- a/arch/arm64/kernel/stacktrace.c +++ b/arch/arm64/kernel/stacktrace.c @@ -7,6 +7,7 @@ #include <linux/kernel.h> #include <linux/export.h> #include <linux/ftrace.h> +#include <linux/kprobes.h> #include <linux/sched.h> #include <linux/sched/debug.h> #include <linux/sched/task_stack.h> @@ -73,6 +74,7 @@ int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame) return 0; } +NOKPROBE_SYMBOL(unwind_frame); void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, int (*fn)(struct stackframe *, void *), void *data) @@ -87,6 +89,7 @@ void notrace walk_stackframe(struct task_struct *tsk, struct stackframe *frame, break; } } +NOKPROBE_SYMBOL(walk_stackframe); #ifdef CONFIG_STACKTRACE struct stack_trace_data { _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-07-22 7:48 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-22 7:48 [PATCH v2 0/4] arm64: kprobes: Fix some bugs in arm64 kprobes Masami Hiramatsu 2019-07-22 7:48 ` Masami Hiramatsu 2019-07-22 7:48 ` [PATCH v2 1/4] arm64: kprobes: Recover pstate.D in single-step exception handler Masami Hiramatsu 2019-07-22 7:48 ` Masami Hiramatsu 2019-07-23 16:03 ` James Morse 2019-07-23 16:03 ` James Morse 2019-07-24 13:09 ` Masami Hiramatsu 2019-07-24 13:09 ` Masami Hiramatsu 2019-07-22 7:48 ` Masami Hiramatsu [this message] 2019-07-22 7:48 ` [PATCH v2 2/4] arm64: unwind: Prohibit probing on return_address() Masami Hiramatsu 2019-07-23 16:04 ` James Morse 2019-07-23 16:04 ` James Morse 2019-07-24 7:39 ` Masami Hiramatsu 2019-07-24 7:39 ` Masami Hiramatsu 2019-07-22 7:48 ` [PATCH v2 3/4] arm64: Make debug exception handlers visible from RCU Masami Hiramatsu 2019-07-22 7:48 ` Masami Hiramatsu 2019-07-22 12:07 ` Paul E. McKenney 2019-07-22 12:07 ` Paul E. McKenney 2019-07-23 17:07 ` James Morse 2019-07-23 17:07 ` James Morse 2019-07-24 11:47 ` Masami Hiramatsu 2019-07-24 11:47 ` Masami Hiramatsu 2019-07-22 7:49 ` [PATCH v2 4/4] arm64: Remove unneeded rcu_read_lock from debug handlers Masami Hiramatsu 2019-07-22 7:49 ` Masami Hiramatsu 2019-07-22 12:07 ` Paul E. McKenney 2019-07-22 12:07 ` Paul E. McKenney
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=156378172702.12011.1144595747474511323.stgit@devnote2 \ --to=mhiramat@kernel.org \ --cc=anders.roxell@linaro.org \ --cc=catalin.marinas@arm.com \ --cc=dan.rue@linaro.org \ --cc=daniel.diaz@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=matthew.hart@linaro.org \ --cc=naresh.kamboju@linaro.org \ --cc=will.deacon@arm.com \ /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: linkBe 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.