linux/arch/x86
Tom Lendacky 9843231c97 x86/boot/64: Move 5-level paging global variable assignments back
Commit 63bed96604 ("x86/startup_64: Defer assignment of 5-level paging
global variables") moved assignment of 5-level global variables to later
in the boot in order to avoid having to use RIP relative addressing in
order to set them. However, when running with 5-level paging and SME
active (mem_encrypt=on), the variables are needed as part of the page
table setup needed to encrypt the kernel (using pgd_none(), p4d_offset(),
etc.). Since the variables haven't been set, the page table manipulation
is done as if 4-level paging is active, causing the system to crash on
boot.

While only a subset of the assignments that were moved need to be set
early, move all of the assignments back into check_la57_support() so that
these assignments aren't spread between two locations. Instead of just
reverting the fix, this uses the new RIP_REL_REF() macro when assigning
the variables.

Fixes: 63bed96604 ("x86/startup_64: Defer assignment of 5-level paging global variables")
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/2ca419f4d0de719926fd82353f6751f717590a86.1711122067.git.thomas.lendacky@amd.com
2024-03-24 05:00:36 +01:00
..
boot - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
coco x86/sev: Fix position dependent variable references in startup code 2024-02-06 16:38:42 +01:00
configs x86/config: Fix warning for 'make ARCH=x86_64 tinyconfig' 2024-03-21 10:09:41 +01:00
crypto This update includes the following changes: 2024-01-10 12:23:43 -08:00
entry Core x86 changes for v6.9: 2024-03-11 19:53:15 -07:00
events perf/x86/amd/core: Avoid register reset when CPU is dead 2024-03-13 11:01:30 +01:00
hyperv Rework of APIC enumeration and topology evaluation: 2024-03-11 15:45:55 -07:00
ia32
include x86/cpu: Add model number for another Intel Arrow Lake mobile processor 2024-03-24 04:08:10 +01:00
kernel x86/boot/64: Move 5-level paging global variable assignments back 2024-03-24 05:00:36 +01:00
kvm S390: 2024-03-15 13:03:13 -07:00
lib Merge branch 'linus' into x86/boot, to resolve conflict 2024-03-12 09:55:57 +01:00
math-emu
mm - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
net Networking changes for 6.9. 2024-03-12 17:44:08 -07:00
pci PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge 2024-02-29 13:25:24 -06:00
platform platform-drivers-x86 for v6.9-1 2024-03-14 10:44:09 -07:00
power - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
purgatory x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE 2024-01-10 10:52:28 +01:00
ras
realmode x86/trampoline: Bypass compat mode in trampoline_start64() if not needed 2024-02-23 08:40:29 -08:00
tools x86, relocs: Ignore relocations in .notes section 2024-02-29 22:34:42 -08:00
um This pull request contains the following changes for UML: 2024-01-17 10:44:34 -08:00
video
virt crypto: ccp: Add panic notifier for SEV/SNP firmware shutdown on kdump 2024-01-29 20:34:19 +01:00
xen - Sumanth Korikkar has taught s390 to allocate hotplug-time page frames 2024-03-14 17:43:30 -07:00
.gitignore
Kbuild x86/sev: Add SEV-SNP host initialization support 2024-01-29 17:20:23 +01:00
Kconfig S390: 2024-03-15 13:03:13 -07:00
Kconfig.assembler
Kconfig.cpu x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6 2024-02-09 16:28:19 +01:00
Kconfig.debug
Makefile - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
Makefile_32.cpu
Makefile.postlink
Makefile.um