aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2014-09-11 01:38:00 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2014-09-11 05:10:22 -0400
commit73a6d9416279f138833574f11dc82134fb56908d (patch)
treede8a02e2a02e4e5f68c82aba8926825e35e7d127
parent2c69c1a32140262d5d6104ab96df2e52c08c1e93 (diff)
kvm: Use APIC_DEFAULT_PHYS_BASE macro as the apic access page address.
We have APIC_DEFAULT_PHYS_BASE defined as 0xfee00000, which is also the address of apic access page. So use this macro. Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com> Reviewed-by: Gleb Natapov <gleb@kernel.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--arch/x86/kvm/svm.c3
-rw-r--r--arch/x86/kvm/vmx.c6
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index d0a61a05a891..f7f6a4a157a6 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1257,7 +1257,8 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
1257 svm->asid_generation = 0; 1257 svm->asid_generation = 0;
1258 init_vmcb(svm); 1258 init_vmcb(svm);
1259 1259
1260 svm->vcpu.arch.apic_base = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; 1260 svm->vcpu.arch.apic_base = APIC_DEFAULT_PHYS_BASE |
1261 MSR_IA32_APICBASE_ENABLE;
1261 if (kvm_vcpu_is_bsp(&svm->vcpu)) 1262 if (kvm_vcpu_is_bsp(&svm->vcpu))
1262 svm->vcpu.arch.apic_base |= MSR_IA32_APICBASE_BSP; 1263 svm->vcpu.arch.apic_base |= MSR_IA32_APICBASE_BSP;
1263 1264
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 671ca5edc709..5db47db6574b 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -4023,13 +4023,13 @@ static int alloc_apic_access_page(struct kvm *kvm)
4023 goto out; 4023 goto out;
4024 kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT; 4024 kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT;
4025 kvm_userspace_mem.flags = 0; 4025 kvm_userspace_mem.flags = 0;
4026 kvm_userspace_mem.guest_phys_addr = 0xfee00000ULL; 4026 kvm_userspace_mem.guest_phys_addr = APIC_DEFAULT_PHYS_BASE;
4027 kvm_userspace_mem.memory_size = PAGE_SIZE; 4027 kvm_userspace_mem.memory_size = PAGE_SIZE;
4028 r = __kvm_set_memory_region(kvm, &kvm_userspace_mem); 4028 r = __kvm_set_memory_region(kvm, &kvm_userspace_mem);
4029 if (r) 4029 if (r)
4030 goto out; 4030 goto out;
4031 4031
4032 page = gfn_to_page(kvm, 0xfee00); 4032 page = gfn_to_page(kvm, APIC_DEFAULT_PHYS_BASE >> PAGE_SHIFT);
4033 if (is_error_page(page)) { 4033 if (is_error_page(page)) {
4034 r = -EFAULT; 4034 r = -EFAULT;
4035 goto out; 4035 goto out;
@@ -4502,7 +4502,7 @@ static void vmx_vcpu_reset(struct kvm_vcpu *vcpu)
4502 4502
4503 vmx->vcpu.arch.regs[VCPU_REGS_RDX] = get_rdx_init_val(); 4503 vmx->vcpu.arch.regs[VCPU_REGS_RDX] = get_rdx_init_val();
4504 kvm_set_cr8(&vmx->vcpu, 0); 4504 kvm_set_cr8(&vmx->vcpu, 0);
4505 apic_base_msr.data = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; 4505 apic_base_msr.data = APIC_DEFAULT_PHYS_BASE | MSR_IA32_APICBASE_ENABLE;
4506 if (kvm_vcpu_is_bsp(&vmx->vcpu)) 4506 if (kvm_vcpu_is_bsp(&vmx->vcpu))
4507 apic_base_msr.data |= MSR_IA32_APICBASE_BSP; 4507 apic_base_msr.data |= MSR_IA32_APICBASE_BSP;
4508 apic_base_msr.host_initiated = true; 4508 apic_base_msr.host_initiated = true;