linux/arch/x86
Ard Biesheuvel 5da7936719 x86/boot/64: Simplify global variable accesses in GDT/IDT programming
There are two code paths in the startup code to program an IDT: one that
runs from the 1:1 mapping and one that runs from the virtual kernel
mapping. Currently, these are strictly separate because fixup_pointer()
is used on the 1:1 path, which will produce the wrong value when used
while executing from the virtual kernel mapping.

Switch to RIP_REL_REF() so that the two code paths can be merged. Also,
move the GDT and IDT descriptors to the stack so that they can be
referenced directly, rather than via RIP_REL_REF().

Rename startup_64_setup_env() to startup_64_setup_gdt_idt() while at it,
to make the call from assembler self-documenting.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240221113506.2565718-19-ardb+git@google.com
2024-02-26 12:58:11 +01:00
..
boot Merge branch 'x86/sev' into x86/boot, to resolve conflicts and to pick up dependent tree 2024-02-26 11:10:35 +01:00
coco x86/sev: Fix position dependent variable references in startup code 2024-02-06 16:38:42 +01:00
configs hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
crypto This update includes the following changes: 2024-01-10 12:23:43 -08:00
entry x86/entry_32: Add VERW just before userspace transition 2024-02-19 16:31:46 -08:00
events Performance events changes for v6.8 are: 2024-01-08 19:37:20 -08:00
hyperv x86/cleanups changes for v6.8: 2024-01-08 17:23:32 -08:00
ia32
include x86/boot/64: Simplify global variable accesses in GDT/IDT programming 2024-02-26 12:58:11 +01:00
kernel x86/boot/64: Simplify global variable accesses in GDT/IDT programming 2024-02-26 12:58:11 +01:00
kvm Merge branch 'x86/sev' into x86/boot, to resolve conflicts and to pick up dependent tree 2024-02-26 11:10:35 +01:00
lib x86/lib: Revert to _ASM_EXTABLE_UA() for {get,put}_user() fixups 2024-01-29 11:40:41 +01:00
math-emu
mm Merge branch 'x86/sev' into x86/boot, to resolve conflicts and to pick up dependent tree 2024-02-26 11:10:35 +01:00
net Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
pci pci-v6.8-changes 2024-01-17 16:23:17 -08:00
platform x86/cleanups changes for v6.8: 2024-01-08 17:23:32 -08:00
power
purgatory x86/purgatory: Remove LTO flags 2023-09-17 09:49:03 +02:00
ras
realmode x86/trampoline: Bypass compat mode in trampoline_start64() if not needed 2024-02-23 08:40:29 -08:00
tools x86/build changes for v6.8: 2024-01-08 17:22:02 -08:00
um This pull request contains the following changes for UML: 2024-01-17 10:44:34 -08:00
video fbdev: Replace fb_pgprotect() with pgprot_framebuffer() 2023-10-12 09:20:46 +02:00
virt crypto: ccp: Add panic notifier for SEV/SNP firmware shutdown on kdump 2024-01-29 20:34:19 +01:00
xen x86/xen: Add some null pointer checking to smp.c 2024-02-12 20:14:52 +01:00
.gitignore
Kbuild x86/sev: Add SEV-SNP host initialization support 2024-01-29 17:20:23 +01:00
Kconfig Merge branch 'x86/sev' into x86/boot, to resolve conflicts and to pick up dependent tree 2024-02-26 11:10:35 +01: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 kbuild: use 4-space indentation when followed by conditionals 2024-02-15 06:05:44 +09:00
Makefile_32.cpu
Makefile.postlink kbuild: remove ARCH_POSTLINK from module builds 2023-10-28 21:10:08 +09:00
Makefile.um