diff options
author | Sean Christopherson <seanjc@google.com> | 2021-11-09 21:50:59 +0000 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-11-18 02:10:27 -0500 |
commit | 1bd00a4257a86db654499137fd8e6db7d1e484dc (patch) | |
tree | 689418e601a65b8ba0f1cf6dce1bc4e3904a205c /arch | |
parent | a41fb26e61697382b2428ae63e039e97b0e6d164 (diff) | |
download | linux-stable-1bd00a4257a86db654499137fd8e6db7d1e484dc.tar.gz linux-stable-1bd00a4257a86db654499137fd8e6db7d1e484dc.tar.bz2 linux-stable-1bd00a4257a86db654499137fd8e6db7d1e484dc.zip |
KVM: SEV: WARN if SEV-ES is marked active but SEV is not
WARN if the VM is tagged as SEV-ES but not SEV. KVM relies on SEV and
SEV-ES being set atomically, and guards common flows with "is SEV", i.e.
observing SEV-ES without SEV means KVM has a fatal bug.
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20211109215101.2211373-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kvm/svm/svm.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm/svm.h b/arch/x86/kvm/svm/svm.h index 0d7bbe548ac3..a345f557be4a 100644 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@ -242,7 +242,7 @@ static inline bool sev_es_guest(struct kvm *kvm) #ifdef CONFIG_KVM_AMD_SEV struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info; - return sev_guest(kvm) && sev->es_active; + return sev->es_active && !WARN_ON_ONCE(!sev->active); #else return false; #endif |