diff options
author | Thomas Huth <thuth@linux.vnet.ibm.com> | 2013-12-17 14:22:07 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-12-18 14:24:10 +0100 |
commit | b20a461fcd55d2b05e729c587244eddc60b9527f (patch) | |
tree | 048e038a1ae8efa3f0fee4bdd884a714f8c7751c /target-s390x/kvm.c | |
parent | 0b9972a2483b27824f3ec71b7b8b4a5961614216 (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/kvm.c')
-rw-r--r-- | target-s390x/kvm.c | 11 |
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; |