|
@@ -3376,8 +3376,10 @@ static void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
|
|
|
if (enable_ept) {
|
|
|
eptp = construct_eptp(cr3);
|
|
|
vmcs_write64(EPT_POINTER, eptp);
|
|
|
- guest_cr3 = is_paging(vcpu) ? kvm_read_cr3(vcpu) :
|
|
|
- vcpu->kvm->arch.ept_identity_map_addr;
|
|
|
+ if (is_paging(vcpu) || is_guest_mode(vcpu))
|
|
|
+ guest_cr3 = kvm_read_cr3(vcpu);
|
|
|
+ else
|
|
|
+ guest_cr3 = vcpu->kvm->arch.ept_identity_map_addr;
|
|
|
ept_load_pdptrs(vcpu);
|
|
|
}
|
|
|
|