aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2019-07-16 19:29:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-16 22:23:24 -0400
commit2938c1f8faa0b3b95581eba9738cd24f7b791c80 (patch)
tree77d608d681e4fef59d3623547e88feaf15948317 /arch/parisc
parentba849160a0fa634eaad34183632f84ac82506f14 (diff)
parisc: define syscall_get_error()
syscall_get_error() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_return_value(), and syscall_get_arch() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Link: http://lkml.kernel.org/r/20190510152812.GD28558@altlinux.org Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Acked-by: Helge Deller <deller@gmx.de> [parisc] Cc: James E.J. Bottomley <jejb@parisc-linux.org> Cc: Elvira Khabirova <lineprinter@altlinux.org> Cc: Eugene Syromyatnikov <esyr@redhat.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Greentime Hu <greentime@andestech.com> Cc: James Hogan <jhogan@kernel.org> Cc: kbuild test robot <lkp@intel.com> Cc: Kees Cook <keescook@chromium.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Paul Burton <paul.burton@mips.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Richard Kuo <rkuo@codeaurora.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Vincent Chen <deanbo422@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/include/asm/syscall.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/parisc/include/asm/syscall.h b/arch/parisc/include/asm/syscall.h
index 80757e43cf2c..00b127a5e09b 100644
--- a/arch/parisc/include/asm/syscall.h
+++ b/arch/parisc/include/asm/syscall.h
@@ -29,6 +29,13 @@ static inline void syscall_get_arguments(struct task_struct *tsk,
29 args[0] = regs->gr[26]; 29 args[0] = regs->gr[26];
30} 30}
31 31
32static inline long syscall_get_error(struct task_struct *task,
33 struct pt_regs *regs)
34{
35 unsigned long error = regs->gr[28];
36 return IS_ERR_VALUE(error) ? error : 0;
37}
38
32static inline long syscall_get_return_value(struct task_struct *task, 39static inline long syscall_get_return_value(struct task_struct *task,
33 struct pt_regs *regs) 40 struct pt_regs *regs)
34{ 41{