diff options
author | Masami Hiramatsu <mhiramat@kernel.org> | 2019-02-13 00:44:19 +0900 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2019-03-19 12:43:24 +0000 |
commit | 6e08af0f10dcde01f0bdcc64cf91fea9d25e77cc (patch) | |
tree | 2df5def0b474478e59b614108cbedfd769db01fb /arch/arm64/kernel/probes | |
parent | b5586163de1ce90317cd4037f69b14105be9f656 (diff) | |
download | lwn-6e08af0f10dcde01f0bdcc64cf91fea9d25e77cc.tar.gz lwn-6e08af0f10dcde01f0bdcc64cf91fea9d25e77cc.zip |
arm64: kprobes: Move exception_text check in blacklist
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>
Diffstat (limited to 'arch/arm64/kernel/probes')
-rw-r--r-- | arch/arm64/kernel/probes/kprobes.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c index b168873147f5..d6697930d075 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; @@ -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()) { |