On 08.10.21 22:38, Eric Farman wrote:
When building a Stop IRQ to pass to KVM, we should incorporate
the flags if handling the SIGP Stop and Store Status order.
With that, KVM can reject other orders that are submitted for
the same CPU while the operation is fully processed.
Signed-off-by: Eric Farman <farman@linux.ibm.com>
Acked-by: Janosch Frank <frankja@linux.ibm.com>
---
target/s390x/kvm/kvm.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
index 5b1fdb55c4..701b9ddc88 100644
--- a/target/s390x/kvm/kvm.c
+++ b/target/s390x/kvm/kvm.c
@@ -2555,6 +2555,10 @@ void kvm_s390_stop_interrupt(S390CPU *cpu)
.type = KVM_S390_SIGP_STOP,
};
+ if (cpu->env.sigp_order == SIGP_STOP_STORE_STATUS) {
+ irq.u.stop.flags = KVM_S390_STOP_FLAG_STORE_STATUS;
+ }
+
KVM_S390_STOP_FLAG_STORE_STATUS tells KVM to perform the store status as well
... is that really what we want?