qemu_savevm_state_complete_postcopy assumes the iothread lock (BQL) to be held, but instead it isn't.
Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> --- migration/migration.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/migration/migration.c b/migration/migration.c index 041b8451a6..215d5281f2 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -3182,7 +3182,10 @@ static void migration_completion(MigrationState *s) } else if (s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE) { trace_migration_completion_postcopy_end(); + qemu_mutex_lock_iothread(); qemu_savevm_state_complete_postcopy(s->to_dst_file); + qemu_mutex_unlock_iothread(); + trace_migration_completion_postcopy_end_after_complete(); } else if (s->state == MIGRATION_STATUS_CANCELLING) { goto fail; -- 2.27.0