Skip to content

Commit 00547ef

Browse files
committed
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@intel.com> Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com> Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Kees Cook <keescook@chromium.org> Acked-by: Mike Rapoport (IBM) <rppt@kernel.org> Acked-by: David Hildenbrand <david@redhat.com> Tested-by: Pengfei Xu <pengfei.xu@intel.com> Tested-by: John Allen <john.allen@amd.com> Tested-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/all/20230613001108.3040476-20-rick.p.edgecombe%40intel.com
1 parent ae1f05a commit 00547ef

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

mm/internal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -538,14 +538,14 @@ static inline bool is_exec_mapping(vm_flags_t flags)
538538
}
539539

540540
/*
541-
* Stack area - automatically grows in one direction
541+
* Stack area (including shadow stacks)
542542
*
543543
* VM_GROWSUP / VM_GROWSDOWN VMAs are always private anonymous:
544544
* do_mmap() forbids all other combinations.
545545
*/
546546
static inline bool is_stack_mapping(vm_flags_t flags)
547547
{
548-
return (flags & VM_STACK) == VM_STACK;
548+
return ((flags & VM_STACK) == VM_STACK) || (flags & VM_SHADOW_STACK);
549549
}
550550

551551
/*

0 commit comments

Comments
 (0)