From: Al Viro <v...@zeniv.linux.org.uk>

Signed-off-by: Al Viro <v...@zeniv.linux.org.uk>
---
 arch/h8300/kernel/ptrace.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/arch/h8300/kernel/ptrace.c b/arch/h8300/kernel/ptrace.c
index 0dc1c8f622bc..a99cbe91a6d3 100644
--- a/arch/h8300/kernel/ptrace.c
+++ b/arch/h8300/kernel/ptrace.c
@@ -87,20 +87,15 @@ int h8300_put_reg(struct task_struct *task, int regno, 
unsigned long data)
 
 static int regs_get(struct task_struct *target,
                    const struct user_regset *regset,
-                   unsigned int pos, unsigned int count,
-                   void *kbuf, void __user *ubuf)
+                   struct membuf to)
 {
        int r;
-       struct user_regs_struct regs;
-       long *reg = (long *)&regs;
 
-       /* build user regs in buffer */
-       BUILD_BUG_ON(sizeof(regs) % sizeof(long) != 0);
-       for (r = 0; r < sizeof(regs) / sizeof(long); r++)
-               *reg++ = h8300_get_reg(target, r);
+       BUILD_BUG_ON(sizeof(struct user_regs_struct) % sizeof(long) != 0);
+       for (r = 0; r < ELF_NGREG; r++)
+               membuf_store(&to, h8300_get_reg(target, r));
 
-       return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
-                                  &regs, 0, sizeof(regs));
+       return 0;
 }
 
 static int regs_set(struct task_struct *target,
@@ -139,7 +134,7 @@ static const struct user_regset h8300_regsets[] = {
                .n              = ELF_NGREG,
                .size           = sizeof(long),
                .align          = sizeof(long),
-               .get            = regs_get,
+               .get2           = regs_get,
                .set            = regs_set,
        },
 };
-- 
2.11.0

Reply via email to