From: Ananth N Mavinakayanahalli Date: Fri, 22 Mar 2013 15:18:38 +0000 (+0530) Subject: uprobes/powerpc: Teach uprobes to ignore gdb breakpoints X-Git-Tag: firefly_0821_release~3680^2~656^2~9^2~27 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ab07e807be533d6317ea0971900bdf547962effd;p=firefly-linux-kernel-4.4.55.git uprobes/powerpc: Teach uprobes to ignore gdb breakpoints Powerpc has many trap variants that could be used by entities like gdb. Currently, running gdb on a program being traced by uprobes causes an endless loop since uprobes doesn't understand that the trap was inserted by some other entity and a SIGTRAP needs to be delivered. Teach uprobes to ignore breakpoints that do not belong to it. Signed-off-by: Ananth N Mavinakayanahalli Acked-by: Srikar Dronamraju Signed-off-by: Oleg Nesterov --- diff --git a/arch/powerpc/kernel/uprobes.c b/arch/powerpc/kernel/uprobes.c index bc77834dbf43..cb7f63da140c 100644 --- a/arch/powerpc/kernel/uprobes.c +++ b/arch/powerpc/kernel/uprobes.c @@ -30,6 +30,16 @@ #define UPROBE_TRAP_NR UINT_MAX +/** + * is_trap_insn - check if the instruction is a trap variant + * @insn: instruction to be checked. + * Returns true if @insn is a trap variant. + */ +bool is_trap_insn(uprobe_opcode_t *insn) +{ + return (is_trap(*insn)); +} + /** * arch_uprobe_analyze_insn * @mm: the probed address space.