[PATCH v2 0/9] KVM: s390: And then... even more fixes again

From: Claudio Imbrenda

Date: Wed Aug 12 2026 - 06:49:47 EST


Another round of mostly unrelated misc fixes.

Mostly small and/or unlikely issues, but they needed to be addressed.

v1->v2:
* Use the srcu only around kvm_s390_inject_vcpu()
* Wildly simplify the third patch: introduce gisa_test_ipm_gisc() and
use it in get_all_floating_irqs() instead of gisa_tac_ipm_gisc()
* Use set_page_dirty() instead of set_page_dirty_lock(). In all
scenarios we are holding an extra reference to the page, we don't
need to also lock. Also move things around a little to avoid races.
* Fix return value of kvm_arch_prepare_memory_region()
* Fix return value being overwritten in patch 8
* Drop patches 6 and 7, they need more thought

Claudio Imbrenda (9):
KVM: s390: Properly handle NULL pointer in dat_cond_set_storage_key()
KVM: s390: Use srcu in kvm_arch_vcpu_unlocked_ioctl()
KVM: s390: Fix get_all_floating_irqs()
KVM: s390: Fix dirty marking in adapter_indicators_set*()
KVM: s390: Fix pgste_get_trylock_multiple()
KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
KVM: s390: Fix kvm_s390_clear_pv_state()
KVM: s390: Fix potential tiny kernel stack leak
KVM: s390: Fix _gaccess_shadow_fault()

arch/s390/kvm/dat.c | 13 ++--
arch/s390/kvm/gaccess.c | 10 +++
arch/s390/kvm/interrupt.c | 125 ++++++++++++++++++++++----------------
arch/s390/kvm/kvm-s390.c | 6 +-
arch/s390/kvm/pv.c | 4 ++
5 files changed, 96 insertions(+), 62 deletions(-)

--
2.55.0