arm64: kprobes: Remove unneeded RODATA check
authorMasami Hiramatsu <mhiramat@kernel.org>
Tue, 12 Feb 2019 15:43:51 +0000 (00:43 +0900)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 19 Mar 2019 12:43:09 +0000 (12:43 +0000)
Remove unneeded RODATA check from arch_prepare_kprobe().

Since check_kprobe_address_safe() already ensured that
the probe address is in kernel text, we don't need to
check whether the address in RODATA or not. That must
be always false.

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 16bc3b2e93515562da555d786c2e7d9157211776..b168873147f52f92bbe56be99916be0385e35cfe 100644 (file)
@@ -91,8 +91,6 @@ static void __kprobes arch_simulate_insn(struct kprobe *p, struct pt_regs *regs)
 int __kprobes arch_prepare_kprobe(struct kprobe *p)
 {
        unsigned long probe_addr = (unsigned long)p->addr;
-       extern char __start_rodata[];
-       extern char __end_rodata[];
 
        if (probe_addr & 0x3)
                return -EINVAL;
@@ -106,10 +104,6 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
        if (search_exception_tables(probe_addr))
                return -EINVAL;
 
-       if (probe_addr >= (unsigned long) __start_rodata &&
-           probe_addr <= (unsigned long) __end_rodata)
-               return -EINVAL;
-
        /* decode instruction */
        switch (arm_kprobe_decode_insn(p->addr, &p->ainsn)) {
        case INSN_REJECTED:     /* insn not supported */