diff --git a/include/migration/misc.h b/include/migration/misc.h index c079b7771b72fd2607c057a0ff5c89da19a98cc8..77fd4f587c3ce772067256cd49f52c185add7ae1 100644 --- a/include/migration/misc.h +++ b/include/migration/misc.h @@ -44,6 +44,7 @@ void dump_vmstate_json_to_file(FILE *out_fp); /* migration/migration.c */ void migration_object_init(void); +void migration_object_finalize(void); void qemu_start_incoming_migration(const char *uri, Error **errp); bool migration_is_idle(void); void add_migration_state_change_notifier(Notifier *notify); diff --git a/migration/migration.c b/migration/migration.c index 17cc219da2221707780dd2d1b214461a8108d23b..7a77b193c1100b7d1b0f5973e8ace357f8a860e3 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -132,6 +132,11 @@ void migration_object_init(void) } } +void migration_object_finalize(void) +{ + object_unref(OBJECT(current_migration)); +} + /* For outgoing */ MigrationState *migrate_get_current(void) { diff --git a/vl.c b/vl.c index 444b7507da5f2fb9db5a0198d62b025408088369..f1c52fe9fe7fa534e6ac8aff5d4e94153bf68543 100644 --- a/vl.c +++ b/vl.c @@ -4792,6 +4792,7 @@ int main(int argc, char **argv, char **envp) monitor_cleanup(); qemu_chr_cleanup(); user_creatable_cleanup(); + migration_object_finalize(); /* TODO: unref root container, check all devices are ok */ return 0;