aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-03-14 20:33:37 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-03-19 13:12:19 +0100
commitad1be89948f88e89708b04ccd782456ccec3a6f0 (patch)
treefd16e902191c6e0a0ba6f461809c24d535f7c24f
parent5dba0d453d238c283ac3cd2db810c843f9b822b7 (diff)
downloadqemu-arm-ad1be89948f88e89708b04ccd782456ccec3a6f0.tar.gz
spice: fix broken initialization
Commit 1b71f7c14fab6f00c2680d4489fbee7baf796e4f moved MODULE_INIT_QOM to way before MODULE_INIT_MACHINE, thereby breaking assumptions made in spice-core.c which registered both a type initializer and a machine intializer. This fix removes the type registration, and replaces it with calling qemu_spice_init in vl.c after command line parsing (second pass) is done, and after timers are armed, required by spice server. Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--ui/spice-core.c9
-rw-r--r--vl.c5
2 files changed, 6 insertions, 8 deletions
diff --git a/ui/spice-core.c b/ui/spice-core.c
index 80535b6e07..a468524799 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -554,7 +554,7 @@ void qemu_spice_init(void)
qemu_thread_get_self(&me);
- if (!opts) {
+ if (!opts) {
return;
}
port = qemu_opt_get_number(opts, "port", 0);
@@ -787,10 +787,3 @@ static void spice_register_config(void)
qemu_add_opts(&qemu_spice_opts);
}
machine_init(spice_register_config);
-
-static void spice_register_types(void)
-{
- qemu_spice_init();
-}
-
-type_init(spice_register_types)
diff --git a/vl.c b/vl.c
index bd95539ff7..eeb634b9ad 100644
--- a/vl.c
+++ b/vl.c
@@ -3369,6 +3369,11 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
+#ifdef CONFIG_SPICE
+ /* spice needs the timers to be initialized by this point */
+ qemu_spice_init();
+#endif
+
if (icount_option && (kvm_enabled() || xen_enabled())) {
fprintf(stderr, "-icount is not allowed with kvm or xen\n");
exit(1);