Skip to content

Commit 74f1077

Browse files
MJNowakowskiralfbaechle
authored andcommitted
MIPS: ptrace: Fix regs_return_value for kernel context
Currently regs_return_value always negates reg[2] if it determines the syscall has failed, but when called in kernel context this check is invalid and may result in returning a wrong value. This fixes errors reported by CONFIG_KPROBES_SANITY_TEST Fixes: d7e7528 ("Audit: push audit success and retcode into arch ptrace.h") Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org # 3.3+ Patchwork: https://patchwork.linux-mips.org/patch/14381/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
1 parent 9445622 commit 74f1077

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

arch/mips/include/asm/ptrace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ static inline int is_syscall_success(struct pt_regs *regs)
152152

153153
static inline long regs_return_value(struct pt_regs *regs)
154154
{
155-
if (is_syscall_success(regs))
155+
if (is_syscall_success(regs) || !user_mode(regs))
156156
return regs->regs[2];
157157
else
158158
return -regs->regs[2];

0 commit comments

Comments
 (0)