From: Sean Christopherson Date: Thu, 13 Nov 2025 23:14:20 +0000 (-0800) Subject: KVM: SVM: Skip OSVW MSR reads if current CPU doesn't support the feature X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a56444d5e7387effbc61d6b98fe5d68897017fc9;p=thirdparty%2Fkernel%2Flinux.git KVM: SVM: Skip OSVW MSR reads if current CPU doesn't support the feature Skip the OSVW RDMSRs if the current CPU doesn't enumerate support for the MSRs. In practice, checking only the boot CPU's capabilities is sufficient, as the RDMSRs should fault when unsupported, but there's no downside to being more precise, and checking only the boot CPU _looks_ wrong given the rather odd semantics of the MSRs. E.g. if a CPU doesn't support OVSW, then KVM must assume all errata are present. Link: https://patch.msgid.link/20251113231420.1695919-6-seanjc@google.com Signed-off-by: Sean Christopherson --- diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 5c4328f42604..3f3290d5a0a6 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -447,12 +447,8 @@ static void svm_init_os_visible_workarounds(void) if (!osvw_len) return; - if (!boot_cpu_has(X86_FEATURE_OSVW)) { - osvw_status = osvw_len = 0; - return; - } - - if (native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len) || + if (!this_cpu_has(X86_FEATURE_OSVW) || + native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len) || native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status)) len = status = 0;