aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm.c
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-12-05 10:30:00 -0500
committerAvi Kivity <avi@redhat.com>2011-01-12 04:31:15 -0500
commit9f8fe5043fd26627c2fa2e9a41896885e675000b (patch)
treee81d03d82d78903bde7c390461d46c8f937cb931 /arch/x86/kvm/svm.c
parente49146dce8c3dc6f4485c1904b6587855f393e71 (diff)
KVM: Replace reads of vcpu->arch.cr3 by an accessor
This allows us to keep cr3 in the VMCS, later on. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r--arch/x86/kvm/svm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index af4b911a8bed..a7b04c0bd7a5 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1174,7 +1174,7 @@ static void svm_cache_reg(struct kvm_vcpu *vcpu, enum kvm_reg reg)
1174 switch (reg) { 1174 switch (reg) {
1175 case VCPU_EXREG_PDPTR: 1175 case VCPU_EXREG_PDPTR:
1176 BUG_ON(!npt_enabled); 1176 BUG_ON(!npt_enabled);
1177 load_pdptrs(vcpu, vcpu->arch.walk_mmu, vcpu->arch.cr3); 1177 load_pdptrs(vcpu, vcpu->arch.walk_mmu, kvm_read_cr3(vcpu));
1178 break; 1178 break;
1179 default: 1179 default:
1180 BUG(); 1180 BUG();
@@ -2116,7 +2116,7 @@ static int nested_svm_vmexit(struct vcpu_svm *svm)
2116 nested_vmcb->save.idtr = vmcb->save.idtr; 2116 nested_vmcb->save.idtr = vmcb->save.idtr;
2117 nested_vmcb->save.efer = svm->vcpu.arch.efer; 2117 nested_vmcb->save.efer = svm->vcpu.arch.efer;
2118 nested_vmcb->save.cr0 = kvm_read_cr0(&svm->vcpu); 2118 nested_vmcb->save.cr0 = kvm_read_cr0(&svm->vcpu);
2119 nested_vmcb->save.cr3 = svm->vcpu.arch.cr3; 2119 nested_vmcb->save.cr3 = kvm_read_cr3(&svm->vcpu);
2120 nested_vmcb->save.cr2 = vmcb->save.cr2; 2120 nested_vmcb->save.cr2 = vmcb->save.cr2;
2121 nested_vmcb->save.cr4 = svm->vcpu.arch.cr4; 2121 nested_vmcb->save.cr4 = svm->vcpu.arch.cr4;
2122 nested_vmcb->save.rflags = vmcb->save.rflags; 2122 nested_vmcb->save.rflags = vmcb->save.rflags;
@@ -2311,7 +2311,7 @@ static bool nested_svm_vmrun(struct vcpu_svm *svm)
2311 if (npt_enabled) 2311 if (npt_enabled)
2312 hsave->save.cr3 = vmcb->save.cr3; 2312 hsave->save.cr3 = vmcb->save.cr3;
2313 else 2313 else
2314 hsave->save.cr3 = svm->vcpu.arch.cr3; 2314 hsave->save.cr3 = kvm_read_cr3(&svm->vcpu);
2315 2315
2316 copy_vmcb_control_area(hsave, vmcb); 2316 copy_vmcb_control_area(hsave, vmcb);
2317 2317
@@ -2715,7 +2715,7 @@ static int cr_interception(struct vcpu_svm *svm)
2715 val = svm->vcpu.arch.cr2; 2715 val = svm->vcpu.arch.cr2;
2716 break; 2716 break;
2717 case 3: 2717 case 3:
2718 val = svm->vcpu.arch.cr3; 2718 val = kvm_read_cr3(&svm->vcpu);
2719 break; 2719 break;
2720 case 4: 2720 case 4:
2721 val = kvm_read_cr4(&svm->vcpu); 2721 val = kvm_read_cr4(&svm->vcpu);
@@ -3693,7 +3693,7 @@ static void set_tdp_cr3(struct kvm_vcpu *vcpu, unsigned long root)
3693 mark_dirty(svm->vmcb, VMCB_NPT); 3693 mark_dirty(svm->vmcb, VMCB_NPT);
3694 3694
3695 /* Also sync guest cr3 here in case we live migrate */ 3695 /* Also sync guest cr3 here in case we live migrate */
3696 svm->vmcb->save.cr3 = vcpu->arch.cr3; 3696 svm->vmcb->save.cr3 = kvm_read_cr3(vcpu);
3697 mark_dirty(svm->vmcb, VMCB_CR); 3697 mark_dirty(svm->vmcb, VMCB_CR);
3698 3698
3699 svm_flush_tlb(vcpu); 3699 svm_flush_tlb(vcpu);