Message ID | 154753350520.31541.11995657762766497151.stgit@devbox (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: kprobes: Update blacklist checking on arm64 | expand |
Hi, On 15/01/2019 06:25, Masami Hiramatsu wrote: > Move exception/irqentry text address check in blacklist, > since those are symbol based rejection. > > If we prohibit probing on the symbols in exception_text, > those should be blacklisted. We need to blacklist this as its where do_debug_exception() lives, which kprobes depends on for single-stepping. Reviewed-by: James Morse <james.morse@arm.com> Thanks! James
diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c index 1dae500d0a81..b9e9758b6534 100644 --- a/arch/arm64/kernel/probes/kprobes.c +++ b/arch/arm64/kernel/probes/kprobes.c @@ -98,9 +98,6 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) /* copy instruction */ p->opcode = le32_to_cpu(*p->addr); - if (in_exception_text(probe_addr)) - return -EINVAL; - if (search_exception_tables(probe_addr)) return -EINVAL; @@ -475,7 +472,8 @@ bool arch_within_kprobe_blacklist(unsigned long addr) (addr >= (unsigned long)__entry_text_start && addr < (unsigned long)__entry_text_end) || (addr >= (unsigned long)__idmap_text_start && - addr < (unsigned long)__idmap_text_end)) + addr < (unsigned long)__idmap_text_end) || + in_exception_text(addr)) return true; if (!is_kernel_in_hyp_mode()) {
Move exception/irqentry text address check in blacklist, since those are symbol based rejection. If we prohibit probing on the symbols in exception_text, those should be blacklisted. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> --- arch/arm64/kernel/probes/kprobes.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)