summaryrefslogtreecommitdiffstats
path: root/arch/ppc64/kernel/signal.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2005-09-10 16:01:11 +1000
committerPaul Mackerras <paulus@samba.org>2005-09-12 17:19:12 +1000
commitfd9648dff6f9797ecc509bcd181706a274dc074d (patch)
tree845b99905dc4f54171d554c14e45b55f1cfe48e2 /arch/ppc64/kernel/signal.c
parenta94d308513bdb2b926b45c11d7ce7fac6d6ca865 (diff)
downloadkernel-crypto-fd9648dff6f9797ecc509bcd181706a274dc074d.tar.gz
kernel-crypto-fd9648dff6f9797ecc509bcd181706a274dc074d.tar.xz
kernel-crypto-fd9648dff6f9797ecc509bcd181706a274dc074d.zip
[PATCH] ppc64: Add ptrace data breakpoint support
Add hardware data breakpoint support. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64/kernel/signal.c')
-rw-r--r--arch/ppc64/kernel/signal.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/signal.c b/arch/ppc64/kernel/signal.c
index 49a79a55c32..347112cca3c 100644
--- a/arch/ppc64/kernel/signal.c
+++ b/arch/ppc64/kernel/signal.c
@@ -550,6 +550,15 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
/* Whee! Actually deliver the signal. */
if (TRAP(regs) == 0x0C00)
syscall_restart(regs, &ka);
+
+ /*
+ * Reenable the DABR before delivering the signal to
+ * user space. The DABR will have been cleared if it
+ * triggered inside the kernel.
+ */
+ if (current->thread.dabr)
+ set_dabr(current->thread.dabr);
+
return handle_signal(signr, &ka, &info, oldset, regs);
}