arm64: kprobes: Move exception_text check in blacklist
authorMasami Hiramatsu <mhiramat@kernel.org>
Tue, 12 Feb 2019 15:44:19 +0000 (00:44 +0900)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 19 Mar 2019 12:43:24 +0000 (12:43 +0000)
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.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/probes/kprobes.c

index b168873147f52f92bbe56be99916be0385e35cfe..d6697930d075dd75cd427c3940b7571bc607ff54 100644 (file)
@@ -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;
 
@@ -483,7 +480,8 @@ bool arch_within_kprobe_blacklist(unsigned long addr)
            (addr >= (unsigned long)__idmap_text_start &&
            addr < (unsigned long)__idmap_text_end) ||
            (addr >= (unsigned long)__hyp_text_start &&
-           addr < (unsigned long)__hyp_text_end))
+           addr < (unsigned long)__hyp_text_end) ||
+           in_exception_text(addr))
                return true;
 
        if (!is_kernel_in_hyp_mode()) {