Revert "[POWERPC] Add compat handler for PTRACE_GETSIGINFO"
This reverts commite4cc58944c
, as requested by Roland McGrath, because compat_ptrace_request (added in commite16b278164
, "ptrace: compat_ptrace_request siginfo") now handles this case. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
@@ -135,6 +135,4 @@ struct ucontext32 {
|
|||||||
struct mcontext32 uc_mcontext;
|
struct mcontext32 uc_mcontext;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int copy_siginfo_to_user32(struct compat_siginfo __user *d, siginfo_t *s);
|
|
||||||
|
|
||||||
#endif /* _PPC64_PPC32_H */
|
#endif /* _PPC64_PPC32_H */
|
||||||
|
@@ -29,15 +29,12 @@
|
|||||||
#include <linux/security.h>
|
#include <linux/security.h>
|
||||||
#include <linux/signal.h>
|
#include <linux/signal.h>
|
||||||
#include <linux/compat.h>
|
#include <linux/compat.h>
|
||||||
#include <linux/elf.h>
|
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
||||||
#include "ppc32.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* does not yet catch signals sent when the child dies.
|
* does not yet catch signals sent when the child dies.
|
||||||
* in exit.c or in signal.c.
|
* in exit.c or in signal.c.
|
||||||
@@ -67,27 +64,6 @@ static long compat_ptrace_old(struct task_struct *child, long request,
|
|||||||
return -EPERM;
|
return -EPERM;
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
||||||
compat_ulong_t caddr, compat_ulong_t cdata)
|
compat_ulong_t caddr, compat_ulong_t cdata)
|
||||||
{
|
{
|
||||||
@@ -306,9 +282,6 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
|||||||
0, PT_REGS_COUNT * sizeof(compat_long_t),
|
0, PT_REGS_COUNT * sizeof(compat_long_t),
|
||||||
compat_ptr(data));
|
compat_ptr(data));
|
||||||
|
|
||||||
case PTRACE_GETSIGINFO:
|
|
||||||
return compat_ptrace_getsiginfo(child, compat_ptr(data));
|
|
||||||
|
|
||||||
case PTRACE_GETFPREGS:
|
case PTRACE_GETFPREGS:
|
||||||
case PTRACE_SETFPREGS:
|
case PTRACE_SETFPREGS:
|
||||||
case PTRACE_GETVRREGS:
|
case PTRACE_GETVRREGS:
|
||||||
|
Reference in New Issue
Block a user