ia64/xen-unstable

changeset 7667: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++;