Lines Matching refs:cr3
367 int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3)
369 gfn_t pdpt_gfn = cr3 >> PAGE_SHIFT;
370 unsigned offset = ((cr3 & (PAGE_SIZE-1)) >> 5) << 2;
414 r = kvm_read_guest(vcpu->kvm, vcpu->arch.cr3 & ~31u, pdpte, sizeof(pdpte));
456 if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3))
545 && !load_pdptrs(vcpu, vcpu->arch.cr3))
563 int kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
565 if (cr3 == vcpu->arch.cr3 && !pdptrs_changed(vcpu)) {
572 if (cr3 & CR3_L_MODE_RESERVED_BITS)
576 if (cr3 & CR3_PAE_RESERVED_BITS)
578 if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3))
588 * Does the new cr3 value map to physical memory? (Note, we
589 * catch an invalid cr3 even in real-mode, because it would
592 * A real CPU would silently accept an invalid cr3 and would
596 if (unlikely(!gfn_to_memslot(vcpu->kvm, cr3 >> PAGE_SHIFT)))
598 vcpu->arch.cr3 = cr3;
3735 value = vcpu->arch.cr3;
5016 sregs->cr3 = vcpu->arch.cr3;
5095 mmu_reset_needed |= vcpu->arch.cr3 != sregs->cr3;
5096 vcpu->arch.cr3 = sregs->cr3;
5113 load_pdptrs(vcpu, vcpu->arch.cr3);