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-ia64-devel

[Xen-ia64-devel] [PATCH 1/7] libxc: improve foreign p2m exposure

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH 1/7] libxc: improve foreign p2m exposure
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Mon, 29 Sep 2008 21:50:02 +0900
Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Delivery-date: Mon, 29 Sep 2008 05:45:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
[IA64] libxc: improve foreign p2m exposure.

make foreign p2m exposure _PAGE_IO_BIT aware for robustness.

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

diff -r b0c391acef0d tools/libxc/ia64/xc_ia64_stubs.c
--- a/tools/libxc/ia64/xc_ia64_stubs.c  Mon Sep 29 20:51:02 2008 +0900
+++ b/tools/libxc/ia64/xc_ia64_stubs.c  Mon Sep 29 21:06:46 2008 +0900
@@ -153,6 +153,8 @@
 #define _PAGE_P                 (1UL << _PAGE_P_BIT)      /* page present bit 
*/
 #define _PAGE_PGC_ALLOCATED_BIT 59      /* _PGC_allocated */
 #define _PAGE_PGC_ALLOCATED     (1UL << _PAGE_PGC_ALLOCATED_BIT)
+#define _PAGE_IO_BIT            60
+#define _PAGE_IO                (1UL << _PAGE_IO_BIT)
 
 #define IA64_MAX_PHYS_BITS      50      /* max. number of physical address 
bits (architected) */
 #define _PAGE_PPN_MASK  (((1UL << IA64_MAX_PHYS_BITS) - 1) & ~0xfffUL)
@@ -160,8 +162,10 @@
 int
 xc_ia64_p2m_present(struct xen_ia64_p2m_table *p2m_table, unsigned long gpfn)
 {
-    if (sizeof(p2m_table->p2m[0]) * gpfn < p2m_table->size)
-        return !!(p2m_table->p2m[gpfn] & _PAGE_P);
+    if (sizeof(p2m_table->p2m[0]) * gpfn < p2m_table->size) {
+        unsigned long pte = p2m_table->p2m[gpfn];
+        return !!((pte & _PAGE_P) && !(pte & _PAGE_IO));
+    }
     return 0;
 }
 
@@ -170,7 +174,8 @@
 {
     if (sizeof(p2m_table->p2m[0]) * gpfn < p2m_table->size) {
         unsigned long pte = p2m_table->p2m[gpfn];
-        return !!((pte & _PAGE_P) && (pte & _PAGE_PGC_ALLOCATED));
+        return !!((pte & _PAGE_P) && (pte & _PAGE_PGC_ALLOCATED) &&
+                  !(pte & _PAGE_IO));
     }
     return 0;
 }
@@ -183,6 +188,8 @@
     if (sizeof(p2m_table->p2m[0]) * gpfn >= p2m_table->size)
         return INVALID_MFN;
     pte = p2m_table->p2m[gpfn];
+    if (pte & _PAGE_IO)
+        return INVALID_MFN;
     if (!(pte & _PAGE_P))
         return INVALID_MFN;
     return (pte & _PAGE_PPN_MASK) >> PAGE_SHIFT;

Attachment: tools-stack-p2m-page-io-bit.patch
Description: Text Data

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-ia64-devel] [PATCH 1/7] libxc: improve foreign p2m exposure, Isaku Yamahata <=