riscv: add support for SECCOMP and SECCOMP_FILTER
authorDavid Abdurachmanov <david.abdurachmanov@sifive.com>
Sat, 5 Oct 2019 00:12:22 +0000 (17:12 -0700)
committerPaul Walmsley <paul.walmsley@sifive.com>
Tue, 29 Oct 2019 18:32:10 +0000 (11:32 -0700)
commit5340627e3fe08030988bdda46dd86cd5d5fb7517
treeb6c4e571320c67aaae6ade75feeee3420fcc55ac
parent00a5bf3a8ca30d19f24219fc3cfb74f4eab3600d
riscv: add support for SECCOMP and SECCOMP_FILTER

This patch was extensively tested on Fedora/RISCV (applied by default on
top of 5.2-rc7 kernel for <2 months). The patch was also tested with 5.3-rc
on QEMU and SiFive Unleashed board.

libseccomp (userspace) was rebased:
https://github.com/seccomp/libseccomp/pull/134

Fully passes libseccomp regression testing (simulation and live).

There is one failing kernel selftest: global.user_notification_signal

v1 -> v2:
  - return immediately if secure_computing(NULL) returns -1
  - fixed whitespace issues
  - add missing seccomp.h
  - remove patch #2 (solved now)
  - add riscv to seccomp kernel selftest

Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
Cc: keescook@chromium.org
Cc: me@carlosedp.com
Tested-by: Carlos de Paula <me@carlosedp.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/linux-riscv/CAEn-LTp=ss0Dfv6J00=rCAy+N78U2AmhqJNjfqjr2FDpPYjxEQ@mail.gmail.com/
Link: https://lore.kernel.org/linux-riscv/CAJr-aD=UnCN9E_mdVJ2H5nt=6juRSWikZnA5HxDLQxXLbsRz-w@mail.gmail.com/
[paul.walmsley@sifive.com: cleaned up Cc: lines; fixed spelling and
 checkpatch issues; updated to apply]
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
arch/riscv/Kconfig
arch/riscv/include/asm/seccomp.h [new file with mode: 0644]
arch/riscv/include/asm/thread_info.h
arch/riscv/kernel/entry.S
arch/riscv/kernel/ptrace.c
tools/testing/selftests/seccomp/seccomp_bpf.c