diff options
author | Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> | 2011-11-28 07:42:16 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-12-27 04:22:09 -0500 |
commit | e459e3228dc57f7160e564ce0f09edb5bee656d3 (patch) | |
tree | aa3b61d28e69a094f0c7906de40c5fcdca38b3d6 /arch/x86 | |
parent | 9edb17d55f3ea4943f9654f2aad7a99b4c55840a (diff) |
KVM: MMU: move the relevant mmu code to mmu.c
Move the mmu code in kvm_arch_vcpu_init() to kvm_mmu_create()
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 6 | ||||
-rw-r--r-- | arch/x86/kvm/mmu.c | 6 | ||||
-rw-r--r-- | arch/x86/kvm/x86.c | 11 |
3 files changed, 12 insertions, 11 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 1769f3dde61..020413afb28 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h | |||
@@ -752,6 +752,7 @@ void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu); | |||
752 | int kvm_mmu_load(struct kvm_vcpu *vcpu); | 752 | int kvm_mmu_load(struct kvm_vcpu *vcpu); |
753 | void kvm_mmu_unload(struct kvm_vcpu *vcpu); | 753 | void kvm_mmu_unload(struct kvm_vcpu *vcpu); |
754 | void kvm_mmu_sync_roots(struct kvm_vcpu *vcpu); | 754 | void kvm_mmu_sync_roots(struct kvm_vcpu *vcpu); |
755 | gpa_t translate_nested_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access); | ||
755 | gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva, | 756 | gpa_t kvm_mmu_gva_to_gpa_read(struct kvm_vcpu *vcpu, gva_t gva, |
756 | struct x86_exception *exception); | 757 | struct x86_exception *exception); |
757 | gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva, | 758 | gpa_t kvm_mmu_gva_to_gpa_fetch(struct kvm_vcpu *vcpu, gva_t gva, |
@@ -773,6 +774,11 @@ void kvm_disable_tdp(void); | |||
773 | int complete_pio(struct kvm_vcpu *vcpu); | 774 | int complete_pio(struct kvm_vcpu *vcpu); |
774 | bool kvm_check_iopl(struct kvm_vcpu *vcpu); | 775 | bool kvm_check_iopl(struct kvm_vcpu *vcpu); |
775 | 776 | ||
777 | static inline gpa_t translate_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access) | ||
778 | { | ||
779 | return gpa; | ||
780 | } | ||
781 | |||
776 | static inline struct kvm_mmu_page *page_header(hpa_t shadow_page) | 782 | static inline struct kvm_mmu_page *page_header(hpa_t shadow_page) |
777 | { | 783 | { |
778 | struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); | 784 | struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); |
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 62f69dbf6b5..262a3af1f0e 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
@@ -3839,7 +3839,11 @@ static int alloc_mmu_pages(struct kvm_vcpu *vcpu) | |||
3839 | int kvm_mmu_create(struct kvm_vcpu *vcpu) | 3839 | int kvm_mmu_create(struct kvm_vcpu *vcpu) |
3840 | { | 3840 | { |
3841 | ASSERT(vcpu); | 3841 | ASSERT(vcpu); |
3842 | ASSERT(!VALID_PAGE(vcpu->arch.mmu.root_hpa)); | 3842 | |
3843 | vcpu->arch.walk_mmu = &vcpu->arch.mmu; | ||
3844 | vcpu->arch.mmu.root_hpa = INVALID_PAGE; | ||
3845 | vcpu->arch.mmu.translate_gpa = translate_gpa; | ||
3846 | vcpu->arch.nested_mmu.translate_gpa = translate_nested_gpa; | ||
3843 | 3847 | ||
3844 | return alloc_mmu_pages(vcpu); | 3848 | return alloc_mmu_pages(vcpu); |
3845 | } | 3849 | } |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 465053151a2..d99976e4451 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -3430,12 +3430,7 @@ void kvm_get_segment(struct kvm_vcpu *vcpu, | |||
3430 | kvm_x86_ops->get_segment(vcpu, var, seg); | 3430 | kvm_x86_ops->get_segment(vcpu, var, seg); |
3431 | } | 3431 | } |
3432 | 3432 | ||
3433 | static gpa_t translate_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access) | 3433 | gpa_t translate_nested_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access) |
3434 | { | ||
3435 | return gpa; | ||
3436 | } | ||
3437 | |||
3438 | static gpa_t translate_nested_gpa(struct kvm_vcpu *vcpu, gpa_t gpa, u32 access) | ||
3439 | { | 3434 | { |
3440 | gpa_t t_gpa; | 3435 | gpa_t t_gpa; |
3441 | struct x86_exception exception; | 3436 | struct x86_exception exception; |
@@ -5915,10 +5910,6 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) | |||
5915 | kvm = vcpu->kvm; | 5910 | kvm = vcpu->kvm; |
5916 | 5911 | ||
5917 | vcpu->arch.emulate_ctxt.ops = &emulate_ops; | 5912 | vcpu->arch.emulate_ctxt.ops = &emulate_ops; |
5918 | vcpu->arch.walk_mmu = &vcpu->arch.mmu; | ||
5919 | vcpu->arch.mmu.root_hpa = INVALID_PAGE; | ||
5920 | vcpu->arch.mmu.translate_gpa = translate_gpa; | ||
5921 | vcpu->arch.nested_mmu.translate_gpa = translate_nested_gpa; | ||
5922 | if (!irqchip_in_kernel(kvm) || kvm_vcpu_is_bsp(vcpu)) | 5913 | if (!irqchip_in_kernel(kvm) || kvm_vcpu_is_bsp(vcpu)) |
5923 | vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; | 5914 | vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; |
5924 | else | 5915 | else |