• Sean Christopherson's avatar
    KVM: x86: Move vendor CR4 validity check to dedicated kvm_x86_ops hook · c2fe3cd4
    Sean Christopherson authored
    Split out VMX's checks on CR4.VMXE to a dedicated hook, .is_valid_cr4(),
    and invoke the new hook from kvm_valid_cr4().  This fixes an issue where
    KVM_SET_SREGS would return success while failing to actually set CR4.
    
    Fixing the issue by explicitly checking kvm_x86_ops.set_cr4()'s return
    in __set_sregs() is not a viable option as KVM has already stuffed a
    variety of vCPU state.
    
    Note, kvm_valid_cr4() and is_valid_cr4() have different return types and
    inverted semantics.  This will be remedied in a future patch.
    
    Fixes: 5e1746d6 ("KVM: nVMX: Allow setting the VMXE bit in CR4")
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20201007014417.29276-5-sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    c2fe3cd4
x86.c 293 KB