From: David Hildenbrand <d...@linux.vnet.ibm.com>

In preparation for other CPU states, SIGP START will only start a VCPU if it is
in the STOPPED state.

Reviewed-by: Thomas Huth <th...@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.h...@de.ibm.com>
Signed-off-by: Jens Freimann <jf...@linux.vnet.ibm.com>
Signed-off-by: David Hildenbrand <d...@linux.vnet.ibm.com>
---
 target-s390x/kvm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index fcb0cae..ed56b3c 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -1117,6 +1117,11 @@ static void sigp_start(void *arg)
 {
     SigpInfo *si = arg;
 
+    if (s390_cpu_get_state(si->cpu) != CPU_STATE_STOPPED) {
+        si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
+        return;
+    }
+
     s390_cpu_set_state(CPU_STATE_OPERATING, si->cpu);
     si->cc = SIGP_CC_ORDER_CODE_ACCEPTED;
 }
-- 
2.1.4


Reply via email to