mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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: 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
This commit is contained in:
parent
234cf67fc3
commit
a3cbbb4717
5 changed files with 5 additions and 21 deletions
|
@ -144,7 +144,7 @@ int svsm_perform_call_protocol(struct svsm_call *call);
|
||||||
u8 snp_vmpl;
|
u8 snp_vmpl;
|
||||||
|
|
||||||
/* Include code for early handlers */
|
/* 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)
|
int svsm_perform_call_protocol(struct svsm_call *call)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,7 @@ UBSAN_SANITIZE := n
|
||||||
KCOV_INSTRUMENT := n
|
KCOV_INSTRUMENT := n
|
||||||
|
|
||||||
obj-$(CONFIG_X86_64) += gdt_idt.o map_kernel.o
|
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_X86_64) += la57toggle.o
|
||||||
lib-$(CONFIG_EFI_MIXED) += efi-mixed.o
|
lib-$(CONFIG_EFI_MIXED) += efi-mixed.o
|
||||||
|
|
|
@ -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 code shared with pre-decompression boot stage */
|
||||||
#include "shared.c"
|
#include "sev-shared.c"
|
||||||
|
|
||||||
noinstr void __sev_put_ghcb(struct ghcb_state *state)
|
noinstr void __sev_put_ghcb(struct ghcb_state *state)
|
||||||
{
|
{
|
|
@ -1,25 +1,9 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
obj-y += core.o sev-nmi.o startup.o
|
obj-y += core.o sev-nmi.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
|
|
||||||
|
|
||||||
# Clang 14 and older may fail to respect __no_sanitize_undefined when inlining
|
# 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
|
# GCC may fail to respect __no_sanitize_address when inlining
|
||||||
KASAN_SANITIZE_sev-nmi.o := n
|
KASAN_SANITIZE_sev-nmi.o := n
|
||||||
|
|
Loading…
Add table
Reference in a new issue