[PATCH v5 0/9] KVM: s390: A bunch of gmap-related fixes

From: Claudio Imbrenda

Date: Mon Jun 22 2026 - 12:10:01 EST


Fix handling of _PAGE_UNUSED pte bit. The bit was lingering around
longer than it should have, causing issues. This is yet a different
approach from the previous version.

Fix some cmma dirty tracking functions.

Also fix a few other small issues in gmap.

v4-v5:
* Make sure the counter of cmma-dirty pages does not explode
* Improve comments in cmma selftest
* Rework and fix locking in kvm_s390_set_mem_control()
* Do not return success if an allocation in kvm_s390_set_cmma_bits() fails

v3->v4:
* Improve/fix descriptions of patches 1 and 3
* Fix handle_{sske,pfmf} under memory pressure
* Fix cmma dirty tracking and its selftest

v2->v3:
* Fix _PAGE_UNUSED in yet a different way
* Fix a potential overflow in dat_peek_cmma()
* Some minor gmap fixes that are not actual bugs yet

v1->v2:
* Completely different approach, entirely new patch

Claudio Imbrenda (9):
s390/mm: Fix handling of _PAGE_UNUSED pte bit
KVM: s390: Fix dat_peek_cmma() overflow
KVM: s390: Do not set special large pages dirty
KVM: s390: Fix code typo in gmap_protect_asce_top_level()
KVM: s390: Fix handle_{sske,pfmf} under memory pressure
KVM: s390: Fix locking in kvm_s390_set_mem_control()
KVM: s390: Fix cmma dirty tracking
KVM: s390: selftests: Fix cmma selftest
KVM: s390: Return failure in case of failure in
kvm_s390_set_cmma_bits()

arch/s390/include/asm/pgtable.h | 4 +--
arch/s390/kvm/dat.c | 5 ++-
arch/s390/kvm/gmap.c | 15 ++++++---
arch/s390/kvm/kvm-s390.c | 35 ++++++++------------
arch/s390/kvm/priv.c | 10 ++++--
arch/s390/mm/gmap_helpers.c | 3 +-
tools/testing/selftests/kvm/s390/cmma_test.c | 6 ++++
7 files changed, 46 insertions(+), 32 deletions(-)

--
2.54.0