3da8ec8523
Ubuntu's latest tag updated from v5.15.60 to v5.15.64 and one advantage of them trailing upstream stable 5.15.y is that we can backport fixes of fixes that got in with that commit range. Found with the report of: git log --decorate v5.15..v5.15.73 | \ ~/gitdm/stablefixes --fixed-after v5.15.64 --regressed-before v5.15.64 Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jim Mattson <jmattson@google.com>
|
|
Date: Wed, 10 Aug 2022 14:30:50 -0700
|
|
Subject: [PATCH] KVM: VMX: Heed the 'msr' argument in msr_write_intercepted()
|
|
|
|
[ Upstream commit 020dac4187968535f089f83f376a72beb3451311 ]
|
|
|
|
Regardless of the 'msr' argument passed to the VMX version of
|
|
msr_write_intercepted(), the function always checks to see if a
|
|
specific MSR (IA32_SPEC_CTRL) is intercepted for write. This behavior
|
|
seems unintentional and unexpected.
|
|
|
|
Modify the function so that it checks to see if the provided 'msr'
|
|
index is intercepted for write.
|
|
|
|
Fixes: 67f4b9969c30 ("KVM: nVMX: Handle dynamic MSR intercept toggling")
|
|
Cc: Sean Christopherson <seanjc@google.com>
|
|
Signed-off-by: Jim Mattson <jmattson@google.com>
|
|
Reviewed-by: Sean Christopherson <seanjc@google.com>
|
|
Message-Id: <20220810213050.2655000-1-jmattson@google.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
---
|
|
arch/x86/kvm/vmx/vmx.c | 3 +--
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
|
|
index fc0bb685283d..290f4d0aca7e 100644
|
|
--- a/arch/x86/kvm/vmx/vmx.c
|
|
+++ b/arch/x86/kvm/vmx/vmx.c
|
|
@@ -831,8 +831,7 @@ static bool msr_write_intercepted(struct vcpu_vmx *vmx, u32 msr)
|
|
if (!(exec_controls_get(vmx) & CPU_BASED_USE_MSR_BITMAPS))
|
|
return true;
|
|
|
|
- return vmx_test_msr_bitmap_write(vmx->loaded_vmcs->msr_bitmap,
|
|
- MSR_IA32_SPEC_CTRL);
|
|
+ return vmx_test_msr_bitmap_write(vmx->loaded_vmcs->msr_bitmap, msr);
|
|
}
|
|
|
|
unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx)
|