From: Denys Vlasenko Date: Fri, 28 Jun 2013 12:41:30 +0000 (+0200) Subject: POWERPC: if GETREGS fails with EIO, don't try it again X-Git-Tag: v4.9~215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7eb893236ca547779b597325a4a0e4b349e4c566;p=strace POWERPC: if GETREGS fails with EIO, don't try it again Signed-off-by: Denys Vlasenko --- diff --git a/syscall.c b/syscall.c index fc7cd06d..a44ac0c4 100644 --- a/syscall.c +++ b/syscall.c @@ -1070,9 +1070,15 @@ get_regs(pid_t pid) # 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