From 576a94d8bcaa1bb07a81d9ffd2cf76095a66ad9a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 3 Mar 2015 11:36:09 +0100 Subject: vl: take iothread lock very early If the iothread lock isn't taken by the main thread, the RCU callbacks might run concurrently with the main thread. QEMU's not ready for that. Signed-off-by: Paolo Bonzini Tested-by: Christian Borntraeger Tested-by: Gonglei Signed-off-by: Peter Maydell --- vl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'vl.c') diff --git a/vl.c b/vl.c index 5d13d2f..801d487 100644 --- a/vl.c +++ b/vl.c @@ -2767,6 +2767,9 @@ int main(int argc, char **argv, char **envp) FILE *vmstate_dump_file = NULL; Error *main_loop_err = NULL; + qemu_init_cpu_loop(); + qemu_mutex_lock_iothread(); + atexit(qemu_run_exit_notifiers); error_set_progname(argv[0]); qemu_init_exec_dir(argv[0]); @@ -4102,9 +4105,6 @@ int main(int argc, char **argv, char **envp) os_set_line_buffering(); - qemu_init_cpu_loop(); - qemu_mutex_lock_iothread(); - #ifdef CONFIG_SPICE /* spice needs the timers to be initialized by this point */ qemu_spice_init(); -- cgit v1.1