Lines Matching defs:cr0
913 static bool kvm_is_valid_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
916 if (cr0 & 0xffffffff00000000UL)
920 if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD))
923 if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE))
926 return static_call(kvm_x86_is_valid_cr0)(vcpu, cr0);
929 void kvm_post_set_cr0(struct kvm_vcpu *vcpu, unsigned long old_cr0, unsigned long cr0)
939 if ((cr0 ^ old_cr0) == X86_CR0_WP) {
940 if (!(cr0 & X86_CR0_PG))
949 if ((cr0 ^ old_cr0) & X86_CR0_PG) {
957 if (!(cr0 & X86_CR0_PG))
961 if ((cr0 ^ old_cr0) & KVM_MMU_CR0_ROLE_BITS)
964 if (((cr0 ^ old_cr0) & X86_CR0_CD) &&
971 int kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
975 if (!kvm_is_valid_cr0(vcpu, cr0))
978 cr0 |= X86_CR0_ET;
981 cr0 &= ~CR0_RESERVED_BITS;
985 (cr0 & X86_CR0_PG)) {
995 if (!(vcpu->arch.efer & EFER_LME) && (cr0 & X86_CR0_PG) &&
996 is_pae(vcpu) && ((cr0 ^ old_cr0) & X86_CR0_PDPTR_BITS) &&
1000 if (!(cr0 & X86_CR0_PG) &&
1004 static_call(kvm_x86_set_cr0)(vcpu, cr0);
1006 kvm_post_set_cr0(vcpu, old_cr0, cr0);
11335 sregs->cr0 = kvm_read_cr0(vcpu);
11480 if ((sregs->efer & EFER_LME) && (sregs->cr0 & X86_CR0_PG)) {
11500 kvm_is_valid_cr0(vcpu, sregs->cr0);
11539 *mmu_reset_needed |= kvm_read_cr0(vcpu) != sregs->cr0;
11540 static_call(kvm_x86_set_cr0)(vcpu, sregs->cr0);
11541 vcpu->arch.cr0 = sregs->cr0;
11604 bool pae = (sregs2->cr0 & X86_CR0_PG) && (sregs2->cr4 & X86_CR4_PAE) &&