diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-10-17 11:22:50 +0000 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-17 11:22:50 +0000 |
commit | 8eb41582d2106eccc7717047d1184481f5a1b3a6 (patch) | |
tree | 12257bbe39b5c8ae6918198fde682ed0aacd8e00 /arch/um/sys-x86_64/ptrace.c | |
parent | 127d4eb97b7bebc15fd692603263e75c220e24f9 (diff) | |
parent | 1cb17e2dbd09436069733500ea48e0c9b1f0a1cc (diff) | |
download | op-kernel-dev-8eb41582d2106eccc7717047d1184481f5a1b3a6.zip op-kernel-dev-8eb41582d2106eccc7717047d1184481f5a1b3a6.tar.gz |
Merge branch 'ep93xx/board' into next/board
Diffstat (limited to 'arch/um/sys-x86_64/ptrace.c')
-rw-r--r-- | arch/um/sys-x86_64/ptrace.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/um/sys-x86_64/ptrace.c b/arch/um/sys-x86_64/ptrace.c index f436136..4005506 100644 --- a/arch/um/sys-x86_64/ptrace.c +++ b/arch/um/sys-x86_64/ptrace.c @@ -145,7 +145,7 @@ int is_syscall(unsigned long addr) return instr == 0x050f; } -int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child) +static int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child) { int err, n, cpu = ((struct thread_info *) child->stack)->cpu; long fpregs[HOST_FP_SIZE]; @@ -162,7 +162,7 @@ int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child) return n; } -int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *child) +static int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *child) { int n, cpu = ((struct thread_info *) child->stack)->cpu; long fpregs[HOST_FP_SIZE]; @@ -182,12 +182,16 @@ long subarch_ptrace(struct task_struct *child, long request, void __user *datap = (void __user *) data; switch (request) { - case PTRACE_GETFPXREGS: /* Get the child FPU state. */ + case PTRACE_GETFPREGS: /* Get the child FPU state. */ ret = get_fpregs(datap, child); break; - case PTRACE_SETFPXREGS: /* Set the child FPU state. */ + case PTRACE_SETFPREGS: /* Set the child FPU state. */ ret = set_fpregs(datap, child); break; + case PTRACE_ARCH_PRCTL: + /* XXX Calls ptrace on the host - needs some SMP thinking */ + ret = arch_prctl(child, data, (void __user *) addr); + break; } return ret; |