[RFC][PATCH 11/24] x86/mm: Add kernel shadow stack permission macros
From: Dave Hansen
Date: Wed Oct 21 2026 - 15:52:38 EST
Add PAGE_KERNEL* macros for kernel-permission shadow stacks. These allow
shadow stack mappings to be established in a visually similar way to
existing PAGE_KERNEL* users.
---
b/arch/x86/include/asm/pgtable_types.h | 2 ++
1 file changed, 2 insertions(+)
diff -puN arch/x86/include/asm/pgtable_types.h~PAGE_KERNEL_SHSTK arch/x86/include/asm/pgtable_types.h
--- a/arch/x86/include/asm/pgtable_types.h~PAGE_KERNEL_SHSTK 2026-10-21 12:36:37.794880805 -0700
+++ b/arch/x86/include/asm/pgtable_types.h 2026-10-21 12:36:37.797880811 -0700
@@ -224,6 +224,7 @@ enum page_cache_mode {
#define __PAGE_KERNEL_ROX (__PP| 0| 0|___A| 0| 0| 0|___G)
#define __PAGE_KERNEL (__PP|__RW| 0|___A|__NX|___D| 0|___G)
#define __PAGE_KERNEL_EXEC (__PP|__RW| 0|___A| 0|___D| 0|___G)
+#define __PAGE_KERNEL_SHSTK (__PP| 0| 0|___A|__NX|___D| 0|___G)
#define __PAGE_KERNEL_NOCACHE (__PP|__RW| 0|___A|__NX|___D| 0|___G| __NC)
#define __PAGE_KERNEL_VVAR (__PP| 0|_USR|___A|__NX| 0| 0|___G)
#define __PAGE_KERNEL_LARGE (__PP|__RW| 0|___A|__NX|___D|_PSE|___G)
@@ -249,6 +250,7 @@ enum page_cache_mode {
#define PAGE_KERNEL_RO __pgprot_mask(__PAGE_KERNEL_RO | _ENC)
#define PAGE_KERNEL_EXEC __pgprot_mask(__PAGE_KERNEL_EXEC | _ENC)
#define PAGE_KERNEL_EXEC_NOENC __pgprot_mask(__PAGE_KERNEL_EXEC | 0)
+#define PAGE_KERNEL_SHSTK __pgprot_mask(__PAGE_KERNEL_SHSTK | _ENC)
#define PAGE_KERNEL_ROX __pgprot_mask(__PAGE_KERNEL_ROX | _ENC)
#define PAGE_KERNEL_NOCACHE __pgprot_mask(__PAGE_KERNEL_NOCACHE | _ENC)
#define PAGE_KERNEL_LARGE __pgprot_mask(__PAGE_KERNEL_LARGE | _ENC)
_