lkml.org 
[lkml]   [2020]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v16 07/10] arch: Wire up landlock() syscall
    Date
    Wire up the landlock() system call for all architectures.

    Signed-off-by: Mickaël Salaün <mic@digikod.net>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: James Morris <jmorris@namei.org>
    Cc: Jann Horn <jannh@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Serge E. Hallyn <serge@hallyn.com>
    ---

    Changes since v14:
    * Add all architectures.

    Changes since v13:
    * New implementation.
    ---
    arch/alpha/kernel/syscalls/syscall.tbl | 1 +
    arch/arm/tools/syscall.tbl | 1 +
    arch/arm64/include/asm/unistd.h | 2 +-
    arch/arm64/include/asm/unistd32.h | 2 ++
    arch/ia64/kernel/syscalls/syscall.tbl | 1 +
    arch/m68k/kernel/syscalls/syscall.tbl | 1 +
    arch/microblaze/kernel/syscalls/syscall.tbl | 1 +
    arch/mips/kernel/syscalls/syscall_n32.tbl | 1 +
    arch/mips/kernel/syscalls/syscall_n64.tbl | 1 +
    arch/mips/kernel/syscalls/syscall_o32.tbl | 1 +
    arch/parisc/kernel/syscalls/syscall.tbl | 1 +
    arch/powerpc/kernel/syscalls/syscall.tbl | 1 +
    arch/s390/kernel/syscalls/syscall.tbl | 1 +
    arch/sh/kernel/syscalls/syscall.tbl | 1 +
    arch/sparc/kernel/syscalls/syscall.tbl | 1 +
    arch/x86/entry/syscalls/syscall_32.tbl | 1 +
    arch/x86/entry/syscalls/syscall_64.tbl | 1 +
    arch/xtensa/kernel/syscalls/syscall.tbl | 1 +
    include/uapi/asm-generic/unistd.h | 4 +++-
    19 files changed, 22 insertions(+), 2 deletions(-)

    diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl
    index 36d42da7466a..424f1f7f4ea8 100644
    --- a/arch/alpha/kernel/syscalls/syscall.tbl
    +++ b/arch/alpha/kernel/syscalls/syscall.tbl
    @@ -477,3 +477,4 @@
    # 545 reserved for clone3
    547 common openat2 sys_openat2
    548 common pidfd_getfd sys_pidfd_getfd
    +549 common landlock sys_landlock
    diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl
    index 4d1cf74a2caa..46b49724da4a 100644
    --- a/arch/arm/tools/syscall.tbl
    +++ b/arch/arm/tools/syscall.tbl
    @@ -451,3 +451,4 @@
    435 common clone3 sys_clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
    index 803039d504de..3b859596840d 100644
    --- a/arch/arm64/include/asm/unistd.h
    +++ b/arch/arm64/include/asm/unistd.h
    @@ -38,7 +38,7 @@
    #define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5)
    #define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800)

    -#define __NR_compat_syscalls 439
    +#define __NR_compat_syscalls 440
    #endif

    #define __ARCH_WANT_SYS_CLONE
    diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
    index c1c61635f89c..a24fe33f7c0d 100644
    --- a/arch/arm64/include/asm/unistd32.h
    +++ b/arch/arm64/include/asm/unistd32.h
    @@ -883,6 +883,8 @@ __SYSCALL(__NR_clone3, sys_clone3)
    __SYSCALL(__NR_openat2, sys_openat2)
    #define __NR_pidfd_getfd 438
    __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
    +#define __NR_landlock 439
    +__SYSCALL(__NR_landlock, sys_landlock)

    /*
    * Please add new compat syscalls above this comment and update
    diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
    index 042911e670b8..c311696e0f5f 100644
    --- a/arch/ia64/kernel/syscalls/syscall.tbl
    +++ b/arch/ia64/kernel/syscalls/syscall.tbl
    @@ -358,3 +358,4 @@
    # 435 reserved for clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl
    index f4f49fcb76d0..d73a43d235d3 100644
    --- a/arch/m68k/kernel/syscalls/syscall.tbl
    +++ b/arch/m68k/kernel/syscalls/syscall.tbl
    @@ -437,3 +437,4 @@
    435 common clone3 __sys_clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
    index 4c67b11f9c9e..f3927af7716f 100644
    --- a/arch/microblaze/kernel/syscalls/syscall.tbl
    +++ b/arch/microblaze/kernel/syscalls/syscall.tbl
    @@ -443,3 +443,4 @@
    435 common clone3 sys_clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/mips/kernel/syscalls/syscall_n32.tbl b/arch/mips/kernel/syscalls/syscall_n32.tbl
    index 1f9e8ad636cc..e467033ec474 100644
    --- a/arch/mips/kernel/syscalls/syscall_n32.tbl
    +++ b/arch/mips/kernel/syscalls/syscall_n32.tbl
    @@ -376,3 +376,4 @@
    435 n32 clone3 __sys_clone3
    437 n32 openat2 sys_openat2
    438 n32 pidfd_getfd sys_pidfd_getfd
    +439 n32 landlock sys_landlock
    diff --git a/arch/mips/kernel/syscalls/syscall_n64.tbl b/arch/mips/kernel/syscalls/syscall_n64.tbl
    index c0b9d802dbf6..1930ba6c75b7 100644
    --- a/arch/mips/kernel/syscalls/syscall_n64.tbl
    +++ b/arch/mips/kernel/syscalls/syscall_n64.tbl
    @@ -352,3 +352,4 @@
    435 n64 clone3 __sys_clone3
    437 n64 openat2 sys_openat2
    438 n64 pidfd_getfd sys_pidfd_getfd
    +439 n64 landlock sys_landlock
    diff --git a/arch/mips/kernel/syscalls/syscall_o32.tbl b/arch/mips/kernel/syscalls/syscall_o32.tbl
    index ac586774c980..0a66f190ae3d 100644
    --- a/arch/mips/kernel/syscalls/syscall_o32.tbl
    +++ b/arch/mips/kernel/syscalls/syscall_o32.tbl
    @@ -425,3 +425,4 @@
    435 o32 clone3 __sys_clone3
    437 o32 openat2 sys_openat2
    438 o32 pidfd_getfd sys_pidfd_getfd
    +439 o32 landlock sys_landlock
    diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl
    index 52a15f5cd130..93ddc36a660e 100644
    --- a/arch/parisc/kernel/syscalls/syscall.tbl
    +++ b/arch/parisc/kernel/syscalls/syscall.tbl
    @@ -435,3 +435,4 @@
    435 common clone3 sys_clone3_wrapper
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl
    index 220ae11555f2..34ca2cd82d4e 100644
    --- a/arch/powerpc/kernel/syscalls/syscall.tbl
    +++ b/arch/powerpc/kernel/syscalls/syscall.tbl
    @@ -527,3 +527,4 @@
    435 spu clone3 sys_ni_syscall
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
    index bd7bd3581a0f..b4233c9c7421 100644
    --- a/arch/s390/kernel/syscalls/syscall.tbl
    +++ b/arch/s390/kernel/syscalls/syscall.tbl
    @@ -440,3 +440,4 @@
    435 common clone3 sys_clone3 sys_clone3
    437 common openat2 sys_openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock sys_landlock
    diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
    index c7a30fcd135f..49fd37c18528 100644
    --- a/arch/sh/kernel/syscalls/syscall.tbl
    +++ b/arch/sh/kernel/syscalls/syscall.tbl
    @@ -440,3 +440,4 @@
    # 435 reserved for clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl
    index f13615ecdecc..33e2a9d55bdd 100644
    --- a/arch/sparc/kernel/syscalls/syscall.tbl
    +++ b/arch/sparc/kernel/syscalls/syscall.tbl
    @@ -483,3 +483,4 @@
    # 435 reserved for clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
    index 54581ac671b4..b350580405b3 100644
    --- a/arch/x86/entry/syscalls/syscall_32.tbl
    +++ b/arch/x86/entry/syscalls/syscall_32.tbl
    @@ -442,3 +442,4 @@
    435 i386 clone3 sys_clone3
    437 i386 openat2 sys_openat2
    438 i386 pidfd_getfd sys_pidfd_getfd
    +439 i386 landlock sys_landlock
    diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
    index 37b844f839bc..b6efdd813978 100644
    --- a/arch/x86/entry/syscalls/syscall_64.tbl
    +++ b/arch/x86/entry/syscalls/syscall_64.tbl
    @@ -359,6 +359,7 @@
    435 common clone3 sys_clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock

    #
    # x32-specific system call numbers start at 512 to avoid cache impact
    diff --git a/arch/xtensa/kernel/syscalls/syscall.tbl b/arch/xtensa/kernel/syscalls/syscall.tbl
    index 85a9ab1bc04d..84fc6db485ef 100644
    --- a/arch/xtensa/kernel/syscalls/syscall.tbl
    +++ b/arch/xtensa/kernel/syscalls/syscall.tbl
    @@ -408,3 +408,4 @@
    435 common clone3 sys_clone3
    437 common openat2 sys_openat2
    438 common pidfd_getfd sys_pidfd_getfd
    +439 common landlock sys_landlock
    diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
    index 3a3201e4618e..31d5814ddb13 100644
    --- a/include/uapi/asm-generic/unistd.h
    +++ b/include/uapi/asm-generic/unistd.h
    @@ -855,9 +855,11 @@ __SYSCALL(__NR_clone3, sys_clone3)
    __SYSCALL(__NR_openat2, sys_openat2)
    #define __NR_pidfd_getfd 438
    __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
    +#define __NR_landlock 439
    +__SYSCALL(__NR_landlock, sys_landlock)

    #undef __NR_syscalls
    -#define __NR_syscalls 439
    +#define __NR_syscalls 440

    /*
    * 32 bit systems traditionally used different
    --
    2.26.1
    \
     
     \ /
      Last update: 2020-04-16 13:34    [W:2.425 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site