ia64/xen-unstable

changeset 13900:dea561992abe

[IA64] Avoid recursively walking guest short VHPT

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
author awilliam@xenbuild2.aw
date Mon Feb 12 09:54:20 2007 -0700 (2007-02-12)
parents 81c4f90695a8
children 46a8d51134d0
files xen/arch/ia64/vmx/vmx_process.c
line diff
     1.1 --- a/xen/arch/ia64/vmx/vmx_process.c	Mon Feb 12 09:48:56 2007 -0700
     1.2 +++ b/xen/arch/ia64/vmx/vmx_process.c	Mon Feb 12 09:54:20 2007 -0700
     1.3 @@ -353,6 +353,18 @@ vmx_hpw_miss(u64 vadr , u64 vec, REGS* r
     1.4              }
     1.5          }
     1.6  
     1.7 +        /* avoid recursively walking (short format) VHPT */
     1.8 +        if ((((vadr ^ vpta.val) << 3) >> (vpta.size + 3)) == 0) {
     1.9 +            if (vpsr.ic) {
    1.10 +                vcpu_set_isr(v, misr.val);
    1.11 +                dtlb_fault(v, vadr);
    1.12 +                return IA64_FAULT;
    1.13 +            } else {
    1.14 +                nested_dtlb(v);
    1.15 +                return IA64_FAULT;
    1.16 +            }
    1.17 +        }
    1.18 +            
    1.19          vmx_vcpu_thash(v, vadr, &vhpt_adr);
    1.20          if (!guest_vhpt_lookup(vhpt_adr, &pteval)) {
    1.21              /* VHPT successfully read.  */