From: Liu Yu-B13201 <yu....@freescale.com> When guest reset, we need to halt secondary cpus until guest kick them. This already works for tcg. The patch add the support for kvm.
Signed-off-by: Liu Yu <yu....@freescale.com> Signed-off-by: Alexander Graf <ag...@suse.de> [agraf: remove in-kernel irqchip code] (cherry picked from commit 157feeadbaec09fe4dca539a24f6f6d327d6eeb6) --- hw/ppce500_spin.c | 1 + target-ppc/kvm.c | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) diff --git a/hw/ppce500_spin.c b/hw/ppce500_spin.c index cccd940..2b52728 100644 --- a/hw/ppce500_spin.c +++ b/hw/ppce500_spin.c @@ -112,6 +112,7 @@ static void spin_kick(void *data) env->halted = 0; env->exception_index = -1; + env->stopped = 0; qemu_cpu_kick(env); } diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c index 429349f..9b2e605 100644 --- a/target-ppc/kvm.c +++ b/target-ppc/kvm.c @@ -504,7 +504,7 @@ void kvm_arch_post_run(CPUState *env, struct kvm_run *run) int kvm_arch_process_async_events(CPUState *env) { - return 0; + return env->halted; } static int kvmppc_handle_halt(CPUState *env) -- 1.6.0.2