summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2024-11-28 04:33:45 +0300
committerSean Christopherson <seanjc@google.com>2024-12-19 01:19:40 +0300
commit01d1059d635a101a21f145284e8023b0ffa5f7ed (patch)
tree24552eca44a2cb19d28b20b657ec322434875804
parent59cb3acdb316130c7247a3d3a20d7d6e75e2896a (diff)
downloadlinux-01d1059d635a101a21f145284e8023b0ffa5f7ed.tar.xz
KVM: x86: Zero out PV features cache when the CPUID leaf is not present
Clear KVM's PV feature cache prior when processing a new guest CPUID so that KVM doesn't keep a stale cache entry if userspace does KVM_SET_CPUID2 multiple times, once with a PV features entry, and a second time without. Fixes: 66570e966dd9 ("kvm: x86: only provide PV features if enabled in guest's CPUID") Cc: Oliver Upton <oliver.upton@linux.dev> Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Reviewed-by: Binbin Wu <binbin.wu@linux.intel.com> Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com> Link: https://lore.kernel.org/r/20241128013424.4096668-19-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
-rw-r--r--arch/x86/kvm/cpuid.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 626a243febc9..1157357f499a 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -272,6 +272,8 @@ void kvm_update_pv_runtime(struct kvm_vcpu *vcpu)
{
struct kvm_cpuid_entry2 *best = kvm_find_kvm_cpuid_features(vcpu);
+ vcpu->arch.pv_cpuid.features = 0;
+
/*
* save the feature bitmap to avoid cpuid lookup for every PV
* operation