[PATCH 30/70] x86/head/64: Reload GDT after switch to virtual addresses
From: Joerg Roedel
Date: Thu Mar 19 2020 - 05:18:30 EST
From: Joerg Roedel <jroedel@xxxxxxx>
Reload the GDT after switching to virtual addresses to make sure it will
not go away when the lower mappings are removed.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
---
arch/x86/kernel/head_64.S | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 5219a70b3fb4..ebb7d512c9d3 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -163,6 +163,11 @@ SYM_CODE_START(secondary_startup_64)
1:
UNWIND_HINT_EMPTY
+ /* Setup boot GDT descriptor and load boot GDT */
+ leaq boot_gdt(%rip), %rax
+ movq %rax, boot_gdt_base(%rip)
+ lgdt boot_gdt_descr(%rip)
+
/* Check if nx is implemented */
movl $0x80000001, %eax
cpuid
--
2.17.1