diff options
author | Marcin Nowakowski <marcin.nowakowski@imgtec.com> | 2016-08-11 09:02:30 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2016-09-13 14:13:26 +0200 |
commit | 2809328f6ef2139115665dda1b83ee9303c52431 (patch) | |
tree | 326cf2150be2ab513c4bb9321b96c9ee30b2de26 /arch/mips/kernel/uprobes.c | |
parent | e3b23148fd8af277fd55068183ed3ce4c8f51aa5 (diff) | |
download | linux-stable-2809328f6ef2139115665dda1b83ee9303c52431.tar.gz linux-stable-2809328f6ef2139115665dda1b83ee9303c52431.tar.bz2 linux-stable-2809328f6ef2139115665dda1b83ee9303c52431.zip |
MIPS: uprobes: fix incorrect uprobe brk handling
When a uprobe-replacement breakpoint instruction is handled, a notifier
is called with DIE_UPROBE argument, but a corresponding exception notify
handler for MIPS attempts to handle DIE_BREAK instead. As a result
the breakpoint instruction isn't handled by the uprobe code and the probed
application terminates with SIGTRAP.
Fix this by changing arch_uprobe_exception_notify code to handle
DIE_UPROBE as a pre-singlestep condition instead of DIE_BREAK.
Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13884/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/uprobes.c')
-rw-r--r-- | arch/mips/kernel/uprobes.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/kernel/uprobes.c b/arch/mips/kernel/uprobes.c index 8452d933a645..1149b30c9aeb 100644 --- a/arch/mips/kernel/uprobes.c +++ b/arch/mips/kernel/uprobes.c @@ -222,7 +222,7 @@ int arch_uprobe_exception_notify(struct notifier_block *self, return NOTIFY_DONE; switch (val) { - case DIE_BREAK: + case DIE_UPROBE: if (uprobe_pre_sstep_notifier(regs)) return NOTIFY_STOP; break; |