diff options
author | Masami Hiramatsu <mhiramat@kernel.org> | 2018-05-13 05:04:29 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2018-05-19 11:35:56 +0100 |
commit | 0d73c3f8e7f6ee2aab1bb350f60c180f5ae21a2c (patch) | |
tree | 1157529f1984e2f576326efb9fcc5dda67a9da86 /arch/arm/include | |
parent | eb0146daefdde65665b7f076fbff7b49dade95b9 (diff) | |
download | linux-stable-0d73c3f8e7f6ee2aab1bb350f60c180f5ae21a2c.tar.gz linux-stable-0d73c3f8e7f6ee2aab1bb350f60c180f5ae21a2c.tar.bz2 linux-stable-0d73c3f8e7f6ee2aab1bb350f60c180f5ae21a2c.zip |
ARM: 8772/1: kprobes: Prohibit kprobes on get_user functions
Since do_undefinstr() uses get_user to get the undefined
instruction, it can be called before kprobes processes
recursive check. This can cause an infinit recursive
exception.
Prohibit probing on get_user functions.
Fixes: 24ba613c9d6c ("ARM kprobes: core code")
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/assembler.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index bc8d4bbd82e2..9342904cccca 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h @@ -536,4 +536,14 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) #endif .endm +#ifdef CONFIG_KPROBES +#define _ASM_NOKPROBE(entry) \ + .pushsection "_kprobe_blacklist", "aw" ; \ + .balign 4 ; \ + .long entry; \ + .popsection +#else +#define _ASM_NOKPROBE(entry) +#endif + #endif /* __ASM_ASSEMBLER_H__ */ |