[PATCH] memfd_secret: use unsigned int rather than long as syscall flags type
David Hildenbrand
david at redhat.com
Wed Mar 31 15:53:16 BST 2021
On 31.03.21 16:23, Mike Rapoport wrote:
> From: Mike Rapoport <rppt at linux.ibm.com>
>
> Yuri Norov says:
>
> If parameter size is the same for native and compat ABIs, we may
> wire a syscall made by compat client to native handler. This is
> true for unsigned int, but not true for unsigned long or pointer.
>
> That's why I suggest using unsigned int and so avoid creating compat
> entry point.
>
> Use unsigned int as the type of the flags parameter in memfd_secret()
> system call.
>
> Signed-off-by: Mike Rapoport <rppt at linux.ibm.com>
> ---
>
> @Andrew,
> The patch is vs v5.12-rc5-mmots-2021-03-30-23, I'd appreciate if it would
> be added as a fixup to the memfd_secret series.
>
> include/linux/syscalls.h | 2 +-
> mm/secretmem.c | 2 +-
> tools/testing/selftests/vm/memfd_secret.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
> index 49c93c906893..1a1b5d724497 100644
> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -1050,7 +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 long flags);
> +asmlinkage long sys_memfd_secret(unsigned int flags);
>
> /*
> * Architecture-specific system calls
> diff --git a/mm/secretmem.c b/mm/secretmem.c
> index f2ae3f32a193..3b1ba3991964 100644
> --- a/mm/secretmem.c
> +++ b/mm/secretmem.c
> @@ -199,7 +199,7 @@ static struct file *secretmem_file_create(unsigned long flags)
> return file;
> }
>
> -SYSCALL_DEFINE1(memfd_secret, unsigned long, flags)
> +SYSCALL_DEFINE1(memfd_secret, unsigned int, flags)
> {
> struct file *file;
> int fd, err;
> diff --git a/tools/testing/selftests/vm/memfd_secret.c b/tools/testing/selftests/vm/memfd_secret.c
> index c878c2b841fc..2462f52e9c96 100644
> --- a/tools/testing/selftests/vm/memfd_secret.c
> +++ b/tools/testing/selftests/vm/memfd_secret.c
> @@ -38,7 +38,7 @@ static unsigned long page_size;
> static unsigned long mlock_limit_cur;
> static unsigned long mlock_limit_max;
>
> -static int memfd_secret(unsigned long flags)
> +static int memfd_secret(unsigned int flags)
> {
> return syscall(__NR_memfd_secret, flags);
> }
>
LGTM
--
Thanks,
David / dhildenb
More information about the linux-riscv
mailing list