aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/include/asm/syscall.h
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2016-03-30 08:14:31 -0400
committerHelge Deller <deller@gmx.de>2016-03-31 06:28:38 -0400
commit910cd32e552ea09caa89cdbe328e468979b030dd (patch)
tree02cc8c1d9d0202d76f988ae242ccbc328a8e43cd /arch/parisc/include/asm/syscall.h
parent4f4acc9472e54ce702f1d85fc9e6d57767dec91f (diff)
parisc: Fix and enable seccomp filter support
The seccomp filter support requires careful handling of task registers. This includes reloading of the return value (%r28) and proper syscall exit if secure_computing() returned -1. Additionally we need to sign-extend the syscall number from signed 32bit to signed 64bit in do_syscall_trace_enter() since the ptrace interface only allows storing 32bit values in compat mode. Signed-off-by: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org # v4.5
Diffstat (limited to 'arch/parisc/include/asm/syscall.h')
-rw-r--r--arch/parisc/include/asm/syscall.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/parisc/include/asm/syscall.h b/arch/parisc/include/asm/syscall.h
index a5eba95d87fe..637ce8d6f375 100644
--- a/arch/parisc/include/asm/syscall.h
+++ b/arch/parisc/include/asm/syscall.h
@@ -39,6 +39,19 @@ static inline void syscall_get_arguments(struct task_struct *tsk,
39 } 39 }
40} 40}
41 41
42static inline void syscall_set_return_value(struct task_struct *task,
43 struct pt_regs *regs,
44 int error, long val)
45{
46 regs->gr[28] = error ? error : val;
47}
48
49static inline void syscall_rollback(struct task_struct *task,
50 struct pt_regs *regs)
51{
52 /* do nothing */
53}
54
42static inline int syscall_get_arch(void) 55static inline int syscall_get_arch(void)
43{ 56{
44 int arch = AUDIT_ARCH_PARISC; 57 int arch = AUDIT_ARCH_PARISC;