summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/sev-es.h
diff options
context:
space:
mode:
authorJoerg Roedel <jroedel@suse.de>2020-09-08 14:35:17 +0200
committerBorislav Petkov <bp@suse.de>2020-09-09 10:45:24 +0200
commit74d8d9d531b4cc945a9f75aa2fc21d99ca5a9fe3 (patch)
treeba719ed3c3be8531a375850a80df229a29c375e1 /arch/x86/include/asm/sev-es.h
parentx86/sev-es: Compile early handler code into kernel image (diff)
downloadlinux-74d8d9d531b4cc945a9f75aa2fc21d99ca5a9fe3.tar.xz
linux-74d8d9d531b4cc945a9f75aa2fc21d99ca5a9fe3.zip
x86/sev-es: Setup an early #VC handler
Setup an early handler for #VC exceptions. There is no GHCB mapped yet, so just re-use the vc_no_ghcb_handler(). It can only handle CPUID exit-codes, but that should be enough to get the kernel through verify_cpu() and __startup_64() until it runs on virtual addresses. Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Borislav Petkov <bp@suse.de> [ boot failure Error: kernel_ident_mapping_init() failed. ] Reported-by: kernel test robot <lkp@intel.com> Link: https://lkml.kernel.org/r/20200908123517.GA3764@8bytes.org
Diffstat (limited to 'arch/x86/include/asm/sev-es.h')
-rw-r--r--arch/x86/include/asm/sev-es.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/include/asm/sev-es.h b/arch/x86/include/asm/sev-es.h
index 6dc52440c4b4..7175d432ebfe 100644
--- a/arch/x86/include/asm/sev-es.h
+++ b/arch/x86/include/asm/sev-es.h
@@ -73,4 +73,7 @@ static inline u64 lower_bits(u64 val, unsigned int bits)
return (val & mask);
}
+/* Early IDT entry points for #VC handler */
+extern void vc_no_ghcb(void);
+
#endif