diff options
author | Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> | 2019-06-12 15:08:37 +0200 |
---|---|---|
committer | Yoshinori Sato <ysato@users.sourceforge.jp> | 2019-06-26 19:11:13 +0900 |
commit | d3023897b4370bbf7f289806667a2380576d13dd (patch) | |
tree | 33224cefb6689fd0b1317c1adf34763cf9dff903 /arch/sh/Kconfig | |
parent | 7c04efc8d2efa6476cc4fc1228c1e20bdc4129ad (diff) |
arch/sh: Check for kprobe trap number before trying to handle a kprobe trap
The DIE_TRAP notifier chain is run both for kprobe traps and for BUG/WARN
traps. The kprobe code assumes to be only called for
BREAKPOINT_INSTRUCTION, and concludes to have hit a concurrently removed
kprobe if it finds anything else at the faulting locations. This includes
TRAPA_BUG_OPCODE used for BUG and WARN.
The consequence is that kprobe_handler returns 1. This makes
kprobe_exceptions_notify return NOTIFY_STOP, and prevents handling the BUG
statement. This also prevents moving $pc away from the trap instruction,
so the system locks up in an endless loop
Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Diffstat (limited to 'arch/sh/Kconfig')
0 files changed, 0 insertions, 0 deletions