The following commit has been merged into the x86/shstk branch of tip: Commit-ID: 00547ef73ff282eea59cd33b8952f1dcbb4bd4b8 Gitweb: https://git.kernel.org/tip/00547ef73ff282eea59cd33b8952f1dcbb4bd4b8 Author: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx> AuthorDate: Mon, 12 Jun 2023 17:10:45 -07:00 Committer: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx> CommitterDate: Tue, 11 Jul 2023 14:12:19 -07:00 mm/mmap: Add shadow stack pages to memory accounting The x86 Control-flow Enforcement Technology (CET) feature includes a new type of memory called shadow stack. This shadow stack memory has some unusual properties, which requires some core mm changes to function properly. Co-developed-by: Yu-cheng Yu <yu-cheng.yu@xxxxxxxxx> Signed-off-by: Yu-cheng Yu <yu-cheng.yu@xxxxxxxxx> Signed-off-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx> Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Reviewed-by: Borislav Petkov (AMD) <bp@xxxxxxxxx> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> Acked-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx> Acked-by: David Hildenbrand <david@xxxxxxxxxx> Tested-by: Pengfei Xu <pengfei.xu@xxxxxxxxx> Tested-by: John Allen <john.allen@xxxxxxx> Tested-by: Kees Cook <keescook@xxxxxxxxxxxx> Link: https://lore.kernel.org/all/20230613001108.3040476-20-rick.p.edgecombe%40intel.com --- mm/internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index a7d9e98..018f5c3 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -538,14 +538,14 @@ static inline bool is_exec_mapping(vm_flags_t flags) } /* - * Stack area - automatically grows in one direction + * Stack area (including shadow stacks) * * VM_GROWSUP / VM_GROWSDOWN VMAs are always private anonymous: * do_mmap() forbids all other combinations. */ static inline bool is_stack_mapping(vm_flags_t flags) { - return (flags & VM_STACK) == VM_STACK; + return ((flags & VM_STACK) == VM_STACK) || (flags & VM_SHADOW_STACK); } /*