xtensa: fix syscall_set_return_value
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 14 Nov 2019 23:05:40 +0000 (15:05 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Tue, 26 Nov 2019 20:01:45 +0000 (12:01 -0800)
syscall return value is in the register a2, not a0.

Cc: stable@vger.kernel.org # v5.0+
Fixes: 9f24f3c1067c ("xtensa: implement tracehook functions and enable HAVE_ARCH_TRACEHOOK")
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/syscall.h

index 359ab40..c90fb94 100644 (file)
@@ -51,7 +51,7 @@ static inline void syscall_set_return_value(struct task_struct *task,
                                            struct pt_regs *regs,
                                            int error, long val)
 {
-       regs->areg[0] = (long) error ? error : val;
+       regs->areg[2] = (long) error ? error : val;
 }
 
 #define SYSCALL_MAX_ARGS 6