summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2013-06-26 15:53:33 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2013-06-26 15:56:53 +0200
commitce6e33be1dbfc16620ea7991a414e879ef84fe22 (patch)
tree0a00b610e98bc7caf07a61c4986ea36e4385f841 /signal.c
parent711b17c44b50b6de7cfb9a3f2bd9d70dfdcacc8c (diff)
downloadstrace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.gz
strace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.bz2
strace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.xz
powerpc: Use PTRACE_GETREGS to fetch all registers
* defs.h: declare ppc_regs and get_regs_error. * signal.c (sys_sigreturn): Use ppc_regs instead of upeek. * syscall.c: define ppc_regs. (printcall): Use ppc_regs instead of upeek. (get_scno): Replace multiple upeek calls with one PTRACE_GETREGS call. (get_syscall_result): Likewise. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/signal.c b/signal.c
index 55815aa..3371ee7 100644
--- a/signal.c
+++ b/signal.c
@@ -866,8 +866,9 @@ sys_sigreturn(struct tcb *tcp)
long esp;
struct sigcontext_struct sc;
sigset_t sigm;
- if (upeek(tcp, sizeof(unsigned long) * PT_R1, &esp) < 0)
- return 0;
+
+ esp = ppc_regs.gpr[1];
+
/* Skip dummy stack frame. */
#ifdef POWERPC64
if (current_personality == 0)