]> git.proxmox.com Git - qemu.git/commitdiff
migration: fix migration_bitmap leak
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 12 Dec 2012 11:54:43 +0000 (12:54 +0100)
committerJuan Quintela <quintela@redhat.com>
Thu, 20 Dec 2012 21:44:29 +0000 (22:44 +0100)
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
arch_init.c

index a8b65416da215b1ce829844782750b51f3218e79..e01f0e5ea178213c9403c1a4fe5019c464853d2f 100644 (file)
@@ -535,9 +535,13 @@ static void sort_ram_list(void)
 
 static void migration_end(void)
 {
-    memory_global_dirty_log_stop();
+    if (migration_bitmap) {
+        memory_global_dirty_log_stop();
+        g_free(migration_bitmap);
+        migration_bitmap = NULL;
+    }
 
-    if (migrate_use_xbzrle()) {
+    if (XBZRLE.cache) {
         cache_fini(XBZRLE.cache);
         g_free(XBZRLE.cache);
         g_free(XBZRLE.encoded_buf);
@@ -689,13 +693,10 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
         }
         bytes_transferred += bytes_sent;
     }
-    memory_global_dirty_log_stop();
+    migration_end();
 
     qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
 
-    g_free(migration_bitmap);
-    migration_bitmap = NULL;
-
     return 0;
 }