]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/boot: Move SEV startup code into startup/
authorArd Biesheuvel <ardb@kernel.org>
Fri, 18 Apr 2025 14:12:58 +0000 (16:12 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 22 Apr 2025 07:12:01 +0000 (09:12 +0200)
Move the SEV startup code into arch/x86/boot/startup/, where it will
reside along with other code that executes extremely early, and
therefore needs to be built in a special manner.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Cc: Dionna Amalie Glaze <dionnaglaze@google.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Kevin Loughlin <kevinloughlin@google.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20250418141253.2601348-12-ardb+git@google.com
arch/x86/boot/compressed/sev.c
arch/x86/boot/startup/Makefile
arch/x86/boot/startup/sev-shared.c [moved from arch/x86/coco/sev/shared.c with 100% similarity]
arch/x86/boot/startup/sev-startup.c [moved from arch/x86/coco/sev/startup.c with 99% similarity]
arch/x86/coco/sev/Makefile

index 714e30c66eae5a9ce7db409d63a281e606338429..478c65149cf08a55ebc4ef3921b53d6972f38463 100644 (file)
@@ -144,7 +144,7 @@ int svsm_perform_call_protocol(struct svsm_call *call);
 u8 snp_vmpl;
 
 /* Include code for early handlers */
-#include "../../coco/sev/shared.c"
+#include "../../boot/startup/sev-shared.c"
 
 int svsm_perform_call_protocol(struct svsm_call *call)
 {
index bb7c826e586c2d47509581ae124d897d38205a8c..21d911b61459869e8e76cf9d81fc0c8597af7176 100644 (file)
@@ -17,7 +17,7 @@ UBSAN_SANITIZE        := n
 KCOV_INSTRUMENT        := n
 
 obj-$(CONFIG_X86_64)           += gdt_idt.o map_kernel.o
-obj-$(CONFIG_AMD_MEM_ENCRYPT)  += sme.o
+obj-$(CONFIG_AMD_MEM_ENCRYPT)  += sme.o sev-startup.o
 
 lib-$(CONFIG_X86_64)           += la57toggle.o
 lib-$(CONFIG_EFI_MIXED)                += efi-mixed.o
similarity index 99%
rename from arch/x86/coco/sev/startup.c
rename to arch/x86/boot/startup/sev-startup.c
index 9f5dc70cfb44e5054c83651be676a351ae5cb746..10b636009d1cea48e8c6d854acead6e4f00d1f46 100644 (file)
@@ -422,7 +422,7 @@ static __always_inline void vc_forward_exception(struct es_em_ctxt *ctxt)
 }
 
 /* Include code shared with pre-decompression boot stage */
-#include "shared.c"
+#include "sev-shared.c"
 
 noinstr void __sev_put_ghcb(struct ghcb_state *state)
 {
index 57e25f946663904f6ac7e7aee68b912522156d24..2919dcfc4b021bba5b6303fc64c3818667be9c8e 100644 (file)
@@ -1,25 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0
 
-obj-y += core.o sev-nmi.o startup.o
-
-# jump tables are emitted using absolute references in non-PIC code
-# so they cannot be used in the early SEV startup code
-CFLAGS_startup.o += -fno-jump-tables
-
-ifdef CONFIG_FUNCTION_TRACER
-CFLAGS_REMOVE_startup.o = -pg
-endif
-
-KASAN_SANITIZE_startup.o       := n
-KMSAN_SANITIZE_startup.o       := n
-KCOV_INSTRUMENT_startup.o      := n
-
-# With some compiler versions the generated code results in boot hangs, caused
-# by several compilation units. To be safe, disable all instrumentation.
-KCSAN_SANITIZE         := n
+obj-y += core.o sev-nmi.o
 
 # Clang 14 and older may fail to respect __no_sanitize_undefined when inlining
-UBSAN_SANITIZE         := n
+UBSAN_SANITIZE_sev-nmi.o       := n
 
 # GCC may fail to respect __no_sanitize_address when inlining
 KASAN_SANITIZE_sev-nmi.o       := n