| From: Jeff Xu <jeffxu@chromium.org> |
| Subject: /proc/pid/smaps: add mseal info for vma |
| Date: Fri, 14 Jun 2024 23:20:14 +0000 |
| |
| Add sl in /proc/pid/smaps to indicate vma is sealed |
| |
| Link: https://lkml.kernel.org/r/20240614232014.806352-2-jeffxu@google.com |
| Fixes: 8be7258aad44 ("mseal: add mseal syscall") |
| Signed-off-by: Jeff Xu <jeffxu@chromium.org> |
| Acked-by: David Hildenbrand <david@redhat.com> |
| Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org> |
| Cc: Jann Horn <jannh@google.com> |
| Cc: Jorge Lucangeli Obes <jorgelo@chromium.org> |
| Cc: Kees Cook <keescook@chromium.org> |
| Cc: Randy Dunlap <rdunlap@infradead.org> |
| Cc: Stephen Rรถttger <sroettger@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/filesystems/proc.rst | 1 + |
| fs/proc/task_mmu.c | 3 +++ |
| include/linux/mm.h | 5 +++++ |
| mm/internal.h | 5 ----- |
| 4 files changed, 9 insertions(+), 5 deletions(-) |
| |
| --- a/Documentation/filesystems/proc.rst~proc-pid-smaps-add-mseal-info-for-vma |
| +++ a/Documentation/filesystems/proc.rst |
| @@ -571,6 +571,7 @@ encoded manner. The codes are the follow |
| um userfaultfd missing tracking |
| uw userfaultfd wr-protect tracking |
| ss shadow stack page |
| + sl sealed |
| == ======================================= |
| |
| Note that there is no guarantee that every flag and associated mnemonic will |
| --- a/fs/proc/task_mmu.c~proc-pid-smaps-add-mseal-info-for-vma |
| +++ a/fs/proc/task_mmu.c |
| @@ -707,6 +707,9 @@ static void show_smap_vma_flags(struct s |
| #ifdef CONFIG_X86_USER_SHADOW_STACK |
| [ilog2(VM_SHADOW_STACK)] = "ss", |
| #endif |
| +#ifdef CONFIG_64BIT |
| + [ilog2(VM_SEALED)] = "sl", |
| +#endif |
| }; |
| size_t i; |
| |
| --- a/include/linux/mm.h~proc-pid-smaps-add-mseal-info-for-vma |
| +++ a/include/linux/mm.h |
| @@ -406,6 +406,11 @@ extern unsigned int kobjsize(const void |
| #define VM_ALLOW_ANY_UNCACHED VM_NONE |
| #endif |
| |
| +#ifdef CONFIG_64BIT |
| +/* VM is sealed, in vm_flags */ |
| +#define VM_SEALED _BITUL(63) |
| +#endif |
| + |
| /* Bits set in the VMA until the stack is in its final location */ |
| #define VM_STACK_INCOMPLETE_SETUP (VM_RAND_READ | VM_SEQ_READ | VM_STACK_EARLY) |
| |
| --- a/mm/internal.h~proc-pid-smaps-add-mseal-info-for-vma |
| +++ a/mm/internal.h |
| @@ -1435,11 +1435,6 @@ unsigned long shrink_slab(gfp_t gfp_mask |
| int priority); |
| |
| #ifdef CONFIG_64BIT |
| -/* VM is sealed, in vm_flags */ |
| -#define VM_SEALED _BITUL(63) |
| -#endif |
| - |
| -#ifdef CONFIG_64BIT |
| static inline int can_do_mseal(unsigned long flags) |
| { |
| if (flags) |
| _ |