Re: [RFC PATCH v1 1/8] Add mseal syscall

From: Greg KH
Date: Mon Oct 16 2023 - 11:06:57 EST


On Mon, Oct 16, 2023 at 02:38:20PM +0000, jeffxu@xxxxxxxxxxxx wrote:
> +#ifdef CONFIG_MSEAL
> + /*
> + * bit masks for seal.
> + * need this since vm_flags is full.
> + */
> + unsigned long vm_seals; /* seal flags, see mm.h. */

"unsigned long" and yet:

> diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
> index c0cb22cd607d..f574c7dbee76 100644
> --- a/include/linux/syscalls.h
> +++ b/include/linux/syscalls.h
> @@ -802,6 +802,8 @@ asmlinkage long sys_process_mrelease(int pidfd, unsigned int flags);
> asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
> unsigned long prot, unsigned long pgoff,
> unsigned long flags);
> +asmlinkage long sys_mseal(unsigned long start, size_t len, unsigned int types,
> + unsigned int flags);

"unsigned int"?

Why the mis-match?

> --- a/include/uapi/linux/mman.h
> +++ b/include/uapi/linux/mman.h
> @@ -55,4 +55,10 @@ struct cachestat {
> __u64 nr_recently_evicted;
> };
>
> +#define MM_SEAL_MSEAL 0x1
> +#define MM_SEAL_MPROTECT 0x2
> +#define MM_SEAL_MUNMAP 0x4
> +#define MM_SEAL_MMAP 0x8
> +#define MM_SEAL_MREMAP 0x10

I think we can use the BIT() macro in uapi .h files now, it is _BITUL().
Might want to use it here too to make it obvious what is happening.

thanks,

greg k-h