[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] On suspend, canonicalize store and console mfns in the guest.



# HG changeset patch
# User cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID ff14bb5600c9c7b23b4aff1b277fc731f6c4a622
# Parent  1f460d0fd6c672a573b825a28200715011ba982d
On suspend, canonicalize store and console mfns in the guest.
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>

diff -r 1f460d0fd6c6 -r ff14bb5600c9 
linux-2.6-xen-sparse/arch/xen/kernel/reboot.c
--- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Mon Sep  5 14:54:05 2005
+++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c     Mon Sep  5 15:32:14 2005
@@ -177,6 +177,9 @@
     HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
     clear_fixmap(FIX_SHARED_INFO);
 
+    xen_start_info.store_mfn = mfn_to_pfn(xen_start_info.store_mfn);
+    xen_start_info.console_mfn = mfn_to_pfn(xen_start_info.console_mfn);
+
     /* We'll stop somewhere inside this hypercall.  When it returns,
        we'll start resuming after the restore. */
     HYPERVISOR_suspend(virt_to_mfn(xen_start_info));
diff -r 1f460d0fd6c6 -r ff14bb5600c9 tools/libxc/xc_linux_save.c
--- a/tools/libxc/xc_linux_save.c       Mon Sep  5 14:54:05 2005
+++ b/tools/libxc/xc_linux_save.c       Mon Sep  5 15:32:14 2005
@@ -434,9 +434,6 @@
     /* base of the region in which domain memory is mapped */
     unsigned char *region_base = NULL;
 
-    /* A temporary mapping of the guest's start_info page. */
-    start_info_t *start_info = NULL;
-
     /* number of pages we're dealing with */
     unsigned long nr_pfns;
 
@@ -667,28 +664,6 @@
     if (write(io_fd, pfn_to_mfn_frame_list, PAGE_SIZE) != PAGE_SIZE) {
         ERR("write: pfn_to_mfn_frame_list");
         goto out;
-    }
-
-    /* Map the suspend-record MFN to pin it. The page must be owned by 
-       dom for this to succeed. */
-    start_info = xc_map_foreign_range(xc_handle, dom, PAGE_SIZE,
-                                     PROT_READ | PROT_WRITE, 
-                                     ctxt.user_regs.esi);
-    if (!start_info){
-        ERR("Couldn't map start_info page");
-        goto out;
-    }
-
-    /* Canonicalize store mfn. */
-    if ( !translate_mfn_to_pfn(&start_info->store_mfn) ) {
-       ERR("Store frame is not in range of pseudophys map");
-       goto out;
-    }
-
-    /* Canonicalize console mfn. */
-    if ( !translate_mfn_to_pfn(&start_info->console_mfn) ) {
-       ERR("Console frame is not in range of pseudophys map");
-       goto out;
     }
 
     print_stats( xc_handle, dom, 0, &stats, 0 );
@@ -1062,9 +1037,6 @@
     if(live_shinfo)
         munmap(live_shinfo, PAGE_SIZE);
 
-    if(start_info) 
-        munmap(start_info, PAGE_SIZE);
-
     if(live_pfn_to_mfn_frame_list) 
         munmap(live_pfn_to_mfn_frame_list, PAGE_SIZE);
 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.