aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/parisc/kernel/ptrace.c
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@bell.net>2012-12-28 23:18:01 +0000
committerHelge Deller <deller@gmx.de>2013-01-07 23:06:27 +0100
commit34360f080cb5848990576e1465d2d01a3c261762 (patch)
tree42103381d3b28801443b609a1f0bc9bf0001eaf7 /arch/parisc/kernel/ptrace.c
parentparisc: don't claim cpu irqs more than once (diff)
downloadwireguard-linux-34360f080cb5848990576e1465d2d01a3c261762.tar.xz
wireguard-linux-34360f080cb5848990576e1465d2d01a3c261762.zip
parisc: improve ptrace support for gdb single-step
Various GCC tests use gdb to simulate a multithreaded application. Many of these tests have been failing on parisc linux. GCC does this by using gdb to single-step the application, then gdb is used to call other test specific code. Where this fails is when the application is stepped into the delay slot of a taken branch. This sets the PSW B bit. When the test specific code is executed, this usually clears the PSW B bit. Currently, gdb is not allowed to set the B bit. So, the code falls through what should be a taken branch. The attached patch adds the PSW B bit to the set of bits that gdb is allowed to set. In order to set the B bit, the trace system call must return using an interrupt restore. The patch also modifies this code to use the saved IAOQ values when they are saved by a ptrace syscall or interruption. Signed-off-by: John David Anglin <dave.anglin@bell.net> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/kernel/ptrace.c')
-rw-r--r--arch/parisc/kernel/ptrace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/kernel/ptrace.c b/arch/parisc/kernel/ptrace.c
index 857c2f545470..534abd4936e1 100644
--- a/arch/parisc/kernel/ptrace.c
+++ b/arch/parisc/kernel/ptrace.c
@@ -26,7 +26,7 @@
#include <asm/asm-offsets.h>
/* PSW bits we allow the debugger to modify */
-#define USER_PSW_BITS (PSW_N | PSW_V | PSW_CB)
+#define USER_PSW_BITS (PSW_N | PSW_B | PSW_V | PSW_CB)
/*
* Called by kernel/ptrace.c when detaching..