Commit a3cbbb47 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Ingo Molnar
Browse files

x86/boot: Move SEV startup code into startup/



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: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarIngo 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
parent 234cf67f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
{
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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)
{
+2 −18
Original line number Diff line number Diff line
# 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