@@ -3944,10 +3944,13 @@ static bool reexecute_instruction(struct kvm_vcpu *vcpu, gva_t gva)
if (kvm_mmu_unprotect_page_virt(vcpu, gva))
return true;
- gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
+ if (!tdp_enabled) {
+ gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
- if (gpa == UNMAPPED_GVA)
- return true; /* let cpu generate fault */
+ if (gpa == UNMAPPED_GVA)
+ return true; /* let cpu generate fault */
+ } else
+ gpa = gva;
if (!kvm_is_error_hva(gfn_to_hva(vcpu->kvm, gpa >> PAGE_SHIFT)))
return true;