• Sean Christopherson's avatar
    KVM: x86: Use kernel's x86_phys_bits to handle reduced MAXPHYADDR · e39f00f6
    Sean Christopherson authored
    Use boot_cpu_data.x86_phys_bits instead of the raw CPUID information to
    enumerate the MAXPHYADDR for KVM guests when TDP is disabled (the guest
    version is only relevant to NPT/TDP).
    
    When using shadow paging, any reductions to the host's MAXPHYADDR apply
    to KVM and its guests as well, i.e. using the raw CPUID info will cause
    KVM to misreport the number of PA bits available to the guest.
    
    Unconditionally zero out the "Physical Address bit reduction" entry.
    For !TDP, the adjustment is already done, and for TDP enumerating the
    host's reduction is wrong as the reduction does not apply to GPAs.
    
    Fixes: 9af9b940 ("x86/cpu/AMD: Handle SME reduction in physical address size")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210623230552.4027702-3-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    e39f00f6
cpuid.c 33.9 KB