aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/kvm_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/kvm/kvm_main.c')
-rw-r--r--drivers/kvm/kvm_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 2be6b1ca1a06..5dc601702782 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)
579 } 579 }
580 } 580 }
581 581
582 vcpu->cr3 = cr3;
583 mutex_lock(&vcpu->kvm->lock); 582 mutex_lock(&vcpu->kvm->lock);
584 /* 583 /*
585 * Does the new cr3 value map to physical memory? (Note, we 584 * 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)
592 */ 591 */
593 if (unlikely(!gfn_to_memslot(vcpu->kvm, cr3 >> PAGE_SHIFT))) 592 if (unlikely(!gfn_to_memslot(vcpu->kvm, cr3 >> PAGE_SHIFT)))
594 inject_gp(vcpu); 593 inject_gp(vcpu);
595 else 594 else {
595 vcpu->cr3 = cr3;
596 vcpu->mmu.new_cr3(vcpu); 596 vcpu->mmu.new_cr3(vcpu);
597 }
597 mutex_unlock(&vcpu->kvm->lock); 598 mutex_unlock(&vcpu->kvm->lock);
598} 599}
599EXPORT_SYMBOL_GPL(set_cr3); 600EXPORT_SYMBOL_GPL(set_cr3);