提交 00b8ea4e 编写于 作者: P Peter Xu 提交者: Dr. David Alan Gilbert

vl: move global property, migrate init earlier

Currently drive_init_func() may call migrate_get_current() while the
migrate object is still not ready yet at that time. Move the migration
object init earlier, along with the global properties, right after
acceleration init.

This fixes a breakage for iotest 055, which caused an assertion failure.
Reported-by: NMax Reitz <mreitz@redhat.com>
Reported-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
Tested-by: NQingFeng Hao <haoqf@linux.vnet.ibm.com>
Fixes: 3df663 ("migration: move only_migratable to MigrationState")
Signed-off-by: NPeter Xu <peterx@redhat.com>
Message-Id: <1499242883-2184-3-git-send-email-peterx@redhat.com>
Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
上级 b605c47b
...@@ -4418,6 +4418,18 @@ int main(int argc, char **argv, char **envp) ...@@ -4418,6 +4418,18 @@ int main(int argc, char **argv, char **envp)
configure_accelerator(current_machine); configure_accelerator(current_machine);
/*
* Register all the global properties, including accel properties,
* machine properties, and user-specified ones.
*/
register_global_properties(current_machine);
/*
* Migration object can only be created after global properties
* are applied correctly.
*/
migration_object_init();
if (qtest_chrdev) { if (qtest_chrdev) {
qtest_init(qtest_chrdev, qtest_log, &error_fatal); qtest_init(qtest_chrdev, qtest_log, &error_fatal);
} }
...@@ -4601,18 +4613,6 @@ int main(int argc, char **argv, char **envp) ...@@ -4601,18 +4613,6 @@ int main(int argc, char **argv, char **envp)
exit (i == 1 ? 1 : 0); exit (i == 1 ? 1 : 0);
} }
/*
* Register all the global properties, including accel properties,
* machine properties, and user-specified ones.
*/
register_global_properties(current_machine);
/*
* Migration object can only be created after global properties
* are applied correctly.
*/
migration_object_init();
/* This checkpoint is required by replay to separate prior clock /* This checkpoint is required by replay to separate prior clock
reading from the other reads, because timer polling functions query reading from the other reads, because timer polling functions query
clock values from the log. */ clock values from the log. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册