• Sean Christopherson's avatar
    KVM: nVMX: Remove non-functional "support" for CR3 target values · b8d295f9
    Sean Christopherson authored
    Remove all references to cr3_target_value[0-3] and replace the fields
    in vmcs12 with "dead_space" to preserve the vmcs12 layout.  KVM doesn't
    support emulating CR3-target values, despite a variety of code that
    implies otherwise, as KVM unconditionally reports '0' for the number of
    supported CR3-target values.
    
    This technically fixes a bug where KVM would incorrectly allow VMREAD
    and VMWRITE to nonexistent fields, i.e. cr3_target_value[0-3].  Per
    Intel's SDM, the number of supported CR3-target values reported in
    VMX_MISC also enumerates the existence of the associated VMCS fields:
    
      If a future implementation supports more than 4 CR3-target values, they
      will be encoded consecutively following the 4 encodings given here.
    
    Alternatively, the "bug" could be fixed by actually advertisting support
    for 4 CR3-target values, but that'd likely just enable kvm-unit-tests
    given that no one has complained about lack of support for going on ten
    years, e.g. KVM, Xen and HyperV don't use CR3-target values.
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Message-Id: <20200416000739.9012-1-sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    b8d295f9
vmcs12.h 13.5 KB