summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2012-12-18 02:08:10 +0100
committerChris Metcalf <cmetcalf@tilera.com>2012-12-18 20:53:14 +0100
commit9af62547675b04ef8aa5eda5f60450c01f598f2a (patch)
tree7e424dc34254d11aa7fe1e2eb9987f250584f25d /arch
parentarch/tile: implement user_regset interface on tile (diff)
downloadlinux-9af62547675b04ef8aa5eda5f60450c01f598f2a.tar.xz
linux-9af62547675b04ef8aa5eda5f60450c01f598f2a.zip
arch/tile: implement arch_ptrace using user_regset on tile
This patch changes arch_ptrace on tile so that it uses user_regset to implement the PTRACE_GETREGS and PTRACE_SETREGS operations. Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca> Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/tile/kernel/ptrace.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/tile/kernel/ptrace.c b/arch/tile/kernel/ptrace.c
index 882e38164773..9835312d5a91 100644
--- a/arch/tile/kernel/ptrace.c
+++ b/arch/tile/kernel/ptrace.c
@@ -193,18 +193,15 @@ long arch_ptrace(struct task_struct *child, long request,
break;
case PTRACE_GETREGS: /* Get all registers from the child. */
- if (copy_to_user(datap, getregs(child, &copyregs),
- sizeof(struct pt_regs)) == 0) {
- ret = 0;
- }
+ ret = copy_regset_to_user(child, &tile_user_regset_view,
+ REGSET_GPR, 0,
+ sizeof(struct pt_regs), datap);
break;
case PTRACE_SETREGS: /* Set all registers in the child. */
- if (copy_from_user(&copyregs, datap,
- sizeof(struct pt_regs)) == 0) {
- putregs(child, &copyregs);
- ret = 0;
- }
+ ret = copy_regset_from_user(child, &tile_user_regset_view,
+ REGSET_GPR, 0,
+ sizeof(struct pt_regs), datap);
break;
case PTRACE_GETFPREGS: /* Get the child FPU state. */