Re: [PATCH v19 7/8] arch, mm: wire up memfd_secret system call where relevant
David Hildenbrand <[email protected]> Fri, 14 May 2021 11:27:48 +0200
| Newsgroups | org.01.lists.linux-nvdimm,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-api,org.kernel.vger.linux-arch,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kvack.linux-mm |
|---|---|
| Organization | Red Hat |
| Message-ID | <[email protected]> |
On 13.05.21 20:47, Mike Rapoport wrote: > From: Mike Rapoport <[email protected]> > > Wire up memfd_secret system call on architectures that define > ARCH_HAS_SET_DIRECT_MAP, namely arm64, risc-v and x86. > > Signed-off-by: Mike Rapoport <[email protected]> > Acked-by: Palmer Dabbelt <[email protected]> > Acked-by: Arnd Bergmann <[email protected]> > Acked-by: Catalin Marinas <[email protected]> > Cc: Alexander Viro <[email protected]> > Cc: Andy Lutomirski <[email protected]> > Cc: Borislav Petkov <[email protected]> > Cc: Christopher Lameter <[email protected]> > Cc: Dan Williams <[email protected]> > Cc: Dave Hansen <[email protected]> > Cc: David Hildenbrand <[email protected]> > Cc: Elena Reshetova <[email protected]> > Cc: Hagen Paul Pfeifer <[email protected]> > Cc: "H. Peter Anvin" <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: James Bottomley <[email protected]> > Cc: "Kirill A. Shutemov" <[email protected]> > Cc: Mark Rutland <[email protected]> > Cc: Matthew Wilcox <[email protected]> > Cc: Michael Kerrisk <[email protected]> > Cc: Palmer Dabbelt <[email protected]> > Cc: Paul Walmsley <[email protected]> > Cc: Peter Zijlstra <[email protected]> > Cc: Rick Edgecombe <[email protected]> > Cc: Roman Gushchin <[email protected]> > Cc: Shakeel Butt <[email protected]> > Cc: Shuah Khan <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: Tycho Andersen <[email protected]> > Cc: Will Deacon <[email protected]> > --- > arch/arm64/include/uapi/asm/unistd.h | 1 + > arch/riscv/include/asm/unistd.h | 1 + > arch/x86/entry/syscalls/syscall_32.tbl | 1 + > arch/x86/entry/syscalls/syscall_64.tbl | 1 + > include/linux/syscalls.h | 1 + > include/uapi/asm-generic/unistd.h | 7 ++++++- > scripts/checksyscalls.sh | 4 ++++ > 7 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/include/uapi/asm/unistd.h b/arch/arm64/include/uapi/asm/unistd.h > index f83a70e07df8..ce2ee8f1e361 100644 > --- a/arch/arm64/include/uapi/asm/unistd.h > +++ b/arch/arm64/include/uapi/asm/unistd.h > @@ -20,5 +20,6 @@ > #define __ARCH_WANT_SET_GET_RLIMIT > #define __ARCH_WANT_TIME32_SYSCALLS > #define __ARCH_WANT_SYS_CLONE3 > +#define __ARCH_WANT_MEMFD_SECRET > > #include <asm-generic/unistd.h> > diff --git a/arch/riscv/include/asm/unistd.h b/arch/riscv/include/asm/unistd.h > index 977ee6181dab..6c316093a1e5 100644 > --- a/arch/riscv/include/asm/unistd.h > +++ b/arch/riscv/include/asm/unistd.h > @@ -9,6 +9,7 @@ > */ > > #define __ARCH_WANT_SYS_CLONE > +#define __ARCH_WANT_MEMFD_SECRET > > #include <uapi/asm/unistd.h> > > diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl > index 28a1423ce32e..e44519020a43 100644 > --- a/arch/x86/entry/syscalls/syscall_32.tbl > +++ b/arch/x86/entry/syscalls/syscall_32.tbl > @@ -451,3 +451,4 @@ > 444 i386 landlock_create_ruleset sys_landlock_create_ruleset > 445 i386 landlock_add_rule sys_landlock_add_rule > 446 i386 landlock_restrict_self sys_landlock_restrict_self > +447 i386 memfd_secret sys_memfd_secret > diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl > index ecd551b08d05..a06f16106f24 100644 > --- a/arch/x86/entry/syscalls/syscall_64.tbl > +++ b/arch/x86/entry/syscalls/syscall_64.tbl > @@ -368,6 +368,7 @@ > 444 common landlock_create_ruleset sys_landlock_create_ruleset > 445 common landlock_add_rule sys_landlock_add_rule > 446 common landlock_restrict_self sys_landlock_restrict_self > +447 common memfd_secret sys_memfd_secret > > # > # Due to a historical design error, certain syscalls are numbered differently > diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h > index 050511e8f1f8..1a1b5d724497 100644 > --- a/include/linux/syscalls.h > +++ b/include/linux/syscalls.h > @@ -1050,6 +1050,7 @@ asmlinkage long sys_landlock_create_ruleset(const struct landlock_ruleset_attr _ > asmlinkage long sys_landlock_add_rule(int ruleset_fd, enum landlock_rule_type rule_type, > const void __user *rule_attr, __u32 flags); > asmlinkage long sys_landlock_restrict_self(int ruleset_fd, __u32 flags); > +asmlinkage long sys_memfd_secret(unsigned int flags); > > /* > * Architecture-specific system calls > diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h > index 6de5a7fc066b..28b388368cf6 100644 > --- a/include/uapi/asm-generic/unistd.h > +++ b/include/uapi/asm-generic/unistd.h > @@ -873,8 +873,13 @@ __SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule) > #define __NR_landlock_restrict_self 446 > __SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self) > > +#ifdef __ARCH_WANT_MEMFD_SECRET > +#define __NR_memfd_secret 447 > +__SYSCALL(__NR_memfd_secret, sys_memfd_secret) > +#endif > + > #undef __NR_syscalls > -#define __NR_syscalls 447 > +#define __NR_syscalls 448 > > /* > * 32 bit systems traditionally used different > diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh > index a18b47695f55..b7609958ee36 100755 > --- a/scripts/checksyscalls.sh > +++ b/scripts/checksyscalls.sh > @@ -40,6 +40,10 @@ cat << EOF > #define __IGNORE_setrlimit /* setrlimit */ > #endif > > +#ifndef __ARCH_WANT_MEMFD_SECRET > +#define __IGNORE_memfd_secret > +#endif > + > /* Missing flags argument */ > #define __IGNORE_renameat /* renameat2 */ > > Acked-by: David Hildenbrand <[email protected]> -- Thanks, David / dhildenb _______________________________________________ Linux-nvdimm mailing list -- [email protected] To unsubscribe send an email to [email protected]