From: "Daniel P. Berrange" <berra...@redhat.com> This reverts commit 1c7ba94a184df1eddd589d5400d879568d3e5d08.
That commit changed QEMU initialization order from - object-initial, chardev, qtest, object-late to - chardev, qtest, object-initial, object-late This breaks chardev setups which need to rely on objects having been created. For example, when chardevs use TLS encryption in the future, they need to have tls credential objects created first. This revert, restores the ordering introduced in commit f08f9271bfe3f19a5eb3d7a2f48532065304d5c8 Author: Daniel P. Berrange <berra...@redhat.com> Date: Wed May 13 17:14:04 2015 +0100 vl: Create (most) objects before creating chardev backends Signed-off-by: Daniel P. Berrange <berra...@redhat.com> Message-Id: <1448448749-1332-2-git-send-email-berra...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- exec.c | 5 +---- vl.c | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/exec.c b/exec.c index acbd4a2..b09f18b 100644 --- a/exec.c +++ b/exec.c @@ -51,7 +51,6 @@ #include "qemu/main-loop.h" #include "translate-all.h" #include "sysemu/replay.h" -#include "sysemu/qtest.h" #include "exec/memory-internal.h" #include "exec/ram_addr.h" @@ -1197,10 +1196,8 @@ static long gethugepagesize(const char *path, Error **errp) return 0; } - if (!qtest_driver() && - fs.f_type != HUGETLBFS_MAGIC) { + if (fs.f_type != HUGETLBFS_MAGIC) fprintf(stderr, "Warning: path not on HugeTLBFS: %s\n", path); - } return fs.f_bsize; } diff --git a/vl.c b/vl.c index 525929b..4211ff1 100644 --- a/vl.c +++ b/vl.c @@ -4291,26 +4291,17 @@ int main(int argc, char **argv, char **envp) page_size_init(); socket_init(); - if (qemu_opts_foreach(qemu_find_opts("chardev"), - chardev_init_func, NULL, NULL)) { - exit(1); - } - - if (qtest_chrdev) { - Error *local_err = NULL; - qtest_init(qtest_chrdev, qtest_log, &local_err); - if (local_err) { - error_report_err(local_err); - exit(1); - } - } - if (qemu_opts_foreach(qemu_find_opts("object"), object_create, object_create_initial, NULL)) { exit(1); } + if (qemu_opts_foreach(qemu_find_opts("chardev"), + chardev_init_func, NULL, NULL)) { + exit(1); + } + #ifdef CONFIG_VIRTFS if (qemu_opts_foreach(qemu_find_opts("fsdev"), fsdev_init_func, NULL, NULL)) { @@ -4337,6 +4328,15 @@ int main(int argc, char **argv, char **envp) configure_accelerator(current_machine); + if (qtest_chrdev) { + Error *local_err = NULL; + qtest_init(qtest_chrdev, qtest_log, &local_err); + if (local_err) { + error_report_err(local_err); + exit(1); + } + } + machine_opts = qemu_get_machine_opts(); kernel_filename = qemu_opt_get(machine_opts, "kernel"); initrd_filename = qemu_opt_get(machine_opts, "initrd"); -- 1.8.3.1