]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF
authorSean Christopherson <seanjc@google.com>
Thu, 12 Aug 2021 04:56:15 +0000 (21:56 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 13 Aug 2021 07:20:58 +0000 (03:20 -0400)
commit3c7e2024fa7ebdead467f52c0a504083f8453f9e
tree2bebad657a2c375cf88c47d1a8900c5f5efe17da
parentded413f393be07a4978d31e86b62295833a2eb05
KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF

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
11d5d2cf17ce ("KVM: VMX: introduce vmx_need_pf_intercept").

Fixes: e6c9cf38a9a6 ("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: Sean Christopherson <seanjc@google.com>
Message-Id: <20210812045615.3167686-1-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/nested.c