x86/sev-es: Setup GHCB-based boot #VC handler
authorJoerg Roedel <jroedel@suse.de>
Tue, 8 Sep 2020 12:38:16 +0000 (14:38 +0200)
committerBorislav Petkov <bp@suse.de>
Wed, 9 Sep 2020 09:32:27 +0000 (11:32 +0200)
commit1aa9aa8ee517e0443b06e816a4fd2d15f2113615
treead1f72353003e2342bc9be7a265fe6b9d64fe36f
parent74d8d9d531b4cc945a9f75aa2fc21d99ca5a9fe3
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
arch/x86/include/asm/realmode.h
arch/x86/include/asm/segment.h
arch/x86/include/asm/sev-es.h
arch/x86/kernel/Makefile
arch/x86/kernel/head64.c
arch/x86/kernel/head_64.S
arch/x86/kernel/sev-es-shared.c
arch/x86/kernel/sev-es.c
arch/x86/mm/extable.c