From: Rusty Russell Date: Tue, 31 Jul 2007 10:45:03 +0000 (+1000) Subject: KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last X-Git-Tag: v2.6.24-rc1~1365^2~64 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb764416492a1204c20fdf4507019012d27bd1a2;p=linux-2.6 KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last sSigned-off-by: Rusty Russell Signed-off-by: Avi Kivity --- diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 2be6b1ca1a..5dc6017027 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c @@ -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);