aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-31 16:09:11 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-31 16:09:11 +0100
commita561aacab7e9ef5aeab2173d23ad06ff45e36173 (patch)
treeb0b07519b08038fef1d90f62dec5ca5c1cbf02be
parent2aa3ae0fbf7b5b13b47ffcd1b790437d233f619a (diff)
downloadxen-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.c4
-rw-r--r--xen/arch/x86/hvm/vmx/vmx.c2
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