aboutsummaryrefslogtreecommitdiff
path: root/target-s390x
diff options
context:
space:
mode:
authorThomas Huth <thuth@linux.vnet.ibm.com>2013-12-17 14:22:07 +0100
committerAlexander Graf <agraf@suse.de>2013-12-18 14:24:10 +0100
commitb20a461fcd55d2b05e729c587244eddc60b9527f (patch)
tree048e038a1ae8efa3f0fee4bdd884a714f8c7751c /target-s390x
parent0b9972a2483b27824f3ec71b7b8b4a5961614216 (diff)
s390x/kvm: Implemented SIGP START
This patch adds the missing START order to the SIGP instruction handler. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x')
-rw-r--r--target-s390x/kvm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 8c541340f2..fcc159f72e 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -588,6 +588,14 @@ static int handle_diag(S390CPU *cpu, struct kvm_run *run, uint32_t ipb)
return r;
}
+static int kvm_s390_cpu_start(S390CPU *cpu)
+{
+ s390_add_running_cpu(cpu);
+ qemu_cpu_kick(CPU(cpu));
+ DPRINTF("DONE: KVM cpu start: %p\n", &cpu->env);
+ return 0;
+}
+
int kvm_s390_cpu_restart(S390CPU *cpu)
{
kvm_s390_interrupt(cpu, KVM_S390_RESTART, 0);
@@ -642,6 +650,9 @@ static int handle_sigp(S390CPU *cpu, struct kvm_run *run, uint8_t ipa1)
}
switch (order_code) {
+ case SIGP_START:
+ r = kvm_s390_cpu_start(target_cpu);
+ break;
case SIGP_RESTART:
r = kvm_s390_cpu_restart(target_cpu);
break;