diff options
author | Avi Kivity <avi@redhat.com> | 2010-12-05 10:30:00 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-01-12 04:31:15 -0500 |
commit | 9f8fe5043fd26627c2fa2e9a41896885e675000b (patch) | |
tree | e81d03d82d78903bde7c390461d46c8f937cb931 /arch/x86/kvm/svm.c | |
parent | e49146dce8c3dc6f4485c1904b6587855f393e71 (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.c | 10 |
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); |