Commit ea4654e0 authored by Breno Leitao's avatar Breno Leitao Committed by Ingo Molnar

x86/bugs: Rename CONFIG_PAGE_TABLE_ISOLATION => CONFIG_MITIGATION_PAGE_TABLE_ISOLATION

Step 4/10 of the namespace unification of CPU mitigations related Kconfig options.

[ mingo: Converted new uses that got added since the series was posted. ]
Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20231121160740.1249350-5-leitao@debian.org
parent 5fa31af3
...@@ -26,9 +26,9 @@ comments in pti.c). ...@@ -26,9 +26,9 @@ comments in pti.c).
This approach helps to ensure that side-channel attacks leveraging This approach helps to ensure that side-channel attacks leveraging
the paging structures do not function when PTI is enabled. It can be the paging structures do not function when PTI is enabled. It can be
enabled by setting CONFIG_PAGE_TABLE_ISOLATION=y at compile time. enabled by setting CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y at compile
Once enabled at compile-time, it can be disabled at boot with the time. Once enabled at compile-time, it can be disabled at boot with
'nopti' or 'pti=' kernel parameters (see kernel-parameters.txt). the 'nopti' or 'pti=' kernel parameters (see kernel-parameters.txt).
Page Table Management Page Table Management
===================== =====================
......
...@@ -2484,7 +2484,7 @@ menuconfig SPECULATION_MITIGATIONS ...@@ -2484,7 +2484,7 @@ menuconfig SPECULATION_MITIGATIONS
if SPECULATION_MITIGATIONS if SPECULATION_MITIGATIONS
config PAGE_TABLE_ISOLATION config MITIGATION_PAGE_TABLE_ISOLATION
bool "Remove the kernel mapping in user mode" bool "Remove the kernel mapping in user mode"
default y default y
depends on (X86_64 || X86_PAE) depends on (X86_64 || X86_PAE)
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
* Copyright (C) 2016 Kees Cook * Copyright (C) 2016 Kees Cook
*/ */
/* No PAGE_TABLE_ISOLATION support needed either: */ /* No MITIGATION_PAGE_TABLE_ISOLATION support needed either: */
#undef CONFIG_PAGE_TABLE_ISOLATION #undef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
#include "error.h" #include "error.h"
#include "misc.h" #include "misc.h"
......
...@@ -142,10 +142,10 @@ For 32-bit we have the following conventions - kernel is built with ...@@ -142,10 +142,10 @@ For 32-bit we have the following conventions - kernel is built with
.endif .endif
.endm .endm
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* PAGE_TABLE_ISOLATION PGDs are 8k. Flip bit 12 to switch between the two * MITIGATION_PAGE_TABLE_ISOLATION PGDs are 8k. Flip bit 12 to switch between the two
* halves: * halves:
*/ */
#define PTI_USER_PGTABLE_BIT PAGE_SHIFT #define PTI_USER_PGTABLE_BIT PAGE_SHIFT
...@@ -160,7 +160,7 @@ For 32-bit we have the following conventions - kernel is built with ...@@ -160,7 +160,7 @@ For 32-bit we have the following conventions - kernel is built with
.macro ADJUST_KERNEL_CR3 reg:req .macro ADJUST_KERNEL_CR3 reg:req
ALTERNATIVE "", "SET_NOFLUSH_BIT \reg", X86_FEATURE_PCID ALTERNATIVE "", "SET_NOFLUSH_BIT \reg", X86_FEATURE_PCID
/* Clear PCID and "PAGE_TABLE_ISOLATION bit", point CR3 at kernel pagetables: */ /* Clear PCID and "MITIGATION_PAGE_TABLE_ISOLATION bit", point CR3 at kernel pagetables: */
andq $(~PTI_USER_PGTABLE_AND_PCID_MASK), \reg andq $(~PTI_USER_PGTABLE_AND_PCID_MASK), \reg
.endm .endm
...@@ -275,7 +275,7 @@ For 32-bit we have the following conventions - kernel is built with ...@@ -275,7 +275,7 @@ For 32-bit we have the following conventions - kernel is built with
.Lend_\@: .Lend_\@:
.endm .endm
#else /* CONFIG_PAGE_TABLE_ISOLATION=n: */ #else /* CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=n: */
.macro SWITCH_TO_KERNEL_CR3 scratch_reg:req .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
.endm .endm
......
...@@ -562,7 +562,7 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL) ...@@ -562,7 +562,7 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
#ifdef CONFIG_XEN_PV #ifdef CONFIG_XEN_PV
ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", X86_FEATURE_XENPV ALTERNATIVE "", "jmp xenpv_restore_regs_and_return_to_usermode", X86_FEATURE_XENPV
#endif #endif
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
ALTERNATIVE "", "jmp .Lpti_restore_regs_and_return_to_usermode", X86_FEATURE_PTI ALTERNATIVE "", "jmp .Lpti_restore_regs_and_return_to_usermode", X86_FEATURE_PTI
#endif #endif
...@@ -578,7 +578,7 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL) ...@@ -578,7 +578,7 @@ SYM_INNER_LABEL(swapgs_restore_regs_and_return_to_usermode, SYM_L_GLOBAL)
jnz .Lnative_iret jnz .Lnative_iret
ud2 ud2
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
.Lpti_restore_regs_and_return_to_usermode: .Lpti_restore_regs_and_return_to_usermode:
POP_REGS pop_rdi=0 POP_REGS pop_rdi=0
...@@ -1096,7 +1096,7 @@ SYM_CODE_END(error_return) ...@@ -1096,7 +1096,7 @@ SYM_CODE_END(error_return)
* *
* Registers: * Registers:
* %r14: Used to save/restore the CR3 of the interrupted context * %r14: Used to save/restore the CR3 of the interrupted context
* when PAGE_TABLE_ISOLATION is in use. Do not clobber. * when MITIGATION_PAGE_TABLE_ISOLATION is in use. Do not clobber.
*/ */
SYM_CODE_START(asm_exc_nmi) SYM_CODE_START(asm_exc_nmi)
UNWIND_HINT_IRET_ENTRY UNWIND_HINT_IRET_ENTRY
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
# define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31)) # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31))
#endif #endif
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
# define DISABLE_PTI 0 # define DISABLE_PTI 0
#else #else
# define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31)) # define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31))
......
...@@ -34,7 +34,7 @@ static inline void paravirt_release_p4d(unsigned long pfn) {} ...@@ -34,7 +34,7 @@ static inline void paravirt_release_p4d(unsigned long pfn) {}
*/ */
extern gfp_t __userpte_alloc_gfp; extern gfp_t __userpte_alloc_gfp;
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* Instead of one PGD, we acquire two PGDs. Being order-1, it is * 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 * both 8k in size and 8k-aligned. That lets us just flip bit 12
......
...@@ -52,7 +52,7 @@ static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) ...@@ -52,7 +52,7 @@ static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
static inline void native_set_pud(pud_t *pudp, pud_t pud) static inline void native_set_pud(pud_t *pudp, pud_t pud)
{ {
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
pud.p4d.pgd = pti_set_user_pgtbl(&pudp->p4d.pgd, pud.p4d.pgd); pud.p4d.pgd = pti_set_user_pgtbl(&pudp->p4d.pgd, pud.p4d.pgd);
#endif #endif
pxx_xchg64(pud, pudp, native_pud_val(pud)); pxx_xchg64(pud, pudp, native_pud_val(pud));
......
...@@ -909,7 +909,7 @@ static inline int is_new_memtype_allowed(u64 paddr, unsigned long size, ...@@ -909,7 +909,7 @@ static inline int is_new_memtype_allowed(u64 paddr, unsigned long size,
pmd_t *populate_extra_pmd(unsigned long vaddr); pmd_t *populate_extra_pmd(unsigned long vaddr);
pte_t *populate_extra_pte(unsigned long vaddr); pte_t *populate_extra_pte(unsigned long vaddr);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
pgd_t __pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd); pgd_t __pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd);
/* /*
...@@ -923,12 +923,12 @@ static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd) ...@@ -923,12 +923,12 @@ static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd)
return pgd; return pgd;
return __pti_set_user_pgtbl(pgdp, pgd); return __pti_set_user_pgtbl(pgdp, pgd);
} }
#else /* CONFIG_PAGE_TABLE_ISOLATION */ #else /* CONFIG_MITIGATION_PAGE_TABLE_ISOLATION */
static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd) static inline pgd_t pti_set_user_pgtbl(pgd_t *pgdp, pgd_t pgd)
{ {
return pgd; return pgd;
} }
#endif /* CONFIG_PAGE_TABLE_ISOLATION */ #endif /* CONFIG_MITIGATION_PAGE_TABLE_ISOLATION */
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
...@@ -1131,7 +1131,7 @@ static inline int p4d_bad(p4d_t p4d) ...@@ -1131,7 +1131,7 @@ static inline int p4d_bad(p4d_t p4d)
{ {
unsigned long ignore_flags = _KERNPG_TABLE | _PAGE_USER; unsigned long ignore_flags = _KERNPG_TABLE | _PAGE_USER;
if (IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION)) if (IS_ENABLED(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION))
ignore_flags |= _PAGE_NX; ignore_flags |= _PAGE_NX;
return (p4d_flags(p4d) & ~ignore_flags) != 0; return (p4d_flags(p4d) & ~ignore_flags) != 0;
...@@ -1177,7 +1177,7 @@ static inline int pgd_bad(pgd_t pgd) ...@@ -1177,7 +1177,7 @@ static inline int pgd_bad(pgd_t pgd)
if (!pgtable_l5_enabled()) if (!pgtable_l5_enabled())
return 0; return 0;
if (IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION)) if (IS_ENABLED(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION))
ignore_flags |= _PAGE_NX; ignore_flags |= _PAGE_NX;
return (pgd_flags(pgd) & ~ignore_flags) != _KERNPG_TABLE; return (pgd_flags(pgd) & ~ignore_flags) != _KERNPG_TABLE;
...@@ -1422,9 +1422,9 @@ static inline bool pgdp_maps_userspace(void *__ptr) ...@@ -1422,9 +1422,9 @@ static inline bool pgdp_maps_userspace(void *__ptr)
#define pgd_leaf pgd_large #define pgd_leaf pgd_large
static inline int pgd_large(pgd_t pgd) { return 0; } static inline int pgd_large(pgd_t pgd) { return 0; }
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* All top-level PAGE_TABLE_ISOLATION page tables are order-1 pages * All top-level MITIGATION_PAGE_TABLE_ISOLATION page tables are order-1 pages
* (8k-aligned and 8k in size). The kernel one is at the beginning 4k and * (8k-aligned and 8k in size). The kernel one is at the beginning 4k and
* the user one is in the last 4k. To switch between them, you * the user one is in the last 4k. To switch between them, you
* just need to flip the 12th bit in their addresses. * just need to flip the 12th bit in their addresses.
...@@ -1469,7 +1469,7 @@ static inline p4d_t *user_to_kernel_p4dp(p4d_t *p4dp) ...@@ -1469,7 +1469,7 @@ static inline p4d_t *user_to_kernel_p4dp(p4d_t *p4dp)
{ {
return ptr_clear_bit(p4dp, PTI_PGTABLE_SWITCH_BIT); return ptr_clear_bit(p4dp, PTI_PGTABLE_SWITCH_BIT);
} }
#endif /* CONFIG_PAGE_TABLE_ISOLATION */ #endif /* CONFIG_MITIGATION_PAGE_TABLE_ISOLATION */
/* /*
* clone_pgd_range(pgd_t *dst, pgd_t *src, int count); * clone_pgd_range(pgd_t *dst, pgd_t *src, int count);
...@@ -1484,7 +1484,7 @@ static inline p4d_t *user_to_kernel_p4dp(p4d_t *p4dp) ...@@ -1484,7 +1484,7 @@ static inline p4d_t *user_to_kernel_p4dp(p4d_t *p4dp)
static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count) static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
{ {
memcpy(dst, src, count * sizeof(pgd_t)); memcpy(dst, src, count * sizeof(pgd_t));
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
if (!static_cpu_has(X86_FEATURE_PTI)) if (!static_cpu_has(X86_FEATURE_PTI))
return; return;
/* Clone the user space pgd as well */ /* Clone the user space pgd as well */
......
...@@ -143,7 +143,8 @@ static inline void native_set_p4d(p4d_t *p4dp, p4d_t p4d) ...@@ -143,7 +143,8 @@ static inline void native_set_p4d(p4d_t *p4dp, p4d_t p4d)
{ {
pgd_t pgd; pgd_t pgd;
if (pgtable_l5_enabled() || !IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION)) { if (pgtable_l5_enabled() ||
!IS_ENABLED(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION)) {
WRITE_ONCE(*p4dp, p4d); WRITE_ONCE(*p4dp, p4d);
return; return;
} }
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
#define CR3_NOFLUSH 0 #define CR3_NOFLUSH 0
#endif #endif
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
# define X86_CR3_PTI_PCID_USER_BIT 11 # define X86_CR3_PTI_PCID_USER_BIT 11
#endif #endif
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define _ASM_X86_PTI_H #define _ASM_X86_PTI_H
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
extern void pti_init(void); extern void pti_init(void);
extern void pti_check_boottime_disable(void); extern void pti_check_boottime_disable(void);
extern void pti_finalize(void); extern void pti_finalize(void);
......
...@@ -410,7 +410,7 @@ static void __die_header(const char *str, struct pt_regs *regs, long err) ...@@ -410,7 +410,7 @@ static void __die_header(const char *str, struct pt_regs *regs, long err)
IS_ENABLED(CONFIG_SMP) ? " SMP" : "", IS_ENABLED(CONFIG_SMP) ? " SMP" : "",
debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "", debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "",
IS_ENABLED(CONFIG_KASAN) ? " KASAN" : "", IS_ENABLED(CONFIG_KASAN) ? " KASAN" : "",
IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION) ? IS_ENABLED(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION) ?
(boot_cpu_has(X86_FEATURE_PTI) ? " PTI" : " NOPTI") : ""); (boot_cpu_has(X86_FEATURE_PTI) ? " PTI" : " NOPTI") : "");
} }
NOKPROBE_SYMBOL(__die_header); NOKPROBE_SYMBOL(__die_header);
......
...@@ -414,7 +414,7 @@ __REFDATA ...@@ -414,7 +414,7 @@ __REFDATA
.align 4 .align 4
SYM_DATA(initial_code, .long i386_start_kernel) SYM_DATA(initial_code, .long i386_start_kernel)
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
#define PGD_ALIGN (2 * PAGE_SIZE) #define PGD_ALIGN (2 * PAGE_SIZE)
#define PTI_USER_PGD_FILL 1024 #define PTI_USER_PGD_FILL 1024
#else #else
...@@ -474,7 +474,7 @@ SYM_DATA_START(initial_page_table) ...@@ -474,7 +474,7 @@ SYM_DATA_START(initial_page_table)
# endif # endif
.align PAGE_SIZE /* needs to be page-sized too */ .align PAGE_SIZE /* needs to be page-sized too */
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* PTI needs another page so sync_initial_pagetable() works correctly * PTI needs another page so sync_initial_pagetable() works correctly
* and does not scribble over the data which is placed behind the * and does not scribble over the data which is placed behind the
......
...@@ -622,7 +622,7 @@ SYM_CODE_END(vc_no_ghcb) ...@@ -622,7 +622,7 @@ SYM_CODE_END(vc_no_ghcb)
#define SYM_DATA_START_PAGE_ALIGNED(name) \ #define SYM_DATA_START_PAGE_ALIGNED(name) \
SYM_START(name, SYM_L_GLOBAL, .balign PAGE_SIZE) SYM_START(name, SYM_L_GLOBAL, .balign PAGE_SIZE)
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* Each PGD needs to be 8k long and 8k aligned. We do not * Each PGD needs to be 8k long and 8k aligned. We do not
* ever go out to userspace with these, so we do not * ever go out to userspace with these, so we do not
......
...@@ -184,7 +184,7 @@ static struct ldt_struct *alloc_ldt_struct(unsigned int num_entries) ...@@ -184,7 +184,7 @@ static struct ldt_struct *alloc_ldt_struct(unsigned int num_entries)
return new_ldt; return new_ldt;
} }
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
static void do_sanity_check(struct mm_struct *mm, static void do_sanity_check(struct mm_struct *mm,
bool had_kernel_mapping, bool had_kernel_mapping,
...@@ -377,7 +377,7 @@ static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt) ...@@ -377,7 +377,7 @@ static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt)
flush_tlb_mm_range(mm, va, va + nr_pages * PAGE_SIZE, PAGE_SHIFT, false); flush_tlb_mm_range(mm, va, va + nr_pages * PAGE_SIZE, PAGE_SHIFT, false);
} }
#else /* !CONFIG_PAGE_TABLE_ISOLATION */ #else /* !CONFIG_MITIGATION_PAGE_TABLE_ISOLATION */
static int static int
map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot) map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot)
...@@ -388,11 +388,11 @@ map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot) ...@@ -388,11 +388,11 @@ map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot)
static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt) static void unmap_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt)
{ {
} }
#endif /* CONFIG_PAGE_TABLE_ISOLATION */ #endif /* CONFIG_MITIGATION_PAGE_TABLE_ISOLATION */
static void free_ldt_pgtables(struct mm_struct *mm) static void free_ldt_pgtables(struct mm_struct *mm)
{ {
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
struct mmu_gather tlb; struct mmu_gather tlb;
unsigned long start = LDT_BASE_ADDR; unsigned long start = LDT_BASE_ADDR;
unsigned long end = LDT_END_ADDR; unsigned long end = LDT_END_ADDR;
......
...@@ -60,7 +60,7 @@ obj-$(CONFIG_NUMA_EMU) += numa_emulation.o ...@@ -60,7 +60,7 @@ obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o
obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o
obj-$(CONFIG_PAGE_TABLE_ISOLATION) += pti.o obj-$(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION) += pti.o
obj-$(CONFIG_X86_MEM_ENCRYPT) += mem_encrypt.o obj-$(CONFIG_X86_MEM_ENCRYPT) += mem_encrypt.o
obj-$(CONFIG_AMD_MEM_ENCRYPT) += mem_encrypt_amd.o obj-$(CONFIG_AMD_MEM_ENCRYPT) += mem_encrypt_amd.o
......
...@@ -22,7 +22,7 @@ static int ptdump_curknl_show(struct seq_file *m, void *v) ...@@ -22,7 +22,7 @@ static int ptdump_curknl_show(struct seq_file *m, void *v)
DEFINE_SHOW_ATTRIBUTE(ptdump_curknl); DEFINE_SHOW_ATTRIBUTE(ptdump_curknl);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
static int ptdump_curusr_show(struct seq_file *m, void *v) static int ptdump_curusr_show(struct seq_file *m, void *v)
{ {
if (current->mm->pgd) if (current->mm->pgd)
...@@ -54,7 +54,7 @@ static int __init pt_dump_debug_init(void) ...@@ -54,7 +54,7 @@ static int __init pt_dump_debug_init(void)
debugfs_create_file("current_kernel", 0400, dir, NULL, debugfs_create_file("current_kernel", 0400, dir, NULL,
&ptdump_curknl_fops); &ptdump_curknl_fops);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
debugfs_create_file("current_user", 0400, dir, NULL, debugfs_create_file("current_user", 0400, dir, NULL,
&ptdump_curusr_fops); &ptdump_curusr_fops);
#endif #endif
......
...@@ -408,7 +408,7 @@ void ptdump_walk_pgd_level_debugfs(struct seq_file *m, struct mm_struct *mm, ...@@ -408,7 +408,7 @@ void ptdump_walk_pgd_level_debugfs(struct seq_file *m, struct mm_struct *mm,
bool user) bool user)
{ {
pgd_t *pgd = mm->pgd; pgd_t *pgd = mm->pgd;
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
if (user && boot_cpu_has(X86_FEATURE_PTI)) if (user && boot_cpu_has(X86_FEATURE_PTI))
pgd = kernel_to_user_pgdp(pgd); pgd = kernel_to_user_pgdp(pgd);
#endif #endif
...@@ -418,7 +418,7 @@ EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs); ...@@ -418,7 +418,7 @@ EXPORT_SYMBOL_GPL(ptdump_walk_pgd_level_debugfs);
void ptdump_walk_user_pgd_level_checkwx(void) void ptdump_walk_user_pgd_level_checkwx(void)
{ {
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
pgd_t *pgd = INIT_PGD; pgd_t *pgd = INIT_PGD;
if (!(__supported_pte_mask & _PAGE_NX) || if (!(__supported_pte_mask & _PAGE_NX) ||
......
...@@ -293,7 +293,7 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp) ...@@ -293,7 +293,7 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
for (i = 0; i < PREALLOCATED_PMDS; i++) for (i = 0; i < PREALLOCATED_PMDS; i++)
mop_up_one_pmd(mm, &pgdp[i]); mop_up_one_pmd(mm, &pgdp[i]);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
if (!boot_cpu_has(X86_FEATURE_PTI)) if (!boot_cpu_has(X86_FEATURE_PTI))
return; return;
...@@ -325,7 +325,7 @@ static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[]) ...@@ -325,7 +325,7 @@ static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
} }
} }
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
static void pgd_prepopulate_user_pmd(struct mm_struct *mm, static void pgd_prepopulate_user_pmd(struct mm_struct *mm,
pgd_t *k_pgd, pmd_t *pmds[]) pgd_t *k_pgd, pmd_t *pmds[])
{ {
......
...@@ -89,10 +89,10 @@ ...@@ -89,10 +89,10 @@
#define CR3_HW_ASID_BITS 12 #define CR3_HW_ASID_BITS 12
/* /*
* When enabled, PAGE_TABLE_ISOLATION consumes a single bit for * When enabled, MITIGATION_PAGE_TABLE_ISOLATION consumes a single bit for
* user/kernel switches * user/kernel switches
*/ */
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
# define PTI_CONSUMED_PCID_BITS 1 # define PTI_CONSUMED_PCID_BITS 1
#else #else
# define PTI_CONSUMED_PCID_BITS 0 # define PTI_CONSUMED_PCID_BITS 0
...@@ -114,7 +114,7 @@ static inline u16 kern_pcid(u16 asid) ...@@ -114,7 +114,7 @@ static inline u16 kern_pcid(u16 asid)
{ {
VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE); VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
/* /*
* Make sure that the dynamic ASID space does not conflict with the * Make sure that the dynamic ASID space does not conflict with the
* bit we are using to switch between user and kernel ASIDs. * bit we are using to switch between user and kernel ASIDs.
...@@ -149,7 +149,7 @@ static inline u16 kern_pcid(u16 asid) ...@@ -149,7 +149,7 @@ static inline u16 kern_pcid(u16 asid)
static inline u16 user_pcid(u16 asid) static inline u16 user_pcid(u16 asid)
{ {
u16 ret = kern_pcid(asid); u16 ret = kern_pcid(asid);
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
ret |= 1 << X86_CR3_PTI_PCID_USER_BIT; ret |= 1 << X86_CR3_PTI_PCID_USER_BIT;
#endif #endif
return ret; return ret;
...@@ -262,7 +262,7 @@ static void choose_new_asid(struct mm_struct *next, u64 next_tlb_gen, ...@@ -262,7 +262,7 @@ static void choose_new_asid(struct mm_struct *next, u64 next_tlb_gen,
static inline void invalidate_user_asid(u16 asid) static inline void invalidate_user_asid(u16 asid)
{ {
/* There is no user ASID if address space separation is off */ /* There is no user ASID if address space separation is off */
if (!IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION)) if (!IS_ENABLED(CONFIG_MITIGATION_PAGE_TABLE_ISOLATION))
return; return;
/* /*
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#ifndef _INCLUDE_PTI_H #ifndef _INCLUDE_PTI_H
#define _INCLUDE_PTI_H #define _INCLUDE_PTI_H
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
#include <asm/pti.h> #include <asm/pti.h>
#else #else
static inline void pti_init(void) { } static inline void pti_init(void) { }
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
# define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31)) # define DISABLE_LA57 (1<<(X86_FEATURE_LA57 & 31))
#endif #endif
#ifdef CONFIG_PAGE_TABLE_ISOLATION #ifdef CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
# define DISABLE_PTI 0 # define DISABLE_PTI 0
#else #else
# define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31)) # define DISABLE_PTI (1 << (X86_FEATURE_PTI & 31))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment