aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiu Yu-B13201 <Yu.Liu@freescale.com>2011-11-28 20:41:18 +0000
committerAlexander Graf <agraf@suse.de>2012-01-12 18:30:50 +0100
commitadf6c527b07b1399cae990d48fa7b87113bd5083 (patch)
tree573b65e2b3231d75715ace80ee1aa8f804e80cd0
parent57ee5f77c09d365d470cd208c76a7a01a85435b2 (diff)
kvm-ppc: halt secondary cpus when guest reset
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.liu@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de> [agraf: remove in-kernel irqchip code] (cherry picked from commit 157feeadbaec09fe4dca539a24f6f6d327d6eeb6)
-rw-r--r--hw/ppce500_spin.c1
-rw-r--r--target-ppc/kvm.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/hw/ppce500_spin.c b/hw/ppce500_spin.c
index cccd94073..2b527282b 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 429349fb9..9b2e605b6 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)