diff options
author | Dongli Zhang <dongli.zhang@oracle.com> | 2024-02-23 12:21:03 -0800 |
---|---|---|
committer | Sean Christopherson <seanjc@google.com> | 2024-02-27 09:36:48 -0800 |
commit | bab22040d7fdeb935e57215a183912ba46eee7f0 (patch) | |
tree | 20ecff34d792bd5dbcf025c45298222a2c74f9f3 /arch/x86/kvm/vmx | |
parent | 8e24eeedfda34a920d35eda2f17a0f4b4473dcde (diff) | |
download | linux-stable-bab22040d7fdeb935e57215a183912ba46eee7f0.tar.gz linux-stable-bab22040d7fdeb935e57215a183912ba46eee7f0.tar.bz2 linux-stable-bab22040d7fdeb935e57215a183912ba46eee7f0.zip |
KVM: VMX: return early if msr_bitmap is not supported
The vmx_msr_filter_changed() may directly/indirectly calls only
vmx_enable_intercept_for_msr() or vmx_disable_intercept_for_msr(). Those
two functions may exit immediately if !cpu_has_vmx_msr_bitmap().
vmx_msr_filter_changed()
-> vmx_disable_intercept_for_msr()
-> pt_update_intercept_for_msr()
-> vmx_set_intercept_for_msr()
-> vmx_enable_intercept_for_msr()
-> vmx_disable_intercept_for_msr()
Therefore, we exit early if !cpu_has_vmx_msr_bitmap().
Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
Link: https://lore.kernel.org/r/20240223202104.3330974-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'arch/x86/kvm/vmx')
-rw-r--r-- | arch/x86/kvm/vmx/vmx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 05319b74bd3d..5a866d3c2bc8 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -4127,6 +4127,9 @@ static void vmx_msr_filter_changed(struct kvm_vcpu *vcpu) struct vcpu_vmx *vmx = to_vmx(vcpu); u32 i; + if (!cpu_has_vmx_msr_bitmap()) + return; + /* * Redo intercept permissions for MSRs that KVM is passing through to * the guest. Disabling interception will check the new MSR filter and |