Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1612812

[PATCH 2/6] KVM: VMX: remove bogus check for invalid EPT violation

From Paolo Bonzini <pbonzini@redhat.com>
Newsgroups linux.kernel
Subject [PATCH 2/6] KVM: VMX: remove bogus check for invalid EPT violation
Date 2017-03-30 12:00 +0200
Message-ID <tqF21-4or-13@gated-at.bofh.it> (permalink)
References <tqF21-4or-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


handle_ept_violation is checking for "guest-linear-address invalid" +
"not a paging-structure walk".  However, _all_ EPT violations without
a valid guest linear address are paging structure walks, because those
EPT violations happen when loading the guest PDPTEs.

Therefore, the check can never be true, and even if it were, KVM doesn't
care about the guest linear address; it only uses the guest *physical*
address VMCS field.  So, remove the check altogether.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 arch/x86/kvm/vmx.c | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 0e61b9226bf2..1c372600a962 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -6208,23 +6208,9 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu)
 	unsigned long exit_qualification;
 	gpa_t gpa;
 	u32 error_code;
-	int gla_validity;
 
 	exit_qualification = vmcs_readl(EXIT_QUALIFICATION);
 
-	gla_validity = (exit_qualification >> 7) & 0x3;
-	if (gla_validity == 0x2) {
-		printk(KERN_ERR "EPT: Handling EPT violation failed!\n");
-		printk(KERN_ERR "EPT: GPA: 0x%lx, GVA: 0x%lx\n",
-			(long unsigned int)vmcs_read64(GUEST_PHYSICAL_ADDRESS),
-			vmcs_readl(GUEST_LINEAR_ADDRESS));
-		printk(KERN_ERR "EPT: Exit qualification is 0x%lx\n",
-			(long unsigned int)exit_qualification);
-		vcpu->run->exit_reason = KVM_EXIT_UNKNOWN;
-		vcpu->run->hw.hardware_exit_reason = EXIT_REASON_EPT_VIOLATION;
-		return 0;
-	}
-
 	/*
 	 * EPT violation happened while executing iret from NMI,
 	 * "blocked by NMI" bit has to be set before next VM entry.
-- 
1.8.3.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 0/6] KVM: nVMX: nested EPT improvements and A/D bits, RDRAND and RDSEED exits Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
  [PATCH 2/6] KVM: VMX: remove bogus check for invalid EPT violation Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
    Re: [PATCH 2/6] KVM: VMX: remove bogus check for invalid EPT violation Jim Mattson <jmattson@google.com> - 2017-03-30 18:40 +0200
    Re: [PATCH 2/6] KVM: VMX: remove bogus check for invalid EPT  violation David Hildenbrand <david@redhat.com> - 2017-04-03 13:20 +0200
  [PATCH 4/6] kvm: nVMX: support EPT accessed/dirty bits Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
    Re: [PATCH 4/6] kvm: nVMX: support EPT accessed/dirty bits Paolo Bonzini <pbonzini@redhat.com> - 2017-03-31 18:30 +0200
    Re: [PATCH 4/6] kvm: nVMX: support EPT accessed/dirty bits Radim Krčmář <rkrcmar@redhat.com> - 2017-03-31 18:30 +0200
  [PATCH 5/6] KVM: VMX: add missing exit reasons Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
  [PATCH 6/6] KVM: nVMX: support RDRAND and RDSEED exiting Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
    Re: [PATCH 6/6] KVM: nVMX: support RDRAND and RDSEED exiting Jim Mattson <jmattson@google.com> - 2017-03-30 19:00 +0200
  [PATCH 3/6] kvm: x86: MMU support for EPT accessed/dirty bits Paolo Bonzini <pbonzini@redhat.com> - 2017-03-30 12:00 +0200
    Re: [PATCH 3/6] kvm: x86: MMU support for EPT accessed/dirty bits Radim Krčmář <rkrcmar@redhat.com> - 2017-03-31 16:00 +0200
  Re: [PATCH v2 0/6] KVM: nVMX: nested EPT improvements and A/D bits,  RDRAND and RDSEED exits Paolo Bonzini <pbonzini@redhat.com> - 2017-03-31 13:20 +0200

csiph-web