1

x86/sev: Move SEV compilation units

A long time ago it was agreed upon that the coco stuff needs to go where
it belongs:

  https://lore.kernel.org/all/Yg5nh1RknPRwIrb8@zn.tnic

and not keep it in arch/x86/kernel. TDX did that and SEV can't find time
to do so. So lemme do it. If people have trouble converting their
ongoing featuritis patches, ask me for a sed script.

No functional changes.

Move the instrumentation exclusion bits too, as helpfully caught and
reported by the 0day folks.

Closes: https://lore.kernel.org/oe-kbuild-all/202406220748.hG3qlmDx-lkp@intel.com
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202407091342.46d7dbb-oliver.sang@intel.com
Reported-by: kernel test robot <oliver.sang@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Reviewed-by: Ashish Kalra <ashish.kalra@amd.com>
Tested-by: kernel test robot <oliver.sang@intel.com>
Link: https://lore.kernel.org/r/20240619093014.17962-1-bp@kernel.org
This commit is contained in:
Borislav Petkov (AMD) 2024-06-19 11:03:16 +02:00
parent 3991b04d48
commit 38918e0bb2
6 changed files with 18 additions and 8 deletions

View File

@ -127,7 +127,7 @@ static bool fault_in_kernel_space(unsigned long address)
#include "../../lib/insn.c" #include "../../lib/insn.c"
/* Include code for early handlers */ /* Include code for early handlers */
#include "../../kernel/sev-shared.c" #include "../../coco/sev/shared.c"
static struct svsm_ca *svsm_get_caa(void) static struct svsm_ca *svsm_get_caa(void)
{ {

View File

@ -6,3 +6,4 @@ CFLAGS_core.o += -fno-stack-protector
obj-y += core.o obj-y += core.o
obj-$(CONFIG_INTEL_TDX_GUEST) += tdx/ obj-$(CONFIG_INTEL_TDX_GUEST) += tdx/
obj-$(CONFIG_AMD_MEM_ENCRYPT) += sev/

View File

@ -0,0 +1,15 @@
# SPDX-License-Identifier: GPL-2.0
obj-y += core.o
ifdef CONFIG_FUNCTION_TRACER
CFLAGS_REMOVE_core.o = -pg
endif
KASAN_SANITIZE_core.o := n
KMSAN_SANITIZE_core.o := n
KCOV_INSTRUMENT_core.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

View File

@ -613,7 +613,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 "sev-shared.c" #include "shared.c"
static inline struct svsm_ca *svsm_get_caa(void) static inline struct svsm_ca *svsm_get_caa(void)
{ {

View File

@ -17,7 +17,6 @@ CFLAGS_REMOVE_ftrace.o = -pg
CFLAGS_REMOVE_early_printk.o = -pg CFLAGS_REMOVE_early_printk.o = -pg
CFLAGS_REMOVE_head64.o = -pg CFLAGS_REMOVE_head64.o = -pg
CFLAGS_REMOVE_head32.o = -pg CFLAGS_REMOVE_head32.o = -pg
CFLAGS_REMOVE_sev.o = -pg
CFLAGS_REMOVE_rethook.o = -pg CFLAGS_REMOVE_rethook.o = -pg
endif endif
@ -26,19 +25,16 @@ KASAN_SANITIZE_dumpstack.o := n
KASAN_SANITIZE_dumpstack_$(BITS).o := n KASAN_SANITIZE_dumpstack_$(BITS).o := n
KASAN_SANITIZE_stacktrace.o := n KASAN_SANITIZE_stacktrace.o := n
KASAN_SANITIZE_paravirt.o := n KASAN_SANITIZE_paravirt.o := n
KASAN_SANITIZE_sev.o := n
# With some compiler versions the generated code results in boot hangs, caused # With some compiler versions the generated code results in boot hangs, caused
# by several compilation units. To be safe, disable all instrumentation. # by several compilation units. To be safe, disable all instrumentation.
KCSAN_SANITIZE := n KCSAN_SANITIZE := n
KMSAN_SANITIZE_head$(BITS).o := n KMSAN_SANITIZE_head$(BITS).o := n
KMSAN_SANITIZE_nmi.o := n KMSAN_SANITIZE_nmi.o := n
KMSAN_SANITIZE_sev.o := n
# If instrumentation of the following files is enabled, boot hangs during # If instrumentation of the following files is enabled, boot hangs during
# first second. # first second.
KCOV_INSTRUMENT_head$(BITS).o := n KCOV_INSTRUMENT_head$(BITS).o := n
KCOV_INSTRUMENT_sev.o := n
CFLAGS_irq.o := -I $(src)/../include/asm/trace CFLAGS_irq.o := -I $(src)/../include/asm/trace
@ -142,8 +138,6 @@ obj-$(CONFIG_UNWINDER_ORC) += unwind_orc.o
obj-$(CONFIG_UNWINDER_FRAME_POINTER) += unwind_frame.o obj-$(CONFIG_UNWINDER_FRAME_POINTER) += unwind_frame.o
obj-$(CONFIG_UNWINDER_GUESS) += unwind_guess.o obj-$(CONFIG_UNWINDER_GUESS) += unwind_guess.o
obj-$(CONFIG_AMD_MEM_ENCRYPT) += sev.o
obj-$(CONFIG_CFI_CLANG) += cfi.o obj-$(CONFIG_CFI_CLANG) += cfi.o
obj-$(CONFIG_CALL_THUNKS) += callthunks.o obj-$(CONFIG_CALL_THUNKS) += callthunks.o