From: Marcelo Tosatti Date: Tue, 9 Feb 2010 14:49:04 +0000 (-0200) Subject: iothread: fix vcpu stop with smp tcg X-Git-Tag: v0.12.3~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=535d2eb34a0f1908dc694c51ce8d4ec6dccc7807;p=thirdparty%2Fqemu.git iothread: fix vcpu stop with smp tcg Round robin vcpus in tcg_cpu_next even if the vm stopped. This allows all cpus to enter stopped state. Signed-off-by: Marcelo Tosatti Signed-off-by: Anthony Liguori (cherry picked from commit c37cc7b072fa4ca8d8d21ac31d26baff5f47f9f9) --- diff --git a/vl.c b/vl.c index 007709aafb4..3b5a8e01bfe 100644 --- a/vl.c +++ b/vl.c @@ -4042,14 +4042,15 @@ static void tcg_cpu_exec(void) for (; next_cpu != NULL; next_cpu = next_cpu->next_cpu) { CPUState *env = cur_cpu = next_cpu; - if (!vm_running) - break; if (timer_alarm_pending) { timer_alarm_pending = 0; break; } if (cpu_can_run(env)) ret = qemu_cpu_exec(env); + else if (env->stop) + break; + if (ret == EXCP_DEBUG) { gdb_set_stop_cpu(env); debug_requested = 1;