diff options
Diffstat (limited to 'arch/sh/kernel/kprobes.c')
-rw-r--r-- | arch/sh/kernel/kprobes.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/sh/kernel/kprobes.c b/arch/sh/kernel/kprobes.c index f0e1c78d0bf..a478ba78e75 100644 --- a/arch/sh/kernel/kprobes.c +++ b/arch/sh/kernel/kprobes.c | |||
@@ -252,6 +252,17 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
252 | p = get_kprobe(addr); | 252 | p = get_kprobe(addr); |
253 | if (!p) { | 253 | if (!p) { |
254 | /* Not one of ours: let kernel handle it */ | 254 | /* Not one of ours: let kernel handle it */ |
255 | if (*(kprobe_opcode_t *)addr != BREAKPOINT_INSTRUCTION) { | ||
256 | /* | ||
257 | * The breakpoint instruction was removed right | ||
258 | * after we hit it. Another cpu has removed | ||
259 | * either a probepoint or a debugger breakpoint | ||
260 | * at this address. In either case, no further | ||
261 | * handling of this interrupt is appropriate. | ||
262 | */ | ||
263 | ret = 1; | ||
264 | } | ||
265 | |||
255 | goto no_kprobe; | 266 | goto no_kprobe; |
256 | } | 267 | } |
257 | 268 | ||