summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/sev-es.h
diff options
context:
space:
mode:
authorJoerg Roedel <jroedel@suse.de>2020-09-08 14:38:16 +0200
committerBorislav Petkov <bp@suse.de>2020-09-09 11:32:27 +0200
commit1aa9aa8ee517e0443b06e816a4fd2d15f2113615 (patch)
treead1f72353003e2342bc9be7a265fe6b9d64fe36f /arch/x86/include/asm/sev-es.h
parent74d8d9d531b4cc945a9f75aa2fc21d99ca5a9fe3 (diff)
x86/sev-es: Setup GHCB-based boot #VC handler
Add the infrastructure to handle #VC exceptions when the kernel runs on virtual addresses and has mapped a GHCB. This handler will be used until the runtime #VC handler takes over. Since the handler runs very early, disable instrumentation for sev-es.c. [ bp: Make vc_ghcb_invalidate() __always_inline so that it can be inlined in noinstr functions like __sev_es_nmi_complete(). ] Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20200908123816.GB3764@8bytes.org
Diffstat (limited to 'arch/x86/include/asm/sev-es.h')
-rw-r--r--arch/x86/include/asm/sev-es.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/sev-es.h b/arch/x86/include/asm/sev-es.h
index 7175d432ebfe..9fbeedaa66ee 100644
--- a/arch/x86/include/asm/sev-es.h
+++ b/arch/x86/include/asm/sev-es.h
@@ -75,5 +75,7 @@ static inline u64 lower_bits(u64 val, unsigned int bits)
/* Early IDT entry points for #VC handler */
extern void vc_no_ghcb(void);
+extern void vc_boot_ghcb(void);
+extern bool handle_vc_boot_ghcb(struct pt_regs *regs);
#endif