fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 7 Jun 2020 03:44:24 +0000 (23:44 -0400)
committerSasha Levin <sashal@kernel.org>
Tue, 30 Jun 2020 19:36:47 +0000 (15:36 -0400)
[ Upstream commit 9d964e1b82d8182184153b70174f445ea616f053 ]

lost npc in PTRACE_SETREGSET, breaking PTRACE_SETREGS as well

Fixes: cf51e129b968 "sparc32: fix register window handling in genregs32_[gs]et()"
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/sparc/kernel/ptrace_32.c

index 60f7205..646dd58 100644 (file)
@@ -168,12 +168,17 @@ static int genregs32_set(struct task_struct *target,
        if (ret || !count)
                return ret;
        ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
-                                &regs->y,
+                                &regs->npc,
                                 34 * sizeof(u32), 35 * sizeof(u32));
        if (ret || !count)
                return ret;
+       ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+                                &regs->y,
+                                35 * sizeof(u32), 36 * sizeof(u32));
+       if (ret || !count)
+               return ret;
        return user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
-                                        35 * sizeof(u32), 38 * sizeof(u32));
+                                        36 * sizeof(u32), 38 * sizeof(u32));
 }
 
 static int fpregs32_get(struct task_struct *target,