We shouldn't kick a stopped vCPU, as it will be resumed.

Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
RFC: Better to assert and fix call sites?
---
 system/cpus.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/system/cpus.c b/system/cpus.c
index d16b0dff989..4835e5ced48 100644
--- a/system/cpus.c
+++ b/system/cpus.c
@@ -494,6 +494,11 @@ void cpus_kick_thread(CPUState *cpu)
 void qemu_cpu_kick(CPUState *cpu)
 {
     qemu_cond_broadcast(cpu->halt_cond);
+
+    if (!cpu_can_run(cpu)) {
+        return;
+    }
+
     if (cpus_accel->kick_vcpu_thread) {
         cpus_accel->kick_vcpu_thread(cpu);
     } else { /* default */
-- 
2.49.0


Reply via email to