summaryrefslogtreecommitdiff
path: root/system/psmisc/fix-peekfd-on-ppc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/psmisc/fix-peekfd-on-ppc.patch')
-rw-r--r--system/psmisc/fix-peekfd-on-ppc.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/system/psmisc/fix-peekfd-on-ppc.patch b/system/psmisc/fix-peekfd-on-ppc.patch
new file mode 100644
index 000000000..d9fc1d5f1
--- /dev/null
+++ b/system/psmisc/fix-peekfd-on-ppc.patch
@@ -0,0 +1,19 @@
+--- psmisc-23.0/src/peekfd.c.old 2017-06-12 00:29:46.000000000 +0000
++++ psmisc-23.0/src/peekfd.c 2017-06-28 10:15:18.635344983 +0000
+@@ -233,11 +233,11 @@
+ if (WIFSTOPPED(status)) {
+ #ifdef PPC
+ struct pt_regs regs;
+- regs.gpr[0] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R0, 0);
+- regs.gpr[3] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R3, 0);
+- regs.gpr[4] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R4, 0);
+- regs.gpr[5] = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_R5, 0);
+- regs.orig_gpr3 = ptrace(PTRACE_PEEKUSER, pid, __WORDSIZE/8 * PT_ORIG_R3, 0);
++ regs.gpr[0] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R0, 0);
++ regs.gpr[3] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R3, 0);
++ regs.gpr[4] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R4, 0);
++ regs.gpr[5] = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_R5, 0);
++ regs.orig_gpr3 = ptrace(PTRACE_PEEKUSER, pid, sizeof(void *) * PT_ORIG_R3, 0);
+ #elif defined(ARM)
+ struct pt_regs regs;
+ ptrace(PTRACE_GETREGS, pid, 0, &regs);