From: Paolo Bonzini Date: Thu, 9 Jul 2015 06:47:58 +0000 (+0200) Subject: migration: fix RCU deadlock X-Git-Tag: v2.4.0-rc0~2^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d09a6fde1590ca3a45b608b6873a680f208dfeb5;p=thirdparty%2Fqemu.git migration: fix RCU deadlock 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 --- diff --git a/migration/ram.c b/migration/ram.c index c6968141961..1e58cd39242 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -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;