KVM: SVM: Do not allow instruction emulation under SEV-ES

When a guest is running as an SEV-ES guest, it is not possible to emulate
instructions. Add support to prevent instruction emulation.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Message-Id: <f6355ea3024fda0a3eb5eb99c6b62dca10d792bd.1607620209.git.thomas.lendacky@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Tom Lendacky
2020-12-10 11:09:44 -06:00
committed by Paolo Bonzini
parent 8d4846b9b1
commit bc624d9f1b

View File

@@ -4157,6 +4157,12 @@ static bool svm_can_emulate_instruction(struct kvm_vcpu *vcpu, void *insn, int i
bool smep, smap, is_user; bool smep, smap, is_user;
unsigned long cr4; unsigned long cr4;
/*
* When the guest is an SEV-ES guest, emulation is not possible.
*/
if (sev_es_guest(vcpu->kvm))
return false;
/* /*
* Detect and workaround Errata 1096 Fam_17h_00_0Fh. * Detect and workaround Errata 1096 Fam_17h_00_0Fh.
* *