···567567 the KVM hypervisor. This will add detection for KVM as well as a568568 virtio transport. If KVM is detected, the virtio console will be569569 the default console.570570+571571+config SECCOMP572572+ bool "Enable seccomp to safely compute untrusted bytecode"573573+ depends on PROC_FS574574+ default y575575+ help576576+ This kernel feature is useful for number crunching applications577577+ that may need to compute untrusted bytecode during their578578+ execution. By using pipes or other transports made available to579579+ the process as file descriptors supporting the read/write580580+ syscalls, it's possible to isolate those applications in581581+ their own address space using seccomp. Once seccomp is582582+ enabled via /proc/<pid>/seccomp, it cannot be disabled583583+ and the task is only allowed to execute a few safe syscalls584584+ defined by each seccomp mode.585585+586586+ If unsure, say Y.587587+570588endmenu571589572590source "net/Kconfig"
···8383/*8484 * thread information flags bit numbers8585 */8686-#define TIF_SYSCALL_TRACE 0 /* syscall trace active */8786#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */8887#define TIF_SIGPENDING 2 /* signal pending */8988#define TIF_NEED_RESCHED 3 /* rescheduling necessary */9089#define TIF_RESTART_SVC 4 /* restart svc with new svc number */9191-#define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */9290#define TIF_SINGLE_STEP 6 /* deliver sigtrap on return to user */9391#define TIF_MCCK_PENDING 7 /* machine check handling is pending */9292+#define TIF_SYSCALL_TRACE 8 /* syscall trace active */9393+#define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */9494+#define TIF_SECCOMP 10 /* secure computing */9495#define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */9596#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling 9697 TIF_NEED_RESCHED */···10099#define TIF_RESTORE_SIGMASK 20 /* restore signal mask in do_signal() */101100#define TIF_FREEZE 21 /* thread is freezing for suspend */102101103103-#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)104102#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)105103#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)106104#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)107105#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)108106#define _TIF_RESTART_SVC (1<<TIF_RESTART_SVC)109109-#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)110107#define _TIF_SINGLE_STEP (1<<TIF_SINGLE_STEP)111108#define _TIF_MCCK_PENDING (1<<TIF_MCCK_PENDING)109109+#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)110110+#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)111111+#define _TIF_SECCOMP (1<<TIF_SECCOMP)112112#define _TIF_USEDFPU (1<<TIF_USEDFPU)113113#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)114114#define _TIF_31BIT (1<<TIF_31BIT)
+3-2
arch/s390/kernel/entry.S
···5353 _TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )5454_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \5555 _TIF_MCCK_PENDING)5656+_TIF_SYSCALL = (_TIF_SYSCALL_TRACE>>8 | _TIF_SYSCALL_AUDIT>>8 | _TIF_SECCOMP>>8)56575758STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER5859STACK_SIZE = 1 << STACK_SHIFT···266265 sth %r7,SP_SVCNR(%r15)267266 sll %r7,2 # svc number *4268267 l %r8,BASED(.Lsysc_table)269269- tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)268268+ tm __TI_flags+2(%r9),_TIF_SYSCALL270269 l %r8,0(%r7,%r8) # get system call addr.271270 bnz BASED(sysc_tracesys)272271 basr %r14,%r8 # call sys_xxxx···406405 basr %r14,%r8 # call sys_xxx407406 st %r2,SP_R2(%r15) # store return value408407sysc_tracenogo:409409- tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)408408+ tm __TI_flags+2(%r9),_TIF_SYSCALL410409 bz BASED(sysc_return)411410 l %r1,BASED(.Ltrace_exit)412411 la %r2,SP_PTREGS(%r15) # load pt_regs
+3-2
arch/s390/kernel/entry64.S
···5656 _TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )5757_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \5858 _TIF_MCCK_PENDING)5959+_TIF_SYSCALL = (_TIF_SYSCALL_TRACE>>8 | _TIF_SYSCALL_AUDIT>>8 | _TIF_SECCOMP>>8)59606061#define BASED(name) name-system_call(%r13)6162···261260 larl %r10,sys_call_table_emu # use 31 bit emulation system calls262261sysc_noemu:263262#endif264264- tm __TI_flags+7(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)263263+ tm __TI_flags+6(%r9),_TIF_SYSCALL265264 lgf %r8,0(%r7,%r10) # load address of system call routine266265 jnz sysc_tracesys267266 basr %r14,%r8 # call sys_xxxx···392391 basr %r14,%r8 # call sys_xxx393392 stg %r2,SP_R2(%r15) # store return value394393sysc_tracenogo:395395- tm __TI_flags+7(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT)394394+ tm __TI_flags+6(%r9),_TIF_SYSCALL396395 jz sysc_return397396 la %r2,SP_PTREGS(%r15) # load pt_regs398397 larl %r14,sysc_return # return point is sysc_return
+5-1
arch/s390/kernel/ptrace.c
···3636#include <linux/elf.h>3737#include <linux/regset.h>3838#include <linux/tracehook.h>3939-#include <linux/compat.h>3939+#include <linux/seccomp.h>4040+#include <asm/compat.h>4041#include <asm/segment.h>4142#include <asm/page.h>4243#include <asm/pgtable.h>···640639asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)641640{642641 long ret;642642+643643+ /* Do the secure computing check first. */644644+ secure_computing(regs->gprs[2]);643645644646 /*645647 * The sysc_tracesys code in entry.S stored the system