diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-31 16:09:11 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-31 16:09:11 +0100 |
commit | a561aacab7e9ef5aeab2173d23ad06ff45e36173 (patch) | |
tree | b0b07519b08038fef1d90f62dec5ca5c1cbf02be | |
parent | 2aa3ae0fbf7b5b13b47ffcd1b790437d233f619a (diff) | |
download | xen-a561aacab7e9ef5aeab2173d23ad06ff45e36173.tar.gz xen-a561aacab7e9ef5aeab2173d23ad06ff45e36173.tar.bz2 xen-a561aacab7e9ef5aeab2173d23ad06ff45e36173.zip |
VMX: Only write top-half of machine addresses into VMCS fields in PAE mode.
Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r-- | xen/arch/x86/hvm/vmx/vmcs.c | 4 | ||||
-rw-r--r-- | xen/arch/x86/hvm/vmx/vmx.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c index 413981c061..a59fd6ba25 100644 --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -438,9 +438,9 @@ static void construct_vmcs(struct vcpu *v) if ( cpu_has_vmx_tpr_shadow ) { - uint64_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page); + paddr_t virt_page_ma = page_to_maddr(vcpu_vlapic(v)->regs_page); __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma); -#if defined (__i386__) +#if defined (CONFIG_X86_PAE) __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32); #endif __vmwrite(TPR_THRESHOLD, 0); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 2aff3d295a..d2eff79d10 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -2540,7 +2540,7 @@ static void vmx_install_vlapic_mapping(struct vcpu *v) vmx_vmcs_enter(v); __vmwrite(VIRTUAL_APIC_PAGE_ADDR, virt_page_ma); __vmwrite(APIC_ACCESS_ADDR, apic_page_ma); -#if defined (__i386__) +#if defined (CONFIG_X86_PAE) __vmwrite(VIRTUAL_APIC_PAGE_ADDR_HIGH, virt_page_ma >> 32); __vmwrite(APIC_ACCESS_ADDR_HIGH, apic_page_ma >> 32); #endif |