KVM: VMX: remove bogus WARN_ON in handle_ept_misconfig
authorSean Christopherson <sean.j.christopherson@intel.com>
Thu, 29 Mar 2018 21:48:31 +0000 (14:48 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 4 Apr 2018 16:00:40 +0000 (18:00 +0200)
commitc75d0edc8e83541272c8c0177c4da153f22094e4
tree84f4714ca3ceff82257c9441b27fcdc25fdcf1cb
parent2c151b25441ae5c2da66472abd165af785c9ecd2
KVM: VMX: remove bogus WARN_ON in handle_ept_misconfig

Remove the WARN_ON in handle_ept_misconfig() as it is unnecessary
and causes false positives.  Return the unmodified result of
kvm_mmu_page_fault() instead of converting a system error code to
KVM_EXIT_UNKNOWN so that userspace sees the error code of the
actual failure, not a generic "we don't know what went wrong".

  * kvm_mmu_page_fault() will WARN if reserved bits are set in the
    SPTEs, i.e. it covers the case where an EPT misconfig occurred
    because of a KVM bug.

  * The WARN_ON will fire on any system error code that is hit while
    handling the fault, e.g. -ENOMEM from mmu_topup_memory_caches()
    while handling a legitmate MMIO EPT misconfig or -EFAULT from
    kvm_handle_bad_page() if the corresponding HVA is invalid.  In
    either case, userspace should receive the original error code
    and firing a warning is incorrect behavior as KVM is operating
    as designed.

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c