WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Fix problem if itlb miss occurs when in metaphysical mod

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Fix problem if itlb miss occurs when in metaphysical mode
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sun, 20 Nov 2005 12:58:08 +0000
Delivery-date: Sun, 20 Nov 2005 12:58:35 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID ee15a2ae7f248aac26cf5a53fa6911d19375ef89
# Parent  5e142e1f41e61f76b2d77947ca5d0a6aabf334b8
Fix problem if itlb miss occurs when in metaphysical mode

diff -r 5e142e1f41e6 -r ee15a2ae7f24 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Mon Nov 14 17:41:41 2005
+++ b/xen/arch/ia64/xen/vcpu.c  Wed Nov 16 22:44:49 2005
@@ -1290,12 +1290,12 @@
 
 IA64FAULT vcpu_translate(VCPU *vcpu, UINT64 address, BOOLEAN is_data, UINT64 
*pteval, UINT64 *itir, UINT64 *iha)
 {
+       unsigned long region = address >> 61;
        unsigned long pta, pte, rid, rr;
        int i;
        TR_ENTRY *trp;
 
-       if (PSCB(vcpu,metaphysical_mode)) {
-               unsigned long region = address >> 61;
+       if (PSCB(vcpu,metaphysical_mode) && !(!is_data && region)) {
                // 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
@@ -1309,7 +1309,7 @@
                phys_translate_count++;
                return IA64_NO_FAULT;
        }
-       else if (!(address >> 61) && warn_region0_address) {
+       else if (!region && warn_region0_address) {
                REGS *regs = vcpu_regs(vcpu);
                unsigned long viip = PSCB(vcpu,iip);
                unsigned long vipsr = PSCB(vcpu,ipsr);
@@ -1318,7 +1318,7 @@
                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];
+       rr = PSCB(vcpu,rrs)[region];
        rid = rr & RR_RID_MASK;
        if (is_data) {
                if (vcpu_quick_region_check(vcpu->arch.dtr_regions,address)) {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Fix problem if itlb miss occurs when in metaphysical mode, Xen patchbot -unstable <=