]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL
authorSean Christopherson <seanjc@google.com>
Thu, 6 Oct 2022 00:03:10 +0000 (00:03 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 2 Nov 2022 17:18:44 +0000 (13:18 -0400)
commitab22a8bbcf055efe9d98e893beaae8858fc27023
tree3e8d9fbd233a8d8b841b50b3bfbd65c329646cc0
parentd54e935586e6f3bfe6082e2b494d8c5f9816f035
KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL

Ignore guest CPUID for host userspace writes to the DEBUGCTL MSR, KVM's
ABI is that setting CPUID vs. state can be done in any order, i.e. KVM
allows userspace to stuff MSRs prior to setting the guest's CPUID that
makes the new MSR "legal".

Keep the vmx_get_perf_capabilities() check for guest writes, even though
it's technically unnecessary since the vCPU's PERF_CAPABILITIES is
consulted when refreshing LBR support.  A future patch will clean up
vmx_get_perf_capabilities() to avoid the RDMSR on every call, at which
point the paranoia will incur no meaningful overhead.

Note, prior to vmx_get_perf_capabilities() checking that the host fully
supports LBRs via x86_perf_get_lbr(), KVM effectively relied on
intel_pmu_lbr_is_enabled() to guard against host userspace enabling LBRs
on platforms without full support.

Fixes: 426b3757901c ("KVM: vmx/pmu: Add PMU_CAP_LBR_FMT check when guest LBR is enabled")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20221006000314.73240-5-seanjc@google.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c