Tidy up the restore path following HVM save/restore patches.
authorEwan Mellor <ewan@xensource.com>
Fri, 19 Jan 2007 10:12:39 +0000 (10:12 +0000)
committerEwan Mellor <ewan@xensource.com>
Fri, 19 Jan 2007 10:12:39 +0000 (10:12 +0000)
Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/python/xen/xend/XendCheckpoint.py

index 1aa2d0bc88a3406503d8b78a350a31679a7a8db1..ae0ffee917523e3e8b2577bcac9cfb02c01db756 100644 (file)
@@ -175,29 +175,24 @@ def restore(xd, fd, dominfo = None, paused = False):
     nr_pfns = (dominfo.getMemoryTarget() + 3) / 4 
 
     # if hvm, pass mem size to calculate the store_mfn
-    hvm  = 0
-    apic = 0
-    pae  = 0
     image_cfg = dominfo.info.get('image', {})
-    hvm  = image_cfg.has_key('hvm')
-    if hvm:
-        # the 'memory' in config has been removed
+    is_hvm  = image_cfg.has_key('hvm')
+    if is_hvm:
         hvm  = dominfo.info['memory_static_min']
         apic = dominfo.info['image']['hvm'].get('apic', 0)
         pae  = dominfo.info['image']['hvm'].get('pae',  0)
         log.info("restore hvm domain %d, mem=%d, apic=%d, pae=%d",
                  dominfo.domid, hvm, apic, pae)
+    else:
+        hvm  = 0
+        apic = 0
+        pae  = 0
 
     try:
-        if hvm:
-            l = read_exact(fd, sizeof_unsigned_int,
-                           "not a valid hvm guest state file: pfn count read")
-            nr_pfns = unpack("I", l)[0]    # native sizeof int
-        else: 
-            l = read_exact(fd, sizeof_unsigned_long,
-                           "not a valid guest state file: pfn count read")
-
+        l = read_exact(fd, sizeof_unsigned_long,
+                       "not a valid guest state file: pfn count read")
         max_pfn = unpack("L", l)[0]    # native sizeof long
+
         if max_pfn > 16*1024*1024:     # XXX 
             raise XendError(
                 "not a valid guest state file: pfn count out of range")
@@ -208,7 +203,6 @@ def restore(xd, fd, dominfo = None, paused = False):
                   dominfo.info['memory_static_max'],
                   dominfo.info['memory_static_min'], nr_pfns)
 
-
         balloon.free(xc.pages_to_kib(nr_pfns) + shadow * 1024)
 
         shadow_cur = xc.shadow_mem_control(dominfo.getDomid(), shadow)
@@ -231,7 +225,7 @@ def restore(xd, fd, dominfo = None, paused = False):
             dominfo.unpause()
 
          # get qemu state and create a tmp file for dm restore
-        if hvm:
+        if is_hvm:
             qemu_signature = read_exact(fd, len(QEMU_SIGNATURE),
                                         "invalid device model signature read")
             if qemu_signature != QEMU_SIGNATURE: