Message ID | 1404291637-15048-3-git-send-email-tangchen@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 02, 2014 at 05:00:35PM +0800, Tang Chen wrote: > Define guest phys_addr of apic access page. > --- > arch/x86/include/asm/vmx.h | 2 +- > arch/x86/kvm/svm.c | 3 ++- > arch/x86/kvm/vmx.c | 7 ++++--- > 3 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h > index 7004d21..c4672d1 100644 > --- a/arch/x86/include/asm/vmx.h > +++ b/arch/x86/include/asm/vmx.h > @@ -422,7 +422,7 @@ enum vmcs_field { > #define VMX_EPT_DIRTY_BIT (1ull << 9) > > #define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul > - > +#define VMX_APIC_ACCESS_PAGE_ADDR 0xfee00000ull > It has nothing to do with VMX and there is already define for that: APIC_DEFAULT_PHYS_BASE -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 07/03/2014 12:24 AM, Gleb Natapov wrote: > On Wed, Jul 02, 2014 at 05:00:35PM +0800, Tang Chen wrote: >> Define guest phys_addr of apic access page. >> --- >> arch/x86/include/asm/vmx.h | 2 +- >> arch/x86/kvm/svm.c | 3 ++- >> arch/x86/kvm/vmx.c | 7 ++++--- >> 3 files changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h >> index 7004d21..c4672d1 100644 >> --- a/arch/x86/include/asm/vmx.h >> +++ b/arch/x86/include/asm/vmx.h >> @@ -422,7 +422,7 @@ enum vmcs_field { >> #define VMX_EPT_DIRTY_BIT (1ull<< 9) >> >> #define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul >> - >> +#define VMX_APIC_ACCESS_PAGE_ADDR 0xfee00000ull >> > It has nothing to do with VMX and there is already define for that: APIC_DEFAULT_PHYS_BASE OK, followed. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h index 7004d21..c4672d1 100644 --- a/arch/x86/include/asm/vmx.h +++ b/arch/x86/include/asm/vmx.h @@ -422,7 +422,7 @@ enum vmcs_field { #define VMX_EPT_DIRTY_BIT (1ull << 9) #define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul - +#define VMX_APIC_ACCESS_PAGE_ADDR 0xfee00000ull #define ASM_VMX_VMCLEAR_RAX ".byte 0x66, 0x0f, 0xc7, 0x30" #define ASM_VMX_VMLAUNCH ".byte 0x0f, 0x01, 0xc2" diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index ec8366c..22aa2ae 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) svm->asid_generation = 0; init_vmcb(svm); - svm->vcpu.arch.apic_base = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; + svm->vcpu.arch.apic_base = VMX_APIC_ACCESS_PAGE_ADDR | + MSR_IA32_APICBASE_ENABLE; if (kvm_vcpu_is_bsp(&svm->vcpu)) svm->vcpu.arch.apic_base |= MSR_IA32_APICBASE_BSP; diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 801332e..366b5b3 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -3982,13 +3982,13 @@ static int alloc_apic_access_page(struct kvm *kvm) goto out; kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT; kvm_userspace_mem.flags = 0; - kvm_userspace_mem.guest_phys_addr = 0xfee00000ULL; + kvm_userspace_mem.guest_phys_addr = VMX_APIC_ACCESS_PAGE_ADDR; kvm_userspace_mem.memory_size = PAGE_SIZE; r = __kvm_set_memory_region(kvm, &kvm_userspace_mem); if (r) goto out; - page = gfn_to_page(kvm, 0xfee00); + page = gfn_to_page(kvm, VMX_APIC_ACCESS_PAGE_ADDR >> PAGE_SHIFT); if (is_error_page(page)) { r = -EFAULT; goto out; @@ -4460,7 +4460,8 @@ static void vmx_vcpu_reset(struct kvm_vcpu *vcpu) vmx->vcpu.arch.regs[VCPU_REGS_RDX] = get_rdx_init_val(); kvm_set_cr8(&vmx->vcpu, 0); - apic_base_msr.data = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; + apic_base_msr.data = VMX_APIC_ACCESS_PAGE_ADDR | + MSR_IA32_APICBASE_ENABLE; if (kvm_vcpu_is_bsp(&vmx->vcpu)) apic_base_msr.data |= MSR_IA32_APICBASE_BSP; apic_base_msr.host_initiated = true;