From: David Hildenbrand <[email protected]>

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

Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Cornelia Huck <[email protected]>
Signed-off-by: Jens Freimann <[email protected]>
Signed-off-by: David Hildenbrand <[email protected]>
---
 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