Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb764416 authored by Rusty Russell's avatar Rusty Russell Committed by Avi Kivity
Browse files

KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last



sSigned-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 002c7f7c
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -579,7 +579,6 @@ void set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
		}
	}

	vcpu->cr3 = cr3;
	mutex_lock(&vcpu->kvm->lock);
	/*
	 * Does the new cr3 value map to physical memory? (Note, we
@@ -592,8 +591,10 @@ void set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
	 */
	if (unlikely(!gfn_to_memslot(vcpu->kvm, cr3 >> PAGE_SHIFT)))
		inject_gp(vcpu);
	else
	else {
		vcpu->cr3 = cr3;
		vcpu->mmu.new_cr3(vcpu);
	}
	mutex_unlock(&vcpu->kvm->lock);
}
EXPORT_SYMBOL_GPL(set_cr3);