From: Anton Blanchard I was running some tests and noticed BUG() handling wasnt working as expected. The kprobes code has some code to check for breakpoint removal races and only checks for one opcode. It turns out there are many forms of the breakpoint instruction, comparing against one is not good enough. For the momemt remove the code in question so BUG()s work again and we can discuss a better solution (I thought kprobes was emulating instructions or running them out of line). Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/kernel/kprobes.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN arch/ppc64/kernel/kprobes.c~ppc64-kprobes-breaks-bug-handling arch/ppc64/kernel/kprobes.c --- 25/arch/ppc64/kernel/kprobes.c~ppc64-kprobes-breaks-bug-handling 2005-01-10 19:59:11.069996056 -0800 +++ 25-akpm/arch/ppc64/kernel/kprobes.c 2005-01-10 19:59:11.072995600 -0800 @@ -99,6 +99,7 @@ static inline int kprobe_handler(struct p = get_kprobe(addr); if (!p) { unlock_kprobes(); +#if 0 if (*addr != BREAKPOINT_INSTRUCTION) { /* * The breakpoint instruction was removed right @@ -109,6 +110,7 @@ static inline int kprobe_handler(struct */ ret = 1; } +#endif /* Not one of ours: let kernel handle it */ goto no_kprobe; } _