[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Back out partial fix in ia64-unstable 7665/7/8, breaks Debian boot
# HG changeset patch # User djm@xxxxxxxxxxxxxxx # Node ID 5b2d9807725d1572857fa08a1fd6d0dbdc9e11d4 # Parent be53bbe62f2e7e9f6c39eecca6e505240212e88c Back out partial fix in ia64-unstable 7665/7/8, breaks Debian boot diff -r be53bbe62f2e -r 5b2d9807725d xen/arch/ia64/xen/vcpu.c --- a/xen/arch/ia64/xen/vcpu.c Wed Nov 9 21:31:01 2005 +++ b/xen/arch/ia64/xen/vcpu.c Thu Nov 10 14:10:18 2005 @@ -1287,36 +1287,26 @@ unsigned long recover_to_page_fault_count = 0; unsigned long recover_to_break_fault_count = 0; -int warn_region0_address = 0; // FIXME later: tie to a boot parameter? - IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 *pteval, UINT64 *itir, UINT64 *iha) { unsigned long pta, pte, rid, rr; int i; TR_ENTRY *trp; - if (PSCB(vcpu,metaphysical_mode)) { - unsigned long region = address >> 61; - // dom0 may generate an uncacheable physical address (msb=1) - if (region && ((region != 4) || (vcpu->domain != dom0))) { -// FIXME: This seems to happen even though it shouldn't. Need to track -// this down, but since it has been apparently harmless, just flag it for now -// panic_domain(vcpu_regs(vcpu), - printk( - "vcpu_translate: bad physical address: %p\n",address); + if (!(address >> 61)) { + if (!PSCB(vcpu,metaphysical_mode)) { + REGS *regs = vcpu_regs(vcpu); + unsigned long viip = PSCB(vcpu,iip); + unsigned long vipsr = PSCB(vcpu,ipsr); + unsigned long iip = regs->cr_iip; + unsigned long ipsr = regs->cr_ipsr; + printk("vcpu_translate: bad address %p, viip=%p, vipsr=%p, iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr); } + *pteval = (address & _PAGE_PPN_MASK) | __DIRTY_BITS | _PAGE_PL_2 | _PAGE_AR_RWX; *itir = PAGE_SHIFT << 2; phys_translate_count++; return IA64_NO_FAULT; - } - else if (!(address >> 61) && warn_region0_address) { - REGS *regs = vcpu_regs(vcpu); - unsigned long viip = PSCB(vcpu,iip); - unsigned long vipsr = PSCB(vcpu,ipsr); - unsigned long iip = regs->cr_iip; - unsigned long ipsr = regs->cr_ipsr; - printk("vcpu_translate: bad address %p, viip=%p, vipsr=%p, iip=%p, ipsr=%p continuing\n", address, viip, vipsr, iip, ipsr); } rr = PSCB(vcpu,rrs)[address>>61]; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |