]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: x86: Disallow changing MSR_PLATFORM_INFO after vCPU has run
authorSean Christopherson <seanjc@google.com>
Fri, 2 Aug 2024 18:55:04 +0000 (11:55 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 1 Nov 2024 16:22:30 +0000 (09:22 -0700)
Tag MSR_PLATFORM_INFO as a feature MSR (because it is), i.e. disallow it
from being modified after the vCPU has run.

To make KVM's selftest compliant, simply delete the userspace MSR write
that restores KVM's original value at the end of the test.  Verifying that
userspace can write back what it originally read is uninteresting in this
particular case, because KVM doesn't enforce _any_ bits in the MSR, i.e.
userspace should be able to write any arbitrary value.

Link: https://lore.kernel.org/r/20240802185511.305849-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/x86.c
tools/testing/selftests/kvm/x86_64/platform_info_test.c

index 3787e6a717439eb8964f72212d95e6a2e0cb91c1..16804637ba97b390c8b6a32890be364d663574de 100644 (file)
@@ -451,6 +451,7 @@ static const u32 msr_based_features_all_except_vmx[] = {
        MSR_IA32_UCODE_REV,
        MSR_IA32_ARCH_CAPABILITIES,
        MSR_IA32_PERF_CAPABILITIES,
+       MSR_PLATFORM_INFO,
 };
 
 static u32 msr_based_features[ARRAY_SIZE(msr_based_features_all_except_vmx) +
index eda88080c1868f0d244db96c9be41952fe031f20..9cbf283ebc55f46e42c3712fefaef2cbebe79239 100644 (file)
@@ -72,8 +72,6 @@ int main(int argc, char *argv[])
        }
 
 done:
-       vcpu_set_msr(vcpu, MSR_PLATFORM_INFO, msr_platform_info);
-
        kvm_vm_free(vm);
 
        return 0;