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-03 15:48:20 +0100
commit157feeadbaec09fe4dca539a24f6f6d327d6eeb6 (patch)
treeb0ef63c538ce89faa6f1e2576cd2edac56182db2
parent33bcd98c4e9fe0866807bef6253a057c82087539 (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]
-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 df74953874..e7b1453855 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 429349fb94..9b2e605b67 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)