direct-io.hg
changeset 7752:7fd6dff1631d
Don't panic for (rare) dom0 physaddr with uncacheable attribute
author | djm@kirby.fc.hp.com |
---|---|
date | Wed Nov 09 14:11:31 2005 -0600 (2005-11-09) |
parents | 8ddc812626b2 |
children | be53bbe62f2e |
files | xen/arch/ia64/xen/vcpu.c |
line diff
1.1 --- a/xen/arch/ia64/xen/vcpu.c Wed Nov 09 12:59:28 2005 -0600 1.2 +++ b/xen/arch/ia64/xen/vcpu.c Wed Nov 09 14:11:31 2005 -0600 1.3 @@ -1296,9 +1296,12 @@ IA64FAULT vcpu_translate(VCPU *vcpu, UIN 1.4 TR_ENTRY *trp; 1.5 1.6 if (PSCB(vcpu,metaphysical_mode)) { 1.7 - if (address >> 61) // FIXME: need more precise check here 1.8 + unsigned long region = address >> 61; 1.9 + // dom0 may generate an uncacheable physical address (msb=1) 1.10 + if (region && ((region != 4) || (vcpu->domain != dom0))) { 1.11 panic_domain(vcpu_regs(vcpu), 1.12 - "vcpu_translate: bad physical address\n"); 1.13 + "vcpu_translate: bad physical address: %p\n",address); 1.14 + } 1.15 *pteval = (address & _PAGE_PPN_MASK) | __DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX; 1.16 *itir = PAGE_SHIFT << 2; 1.17 phys_translate_count++;