x86/mm: Flush global TLB when switching to trampoline page-table
authorJoerg Roedel <jroedel@suse.de>
Thu, 2 Dec 2021 15:32:25 +0000 (16:32 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 6 Dec 2021 08:54:10 +0000 (09:54 +0100)
commit71d5049b053876afbde6c3273250b76935494ab2
tree262b29644cef0c1009776942ea327eff8dbb64e9
parentf154f290855b070cc94dd44ad253c0ef8a9337bb
x86/mm: Flush global TLB when switching to trampoline page-table

Move the switching code into a function so that it can be re-used and
add a global TLB flush. This makes sure that usage of memory which is
not mapped in the trampoline page-table is reliably caught.

Also move the clearing of CR4.PCIDE before the CR3 switch because the
cr4_clear_bits() function will access data not mapped into the
trampoline page-table.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20211202153226.22946-4-joro@8bytes.org
arch/x86/include/asm/realmode.h
arch/x86/kernel/reboot.c
arch/x86/realmode/init.c