]> Git Repo - qemu.git/commitdiff
migration: fix RCU deadlock
authorPaolo Bonzini <[email protected]>
Thu, 9 Jul 2015 06:47:58 +0000 (08:47 +0200)
committerPaolo Bonzini <[email protected]>
Thu, 9 Jul 2015 06:47:58 +0000 (08:47 +0200)
migration_end calls synchronize_rcu() within a critical section.
That causes a deadlock; move the call after rcu_read_unlock().

Signed-off-by: Paolo Bonzini <[email protected]>
migration/ram.c

index c69681419619876a49ef7728cd6d081cbd1d7500..1e58cd39242b6d4fa91f67c626a0ba7191c3d843 100644 (file)
@@ -1266,9 +1266,10 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
 
     flush_compressed_data(f);
     ram_control_after_iterate(f, RAM_CONTROL_FINISH);
-    migration_end();
 
     rcu_read_unlock();
+
+    migration_end();
     qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
 
     return 0;
This page took 0.028248 seconds and 4 git commands to generate.