]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
KVM: s390: Properly reset zero bit in PGSTE
authorClaudio Imbrenda <imbrenda@linux.ibm.com>
Tue, 19 May 2026 15:01:14 +0000 (17:01 +0200)
committerClaudio Imbrenda <imbrenda@linux.ibm.com>
Fri, 22 May 2026 09:25:11 +0000 (11:25 +0200)
commit9029496abfae3c208336855ae6f3e1f5f881ef76
tree024d26f661f5a35801e01a0aac191607964cb43f
parenta488e753de5853bec2e2e4d0c5a73f25d464bd2e
KVM: s390: Properly reset zero bit in PGSTE

In case of memory pressure, it's possible that a guest page gets freed
and then almost immediately reused by the guest. If CMMA is enabled,
_essa_clear_cbrl() will discard all pages that are either unused or
zero. If a discarded page is reused before _essa_clear_cbrl() is called,
and the pgste.zero bit is not cleared, the page will be discarded
despite not being unused.

When calling _gmap_ptep_xchg(), always clear the pgste.zero bit. This
prevents the page from being accidentally discarded when not unused.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Fixes: a2c17f9270cc ("KVM: s390: New gmap code")
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
arch/s390/kvm/gmap.h