POWERPC: if GETREGS fails with EIO, don't try it again

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
diff --git a/syscall.c b/syscall.c
index fc7cd06..a44ac0c 100644
--- a/syscall.c
+++ b/syscall.c
@@ -1070,9 +1070,15 @@
 # elif defined(SPARC) || defined(SPARC64)
 	get_regs_error = ptrace(PTRACE_GETREGS, pid, (char *)&sparc_regs, 0);
 # elif defined(POWERPC)
+	static bool old_kernel = 0;
+	if (old_kernel)
+		goto old;
 	get_regs_error = ptrace(PTRACE_GETREGS, pid, NULL, (long) &ppc_regs);
-	if (get_regs_error && errno == EIO)
+	if (get_regs_error && errno == EIO) {
+		old_kernel = 1;
+ old:
 		get_regs_error = powerpc_getregs_old(pid);
+	}
 
 /* try PTRACE_GETREGSET first, fallback to PTRACE_GETREGS */
 # else