MIPS: add seccomp syscall
authorKees Cook <keescook@chromium.org>
Tue, 18 Nov 2014 01:51:27 +0000 (17:51 -0800)
committerRaghu Gandham <raghu.gandham@imgtec.com>
Tue, 2 Dec 2014 00:57:29 +0000 (16:57 -0800)
Wires up the new seccomp syscall.

Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Conflicts:
arch/mips/include/uapi/asm/unistd.h
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-64.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-o32.S

Change-Id: I7031bdbec7c90292aeb7e255c73cb36e6ec43af2

arch/mips/include/uapi/asm/unistd.h
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-64.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-o32.S

index 1dee279f96659c6ae2d2ac6d42af77483454076d..af4d5c0a2f029a6ddda5c55f595b4c45ec596104 100644 (file)
 #define __NR_process_vm_writev         (__NR_Linux + 346)
 #define __NR_kcmp                      (__NR_Linux + 347)
 #define __NR_finit_module              (__NR_Linux + 348)
+/* Backporting seccomp, skip a few ...
+ * #define __NR_sched_setattr          (__NR_Linux + 349)
+ * #define __NR_sched_getattr          (__NR_Linux + 350)
+ * #define __NR_renameat2                      (__NR_Linux + 351)
+ */
+#define __NR_seccomp                   (__NR_Linux + 352)
 
 /*
  * Offset of the last Linux o32 flavoured syscall
  */
-#define __NR_Linux_syscalls            348
+#define __NR_Linux_syscalls            352
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
 
 #define __NR_O32_Linux                 4000
-#define __NR_O32_Linux_syscalls                348
+#define __NR_O32_Linux_syscalls                352
 
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 
 #define __NR_kcmp                      (__NR_Linux + 306)
 #define __NR_finit_module              (__NR_Linux + 307)
 #define __NR_getdents64                        (__NR_Linux + 308)
+/* Backporting seccomp, skip a few ...
+ * #define __NR_sched_setattr          (__NR_Linux + 309)
+ * #define __NR_sched_getattr          (__NR_Linux + 310)
+ * #define __NR_renameat2                      (__NR_Linux + 311)
+ */
+#define __NR_seccomp                   (__NR_Linux + 312)
 
 /*
  * Offset of the last Linux 64-bit flavoured syscall
  */
-#define __NR_Linux_syscalls            308
+#define __NR_Linux_syscalls            312
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
 
 #define __NR_64_Linux                  5000
-#define __NR_64_Linux_syscalls         308
+#define __NR_64_Linux_syscalls         312
 
 #if _MIPS_SIM == _MIPS_SIM_NABI32
 
 #define __NR_process_vm_writev         (__NR_Linux + 310)
 #define __NR_kcmp                      (__NR_Linux + 311)
 #define __NR_finit_module              (__NR_Linux + 312)
+/* Backporting seccomp, skip a few ...
+ * #define __NR_sched_setattr          (__NR_Linux + 313)
+ * #define __NR_sched_getattr          (__NR_Linux + 314)
+ * #define __NR_renameat2                      (__NR_Linux + 315)
+ */
+#define __NR_seccomp                   (__NR_Linux + 316)
 
 /*
  * Offset of the last N32 flavoured syscall
  */
-#define __NR_Linux_syscalls            312
+#define __NR_Linux_syscalls            316
 
 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
 
 #define __NR_N32_Linux                 6000
-#define __NR_N32_Linux_syscalls                312
+#define __NR_N32_Linux_syscalls                316
 
 #endif /* _UAPI_ASM_UNISTD_H */
index c28b40bf509f3cbf6d9fd835fd8809a666fcb831..d9eac28f52029914e1a1e1e20d971658ce491339 100644 (file)
@@ -615,6 +615,12 @@ einval: li v0, -ENOSYS
        sys     sys_process_vm_writev   6
        sys     sys_kcmp                5
        sys     sys_finit_module        3
+       /* Backporting seccomp, skip a few ... */
+       sys sys_ni_syscall              0       /* sys_sched_setattr */
+       sys sys_ni_syscall              0       /* sys_sched_getattr */         /* 4350 */
+       sys sys_ni_syscall              0       /* sys_renameat2 */
+       sys     sys_seccomp 3
+
        .endm
 
        /* We pre-compute the number of _instruction_ bytes needed to
index 97a5909a61cf0c623dfdf8284eaf11bf13e7adf7..285872f9d6d195cbc97ee0c09216f6e4f5ed7985 100644 (file)
@@ -424,4 +424,8 @@ sys_call_table:
        PTR     sys_kcmp
        PTR     sys_finit_module
        PTR     sys_getdents64
+       sys sys_ni_syscall      /* sys_sched_setattr */
+       sys sys_ni_syscall      /* sys_sched_getattr */         /* 5310 */
+       sys sys_ni_syscall      /* sys_renameat2 */
+       sys     sys_seccomp
        .size   sys_call_table,.-sys_call_table
index edcb6594e7b5b32a8d658bbe8c69de6626d4fbf0..bdee1a1ed1c2a4ffb303c02f7e5f5d3d6f027ce0 100644 (file)
@@ -417,4 +417,8 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_process_vm_writev    /* 6310 */
        PTR     sys_kcmp
        PTR     sys_finit_module
+       sys sys_ni_syscall      /* sys_sched_setattr */
+       sys sys_ni_syscall      /* sys_sched_getattr */
+       sys sys_ni_syscall      /* sys_renameat2 */                     /* 6315 */
+       sys     sys_seccomp
        .size   sysn32_call_table,.-sysn32_call_table
index 74f485d3c0ef41bb7f73204f06a7a801d0465f13..a1f826a245780521b39b6b452954313e3a2d9eaf 100644 (file)
@@ -541,4 +541,8 @@ sys_call_table:
        PTR     compat_sys_process_vm_writev
        PTR     sys_kcmp
        PTR     sys_finit_module
-       .size   sys_call_table,.-sys_call_table
+       sys sys_ni_syscall      /* sys_sched_setattr */
+       sys sys_ni_syscall      /* sys_sched_getattr */         /* 4350 */
+       sys sys_ni_syscall      /* sys_renameat2 */
+       sys     sys_seccomp
+       .size   sys32_call_table,.-sys32_call_table