• Sean Christopherson's avatar
    KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF · 18712c13
    Sean Christopherson authored
    Use vmx_need_pf_intercept() when determining if L0 wants to handle a #PF
    in L2 or if the VM-Exit should be forwarded to L1.  The current logic fails
    to account for the case where #PF is intercepted to handle
    guest.MAXPHYADDR < host.MAXPHYADDR and ends up reflecting all #PFs into
    L1.  At best, L1 will complain and inject the #PF back into L2.  At
    worst, L1 will eat the unexpected fault and cause L2 to hang on infinite
    page faults.
    
    Note, while the bug was technically introduced by the commit that added
    support for the MAXPHYADDR madness, the shame is all on commit
    a0c13434 ("KVM: VMX: introduce vmx_need_pf_intercept").
    
    Fixes: 1dbf5d68 ("KVM: VMX: Add guest physical address check in EPT violation and misconfig")
    Cc: stable@vger.kernel.org
    Cc: Peter Shier <pshier@google.com>
    Cc: Oliver Upton <oupton@google.com>
    Cc: Jim Mattson <jmattson@google.com>
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210812045615.3167686-1-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    18712c13
nested.c 206 KB