diff options
author | Joerg Roedel <jroedel@suse.de> | 2021-12-02 18:32:24 +0300 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2021-12-06 11:38:48 +0300 |
commit | f154f290855b070cc94dd44ad253c0ef8a9337bb (patch) | |
tree | 804830bc075803ec0553bb866cf2612f1f504447 /arch/x86/include/asm/tlbflush.h | |
parent | 9de4999050b5f2e847c84372c6a1aa1fe32bb269 (diff) | |
download | linux-f154f290855b070cc94dd44ad253c0ef8a9337bb.tar.xz |
x86/mm/64: Flush global TLB on boot and AP bringup
The AP bringup code uses the trampoline_pgd page-table which
establishes global mappings in the user range of the address space.
Flush the global TLB entries after the indentity mappings are removed so
no stale entries remain in the TLB.
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211202153226.22946-3-joro@8bytes.org
Diffstat (limited to 'arch/x86/include/asm/tlbflush.h')
-rw-r--r-- | arch/x86/include/asm/tlbflush.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index b587a9ee9cb2..98fa0a114074 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h @@ -261,4 +261,9 @@ extern void arch_tlbbatch_flush(struct arch_tlbflush_unmap_batch *batch); #endif /* !MODULE */ +static inline void __native_tlb_flush_global(unsigned long cr4) +{ + native_write_cr4(cr4 ^ X86_CR4_PGE); + native_write_cr4(cr4); +} #endif /* _ASM_X86_TLBFLUSH_H */ |