sh: Fix ptrace hw_breakpoint handling
authorDavid Engraf <david.engraf@sysgo.com>
Wed, 23 Mar 2011 11:35:42 +0000 (11:35 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 23 Mar 2011 13:18:25 +0000 (22:18 +0900)
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>
Cc: stable@kernel.org
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/ptrace_32.c

index b53664ef53e841e5758bd69b789d39e4ef9621f5..2130ca674e9bdd1674a22d339011a7f364bf0ec5 100644 (file)
@@ -101,6 +101,8 @@ static int set_single_step(struct task_struct *tsk, unsigned long addr)
 
                attr = bp->attr;
                attr.bp_addr = addr;
+               /* reenable breakpoint */
+               attr.disabled = false;
                err = modify_user_hw_breakpoint(bp, &attr);
                if (unlikely(err))
                        return err;