android_kernel_asus_sm8350/arch/s390/kvm
Eric Farman 70ae85ca12 KVM: s390: Clarify SIGP orders versus STOP/RESTART
commit 812de04661c4daa7ac385c0dfd62594540538034 upstream.

With KVM_CAP_S390_USER_SIGP, there are only five Signal Processor
orders (CONDITIONAL EMERGENCY SIGNAL, EMERGENCY SIGNAL, EXTERNAL CALL,
SENSE, and SENSE RUNNING STATUS) which are intended for frequent use
and thus are processed in-kernel. The remainder are sent to userspace
with the KVM_CAP_S390_USER_SIGP capability. Of those, three orders
(RESTART, STOP, and STOP AND STORE STATUS) have the potential to
inject work back into the kernel, and thus are asynchronous.

Let's look for those pending IRQs when processing one of the in-kernel
SIGP orders, and return BUSY (CC2) if one is in process. This is in
agreement with the Principles of Operation, which states that only one
order can be "active" on a CPU at a time.

Cc: stable@vger.kernel.org
Suggested-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/20211213210550.856213-2-farman@linux.ibm.com
[borntraeger@linux.ibm.com: add stable tag]
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-20 09:19:18 +01:00
..
diag.c KVM: s390: add vcpu stat counters for many instruction 2018-01-24 16:49:02 +01:00
gaccess.c treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
gaccess.h KVM: s390: split kvm_s390_real_to_abs 2021-05-14 09:44:15 +02:00
guestdbg.c KVM: s390: introduce defines for control registers 2018-05-17 09:02:27 +02:00
intercept.c KVM: s390: add exit io request stats and simplify code 2018-03-14 19:21:11 +00:00
interrupt.c KVM: s390: Clarify SIGP orders versus STOP/RESTART 2022-01-20 09:19:18 +01:00
irq.h KVM: s390: Remove redundant license text 2017-12-06 09:18:42 +01:00
Kconfig * ARM: support for SVE and Pointer Authentication in guests, PMU improvements 2019-05-17 10:33:30 -07:00
kvm-s390.c KVM: s390: Clarify SIGP orders versus STOP/RESTART 2022-01-20 09:19:18 +01:00
kvm-s390.h KVM: s390: Clarify SIGP orders versus STOP/RESTART 2022-01-20 09:19:18 +01:00
Makefile KVM: s390: Remove redundant license text 2017-12-06 09:18:42 +01:00
priv.c KVM: s390: Fix handle_sske page fault handling 2021-11-17 09:48:39 +01:00
sigp.c KVM: s390: Clarify SIGP orders versus STOP/RESTART 2022-01-20 09:19:18 +01:00
trace-s390.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vsie.c KVM: s390: vsie: Fix delivery of addressing exceptions 2020-04-17 10:50:13 +02:00