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