ia64/xen-unstable

changeset 12014:9c649ca5c1cc

[IA64] physical mode fix

1. use WB attribute to emulate UC guest physical page.
2. corretly handle GUEST_PHY_EMUL

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author awilliam@xenbuild.aw
date Tue Oct 31 22:25:40 2006 -0700 (2006-10-31)
parents 64ede00a004d
children 0a490cf4b21d
files xen/arch/ia64/vmx/vmx_phy_mode.c
line diff
     1.1 --- a/xen/arch/ia64/vmx/vmx_phy_mode.c	Tue Oct 31 22:25:35 2006 -0700
     1.2 +++ b/xen/arch/ia64/vmx/vmx_phy_mode.c	Tue Oct 31 22:25:40 2006 -0700
     1.3 @@ -113,10 +113,7 @@ physical_tlb_miss(VCPU *vcpu, u64 vadr, 
     1.4      ia64_rr rr;
     1.5      rr.rrval = ia64_get_rr(vadr);
     1.6      pte =  vadr& _PAGE_PPN_MASK;
     1.7 -    if (vadr >> 63)
     1.8 -        pte = pte | PHY_PAGE_UC;
     1.9 -    else
    1.10 -        pte = pte | PHY_PAGE_WB;
    1.11 +    pte = pte | PHY_PAGE_WB;
    1.12      thash_vhpt_insert(vcpu, pte, (rr.ps << 2), vadr, type);
    1.13      return;
    1.14  }
    1.15 @@ -347,10 +344,9 @@ prepare_if_physical_mode(VCPU *vcpu)
    1.16  void
    1.17  recover_if_physical_mode(VCPU *vcpu)
    1.18  {
    1.19 -    if (is_physical_mode(vcpu)) {
    1.20 -	vcpu->arch.mode_flags &= ~GUEST_PHY_EMUL;
    1.21 +    if (is_physical_mode(vcpu))
    1.22          switch_to_physical_rid(vcpu);
    1.23 -    }
    1.24 +    vcpu->arch.mode_flags &= ~GUEST_PHY_EMUL;
    1.25      return;
    1.26  }
    1.27