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] [IA64] translate_domain_pte must handle ED bit and ignre

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [IA64] translate_domain_pte must handle ED bit and ignre bit[63:53]
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 27 Apr 2006 10:32:51 +0000
Delivery-date: Thu, 27 Apr 2006 03:42:17 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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 awilliam@xxxxxxxxxxx
# Node ID bbf325d767687745c6838ac43fe48692b6792e54
# Parent  bd264ded5becccb904ce64c771e3853cca6abeef
[IA64] translate_domain_pte must handle ED bit and ignre bit[63:53]

made translate_domain_pte() aware _PAGE_ED bits.
_PAGE_PPN_MASK doesn't mask ED bit.
ED bit must be handled explicitly.
This case can occur by vcpu_itc_d().

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

diff -r bd264ded5bec -r bbf325d76768 xen/arch/ia64/xen/process.c
--- a/xen/arch/ia64/xen/process.c       Fri Apr 21 09:11:46 2006 -0600
+++ b/xen/arch/ia64/xen/process.c       Fri Apr 21 09:20:13 2006 -0600
@@ -87,9 +87,12 @@ unsigned long translate_domain_pte(unsig
        struct domain *d = current->domain;
        unsigned long mask, pteval2, mpaddr;
 
+       pteval &= ((1UL << 53) - 1);// ignore [63:53] bits
+
        // FIXME address had better be pre-validated on insert
        mask = ~itir_mask(itir);
-       mpaddr = ((pteval & _PAGE_PPN_MASK) & ~mask) | (address & mask);
+       mpaddr = (((pteval & ~_PAGE_ED) & _PAGE_PPN_MASK) & ~mask) |
+                (address & mask);
        if (d == dom0) {
                if (mpaddr < dom0_start || mpaddr >= dom0_start + dom0_size) {
                        /*
@@ -114,6 +117,7 @@ unsigned long translate_domain_pte(unsig
        }
        pteval2 = lookup_domain_mpa(d,mpaddr);
        pteval2 &= _PAGE_PPN_MASK; // ignore non-addr bits
+       pteval2 |= (pteval & _PAGE_ED);
        pteval2 |= _PAGE_PL_2; // force PL0->2 (PL3 is unaffected)
        pteval2 = (pteval & ~_PAGE_PPN_MASK) | pteval2;
        return pteval2;

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] translate_domain_pte must handle ED bit and ignre bit[63:53], Xen patchbot -unstable <=