mirror_ubuntu-kernels/arch/x86/kvm/svm
Tom Lendacky 4444dfe405 KVM: SVM: Add NMI support for an SEV-ES guest
The GHCB specification defines how NMIs are to be handled for an SEV-ES
guest. To detect the completion of an NMI the hypervisor must not
intercept the IRET instruction (because a #VC while running the NMI will
issue an IRET) and, instead, must receive an NMI Complete exit event from
the guest.

Update the KVM support for detecting the completion of NMIs in the guest
to follow the GHCB specification. When an SEV-ES guest is active, the
IRET instruction will no longer be intercepted. Now, when the NMI Complete
exit event is received, the iret_interception() function will be called
to simulate the completion of the NMI.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Message-Id: <5ea3dd69b8d4396cefdc9048ebc1ab7caa70a847.1607620209.git.thomas.lendacky@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-12-15 05:20:56 -05:00
..
avic.c KVM: X86: Don't track dirty for KVM_SET_[TSS_ADDR|IDENTITY_MAP_ADDR] 2020-11-15 09:49:12 -05:00
nested.c KVM: nSVM: set fixed bits by hand 2020-11-27 12:46:36 -05:00
pmu.c KVM: x86/pmu: Tweak kvm_pmu_get_msr to pass 'struct msr_data' in 2020-06-01 04:26:08 -04:00
sev.c KVM: SVM: Add NMI support for an SEV-ES guest 2020-12-15 05:20:56 -05:00
svm.c KVM: SVM: Add NMI support for an SEV-ES guest 2020-12-15 05:20:56 -05:00
svm.h KVM: SVM: Support string IO operations for an SEV-ES guest 2020-12-15 05:20:51 -05:00
vmenter.S x86/kvm/svm: Move guest enter/exit into .noinstr.text 2020-07-09 07:08:41 -04:00