On the 8xx, signals are generated after executing the instruction.
So no need to manually single-step on 8xx.

Signed-off-by: Ravi Bangoria <ravi.bango...@linux.ibm.com>
---
 .../selftests/powerpc/ptrace/ptrace-hwbreak.c | 26 ++++++++++++++-----
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c 
b/tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c
index 654131591fca..58505277346d 100644
--- a/tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c
+++ b/tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c
@@ -22,6 +22,11 @@
 #include <sys/wait.h>
 #include "ptrace.h"
 
+#define SPRN_PVR       0x11F
+#define PVR_8xx                0x00500000
+
+bool is_8xx;
+
 /*
  * Use volatile on all global var so that compiler doesn't
  * optimise their load/stores. Otherwise selftest can fail.
@@ -205,13 +210,15 @@ static void check_success(pid_t child_pid, const char 
*name, const char *type,
 
        printf("%s, %s, len: %d: Ok\n", name, type, len);
 
-       /*
-        * For ptrace registered watchpoint, signal is generated
-        * before executing load/store. Singlestep the instruction
-        * and then continue the test.
-        */
-       ptrace(PTRACE_SINGLESTEP, child_pid, NULL, 0);
-       wait(NULL);
+       if (!is_8xx) {
+               /*
+                * For ptrace registered watchpoint, signal is generated
+                * before executing load/store. Singlestep the instruction
+                * and then continue the test.
+                */
+               ptrace(PTRACE_SINGLESTEP, child_pid, NULL, 0);
+               wait(NULL);
+       }
 }
 
 static void ptrace_set_debugreg(pid_t child_pid, unsigned long wp_addr)
@@ -489,5 +496,10 @@ static int ptrace_hwbreak(void)
 
 int main(int argc, char **argv, char **envp)
 {
+       int pvr = 0;
+       asm __volatile__ ("mfspr %0,%1" : "=r"(pvr) : "i"(SPRN_PVR));
+       if (pvr == PVR_8xx)
+               is_8xx = true;
+
        return test_harness(ptrace_hwbreak, "ptrace-hwbreak");
 }
-- 
2.21.0

Reply via email to