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] [xen-3.4-testing] stubdom: mmap on /dev/mem support

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-3.4-testing] stubdom: mmap on /dev/mem support
From: "Xen patchbot-3.4-testing" <patchbot-3.4-testing@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Oct 2009 02:40:41 -0700
Delivery-date: Fri, 23 Oct 2009 02:42:35 -0700
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/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/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 Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1256290137 -3600
# Node ID 2d8e3fca36df6dc0ba3d14d753f64c66d4763a72
# Parent  4156fbc48a4508c26ca61a32ab767b050565bd2d
stubdom: mmap on /dev/mem support

This patch adds support for mmap on /dev/mem in a stubdom; it is
secure because it only works for memory areas that have been
explicitly allowed by the toolstack (xc_domain_iomem_permission).
Incidentally this is all that is needed to make MSI-X passthrough work
with stubdoms.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
xen-unstable changeset:   20354:37829fd7c1e3
xen-unstable date:        Wed Oct 21 16:08:28 2009 +0100

minios: Optimize mmap(open("/dev/mem"))

Set map_frames_ex's stride parameter to 0 and increment to 1 to avoid
building an explicit list of mfns.

Signed-Off-By: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
xen-unstable changeset:   20355:4a65bd76e09b
xen-unstable date:        Fri Oct 23 09:59:45 2009 +0100
---
 extras/mini-os/include/lib.h |    1 +
 extras/mini-os/lib/sys.c     |    9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff -r 4156fbc48a45 -r 2d8e3fca36df extras/mini-os/include/lib.h
--- a/extras/mini-os/include/lib.h      Fri Oct 23 10:25:10 2009 +0100
+++ b/extras/mini-os/include/lib.h      Fri Oct 23 10:28:57 2009 +0100
@@ -145,6 +145,7 @@ enum fd_type {
     FTYPE_BLK,
     FTYPE_KBD,
     FTYPE_FB,
+    FTYPE_MEM,
 };
 
 #define MAX_EVTCHN_PORTS 16
diff -r 4156fbc48a45 -r 2d8e3fca36df extras/mini-os/lib/sys.c
--- a/extras/mini-os/lib/sys.c  Fri Oct 23 10:25:10 2009 +0100
+++ b/extras/mini-os/lib/sys.c  Fri Oct 23 10:28:57 2009 +0100
@@ -174,6 +174,11 @@ int open(const char *pathname, int flags
     if (!strncmp(pathname,LOG_PATH,strlen(LOG_PATH))) {
        fd = alloc_fd(FTYPE_CONSOLE);
         printk("open(%s) -> %d\n", pathname, fd);
+        return fd;
+    }
+    if (!strncmp(pathname, "/dev/mem", strlen("/dev/mem"))) {
+        fd = alloc_fd(FTYPE_MEM);
+        printk("open(/dev/mem) -> %d\n", fd);
         return fd;
     }
     printk("open(%s, %x)", pathname, flags);
@@ -1198,13 +1203,15 @@ void *mmap(void *start, size_t length, i
     ASSERT(prot == (PROT_READ|PROT_WRITE));
     ASSERT((fd == -1 && (flags == (MAP_SHARED|MAP_ANON) || flags == 
(MAP_PRIVATE|MAP_ANON)))
         || (fd != -1 && flags == MAP_SHARED));
-    ASSERT(offset == 0);
 
     if (fd == -1)
         return map_zero(n, 1);
     else if (files[fd].type == FTYPE_XC) {
         unsigned long zero = 0;
         return map_frames_ex(&zero, n, 0, 0, 1, DOMID_SELF, 0, 0);
+    } else if (files[fd].type == FTYPE_MEM) {
+        unsigned long first_mfn = offset >> PAGE_SHIFT;
+        return map_frames_ex(&first_mfn, n, 0, 1, 1, DOMID_IO, 0, 
_PAGE_PRESENT|_PAGE_RW);
     } else ASSERT(0);
 }
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-3.4-testing] stubdom: mmap on /dev/mem support, Xen patchbot-3.4-testing <=