diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2025-05-12 22:12:44 -0700 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2025-05-12 22:12:44 -0700 |
| commit | 15ff5d0e90bb044b94d9a4ac57276829861a954d (patch) | |
| tree | 28bcf60949db629b0b772f6eebf026714dc38fe9 /arch/x86/include/asm/pgalloc.h | |
| parent | a0372b3831785e15de605cd13d2ed78a79a9b435 (diff) | |
| parent | 7c3f259dfe03f5dcd898126602818a8fbe94d3c5 (diff) | |
Merge branch 'for-6.16/tsm-mr' into tsm-next
Merge measurement-register infrastructure for v6.16. Resolve conflicts
with the establishment of drivers/virt/coco/guest/ for cross-vendor
common TSM functionality.
Address a mis-merge with a fixup from Lukas:
Link: http://lore.kernel.org/20250509134031.70559-1-lukas.bulwahn@redhat.com
Diffstat (limited to 'arch/x86/include/asm/pgalloc.h')
| -rw-r--r-- | arch/x86/include/asm/pgalloc.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h index a33147520044..c88691b15f3c 100644 --- a/arch/x86/include/asm/pgalloc.h +++ b/arch/x86/include/asm/pgalloc.h @@ -6,6 +6,8 @@ #include <linux/mm.h> /* for struct page */ #include <linux/pagemap.h> +#include <asm/cpufeature.h> + #define __HAVE_ARCH_PTE_ALLOC_ONE #define __HAVE_ARCH_PGD_FREE #include <asm-generic/pgalloc.h> @@ -29,16 +31,17 @@ static inline void paravirt_release_pud(unsigned long pfn) {} static inline void paravirt_release_p4d(unsigned long pfn) {} #endif -#ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION /* - * Instead of one PGD, we acquire two PGDs. Being order-1, it is - * both 8k in size and 8k-aligned. That lets us just flip bit 12 - * in a pointer to swap between the two 4k halves. + * In case of Page Table Isolation active, we acquire two PGDs instead of one. + * Being order-1, it is both 8k in size and 8k-aligned. That lets us just + * flip bit 12 in a pointer to swap between the two 4k halves. */ -#define PGD_ALLOCATION_ORDER 1 -#else -#define PGD_ALLOCATION_ORDER 0 -#endif +static inline unsigned int pgd_allocation_order(void) +{ + if (cpu_feature_enabled(X86_FEATURE_PTI)) + return 1; + return 0; +} /* * Allocate and free page tables. |