| From fb7f045ace0624f1e59a7db8497e460bd54b1cbc Mon Sep 17 00:00:00 2001 |
| From: David Engraf <david.engraf@sysgo.com> |
| Date: Wed, 23 Mar 2011 11:35:42 +0000 |
| Subject: sh: Fix ptrace hw_breakpoint handling |
| |
| From: David Engraf <david.engraf@sysgo.com> |
| |
| commit fb7f045ace0624f1e59a7db8497e460bd54b1cbc upstream. |
| |
| Since commit 34d0b5af50a063cded842716633501b38ff815fb it is no longer |
| possible to debug an application using singlestep. The old commit |
| converted singlestep handling via ptrace to hw_breakpoints. The |
| hw_breakpoint is disabled when an event is triggered and not re-enabled |
| again. This patch re-enables the existing hw_breakpoint before the |
| existing breakpoint is reused. |
| |
| Signed-off-by: David Engraf <david.engraf@sysgo.com> |
| Signed-off-by: Paul Mundt <lethal@linux-sh.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/sh/kernel/ptrace_32.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/arch/sh/kernel/ptrace_32.c |
| +++ b/arch/sh/kernel/ptrace_32.c |
| @@ -101,6 +101,8 @@ static int set_single_step(struct task_s |
| |
| attr = bp->attr; |
| attr.bp_addr = addr; |
| + /* reenable breakpoint */ |
| + attr.disabled = false; |
| err = modify_user_hw_breakpoint(bp, &attr); |
| if (unlikely(err)) |
| return err; |