This has been fixed in 2.6.26 by e16b278.
---
patches.fixes/ptrace-getsiginfo | 79 -----------------------------------------
series.conf | 1 -
2 files changed, 80 deletions(-)
delete mode 100644 patches.fixes/ptrace-getsiginfo
diff --git a/patches.fixes/ptrace-getsiginfo b/patches.fixes/ptrace-getsiginfo
deleted file mode 100644
index 64e91b7..0000000
--- a/patches.fixes/ptrace-getsiginfo
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Andreas Schwab
-Subject: Add compat handler for PTRACE_GETSIGINFO
-Patch-mainline: not yet
-
-Current versions of gdb require a working implementation of
-PTRACE_GETSIGINFO for proper watchpoint support. Since struct siginfo
-contains pointers it must be converted when passed to a 32-bit debugger.
-
-Signed-off-by: Andreas Schwab
----
- arch/powerpc/kernel/ppc32.h | 2 ++
- arch/powerpc/kernel/ptrace32.c | 27 +++++++++++++++++++++++++++
- 2 files changed, 29 insertions(+)
-
---- a/arch/powerpc/kernel/ppc32.h
-+++ b/arch/powerpc/kernel/ppc32.h
-@@ -136,4 +136,6 @@ struct ucontext32 {
- struct mcontext32 uc_mcontext;
- };
-
-+extern int copy_siginfo_to_user32(struct compat_siginfo __user *d, siginfo_t *s);
-+
- #endif /* _PPC64_PPC32_H */
---- a/arch/powerpc/kernel/ptrace32.c
-+++ b/arch/powerpc/kernel/ptrace32.c
-@@ -28,12 +28,15 @@
- #include
- #include
- #include
-+#include
-
- #include
- #include
- #include
- #include
-
-+#include "ppc32.h"
-+
- /*
- * does not yet catch signals sent when the child dies.
- * in exit.c or in signal.c.
-@@ -69,6 +72,27 @@ static long compat_ptrace_old(struct tas
- #define FPRHALF(i) (((i) - PT_FPR0) & 1)
- #define FPRINDEX(i) TS_FPRWIDTH * FPRNUMBER(i) * 2 + FPRHALF(i)
-
-+static int compat_ptrace_getsiginfo(struct task_struct *child, compat_siginfo_t __user *data)
-+{
-+ siginfo_t lastinfo;
-+ int error = -ESRCH;
-+
-+ read_lock(&tasklist_lock);
-+ if (likely(child->sighand != NULL)) {
-+ error = -EINVAL;
-+ spin_lock_irq(&child->sighand->siglock);
-+ if (likely(child->last_siginfo != NULL)) {
-+ lastinfo = *child->last_siginfo;
-+ error = 0;
-+ }
-+ spin_unlock_irq(&child->sighand->siglock);
-+ }
-+ read_unlock(&tasklist_lock);
-+ if (!error)
-+ return copy_siginfo_to_user32(data, &lastinfo);
-+ return error;
-+}
-+
- long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
- compat_ulong_t caddr, compat_ulong_t cdata)
- {
-@@ -296,6 +320,9 @@ long compat_arch_ptrace(struct task_stru
- 0, PT_REGS_COUNT * sizeof(compat_long_t),
- compat_ptr(data));
-
-+ case PTRACE_GETSIGINFO:
-+ return compat_ptrace_getsiginfo(child, compat_ptr(data));
-+
- case PTRACE_GETFPREGS:
- case PTRACE_SETFPREGS:
- case PTRACE_GETVRREGS:
diff --git a/series.conf b/series.conf
index 5de663c..3985281 100644
--- a/series.conf
+++ b/series.conf
@@ -128,7 +128,6 @@
patches.drivers/ppc64-adb
patches.suse/suse-ppc64-branding
patches.arch/ppc-prom-nodisplay.patch
-+needs_update patches.fixes/ptrace-getsiginfo
########################################################
# powerpc/little endian
--
2.7.0
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
--
To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org
To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org