From nobody Fri Jun 12 20:18:53 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFC783EDE70; Tue, 12 May 2026 17:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; cv=none; b=ORTHT42edD3ZfHqASQfyUGqIo1TChsr3AopOVaAOxyzZTvfkGEA81zq3U2fUm0h/99Il2DtD0WUlBEZodVR6Nyy+As3F7Uk8EQR5WDokPY9TTjeqfl603aZRCd8U+s7YM97Tku5dybOcoCIQ2/25eNFKBrC+QwLfB0/0/02ZjF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; c=relaxed/simple; bh=6GV5Vvv1QtySVNas7FsOsLR4Qvug2IpjEXbXmzFwcKQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=po9caR1rCjX26jIp1W97TZhTVrenjkCpmG+EOdR+bEWV/Kmzc8pfazsD3CbQe8XKwgbRaD/GGrThAqx1skGeeeEBW5KdOKbOsa7mv3ozME+aZlJysmCLYDzmflvoLRvKumKJv7C59r2W1zdkseOHwcjdLJBrYhhXRABy7HMJk5M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=rvV/1db4; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="rvV/1db4" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CCegsT2760071; Tue, 12 May 2026 17:52:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=aq9FpqHF5AwyvCGwu NCgltPX+uPxkNey9LSf6Xgt4o4=; b=rvV/1db4bm/nBMhTI0v7dTZ/g34GsmqPA 5gtNlc4qi/Rre8TI5CjR3vejO2SMO4+pJjJdTKDYXCTjOHinJtDHv2k2RBVivHJZ MRnehcXzgB9Y6b3/tP+2w5Xkg4rELK0YaXbVIvLMJs0ye59lgbx1hZujid55fIkk jCb4SMDS9vEwINjoSaQ4aFxW1BkAb96Klap5kl4hrWdlpkZCXKtNkpLhXYOy8bki zHafgsiW3X0TFAkIXH3TR8ipyBwkpp6Hp+Bi7PYMj5y6bkLkP7Oa6W3RcM8DD1qR 8PMbzhXLYj7zxAbkjEvHO8XNstrbuRvV64qz6Vm6Ontce3/DYWlnA== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e3nv6m5dd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64CHdQcX029757; Tue, 12 May 2026 17:52:58 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4e3nfgc8pe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64CHqqGL28836322 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 May 2026 17:52:52 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6958720040; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 346BE2004B; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from p-imbrenda.aag-de.ibm.com (unknown [9.52.223.175]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 12 May 2026 17:52:52 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com Subject: [PATCH v2 1/5] KVM: s390: vsie: Fix memory leak when unshadowing Date: Tue, 12 May 2026 19:52:47 +0200 Message-ID: <20260512175251.300882-2-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512175251.300882-1-imbrenda@linux.ibm.com> References: <20260512175251.300882-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: oqUvaPZFQPlIbYS8LYtWGt46NiVicsSo X-Proofpoint-GUID: oqUvaPZFQPlIbYS8LYtWGt46NiVicsSo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE4MyBTYWx0ZWRfX4SkiTKJ94FZD kU7cSr9zycdz//G0gj/1ifX998BZBRGniXPWGI8IWdeQ17FID4oPaQT0GPOBtKUV1dQSXRB2fQ9 5SAghR6ovXFYLB+VQevJYfZQeJ8NP+Id/sxBG51TEwpDU4W4mctGmg8GZ3dxrdwyGxFyiKtEhcg 3j5NhLK/+n6IunyoKlCFCzhnqEuZG/NgxLxm3MYrKLbtQGwqHBgn82AAeggib1s9JSggupJXDto fYaFHrkxaU56wZ3owoIZZasAtwDYyGdBQOk5ICWD43YRmeK4j0yzCC76S6EO5fqBrZ3Hr40jnoB Q79bZ7gpEfGIMH3WMsP2gNIO/GJbqpJ9HRZHu5ABStoRjgH+gDHd7X5kNaHksVcUuTJ4/lFnJya shFr+lYoR3lx0G8kO4YuEI5i6I81pqDvxxy9xSiA6vwhtrgB46m775MP/lGSx4tM0TlWYxBvlAC 3dl1gD6IWumLc0aePcw== X-Authority-Analysis: v=2.4 cv=P8UKQCAu c=1 sm=1 tr=0 ts=6a0368fa cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=HcuRRwaqOfwKfrSmNnAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 phishscore=0 bulkscore=0 clxscore=1015 malwarescore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120183 Content-Type: text/plain; charset="utf-8" When performing a partial unshadowing, the rmap was being leaked. Add the missing kfree(). Fixes: a2c17f9270cc ("KVM: s390: New gmap code") Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Christian Borntraeger --- arch/s390/kvm/gmap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index 3c26e35af0ef..fd1927761980 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -1143,8 +1143,10 @@ void _gmap_handle_vsie_unshadow_event(struct gmap *p= arent, gfn_t gfn) } scoped_guard(spinlock, &sg->host_to_rmap_lock) head =3D radix_tree_delete(&sg->host_to_rmap, gfn); - gmap_for_each_rmap_safe(rmap, rnext, head) + gmap_for_each_rmap_safe(rmap, rnext, head) { gmap_unshadow_level(sg, rmap->r_gfn, rmap->level); + kfree(rmap); + } } } =20 --=20 2.54.0 From nobody Fri Jun 12 20:18:53 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 045A53EDE76; Tue, 12 May 2026 17:53:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608383; cv=none; b=Ww0q4n1ZIkY9J4PqeL2FDFpkOK5WtSVtFUM11QnsCUgixoLdfaZEN+RfI71WIaO/eZwncSHHhOqpjeTekN7J5XTXHMtDLqnWHoOyvfnzq+npu5VKt5b4yLsPfxFMhV1n9ZyFSd9h/pnFLfGxIzBJvb/Tg1Nmx6nV/R8c1JPwosI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608383; c=relaxed/simple; bh=GcuIl1Ds7xkCTg3IVlyUtz0fxh0j91FhTkJlDxwuFN4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bQvn8vO+0nx9ncyVaJK1Z0MWvDUZnAytllkrY9UAn2OwqZ9BusGzjV1dJn/wy7zx6GdlsIsBoe9Eh01y8Af2QrIbNprhXRZX7WBKrEe1Z+5aB3z4nmStPs1oHZbFbDS7IE0C8urhiVB/u98zQQpbabmAlfc1rf5S85S57vA9l8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=cqT6iWDj; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="cqT6iWDj" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CCHr2C3179836; Tue, 12 May 2026 17:52:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=UEcctdxPNwJaYofH7 8gCMDZGsEupH92OUqcYlvOnxCE=; b=cqT6iWDjG8djY3r6vuAvM4x/KkCmWA9tb u6kXBRAE3sNP5EqPZmkz2maBWRnrvFFG79domnzp+6z4GSVOhrqTkqaUh2KNnmxg DbtRVsPtErsfzEQhMULT82TRJr5BIKJ/DeXoKYrvLX/dvGuch1ZAIhrt/o6/VslS UzbT0T5IiA0v9wxm007QPhXiVCS3uI1wdcPS/1HGtmno9RPk/M3svYXN98jSfjxG xQxe4zvXEijMxP2zl6xnGCpn7bS5wkrmBvdQjzc8tIEq2akI7k6+y7eyfUYitha+ UYuP3DICYjJNjv91DZiDGiE3CM5nPUv7TgcGkpVoh2QWJVSRlwwpQ== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e3nv6m54f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64CHdWKA024353; Tue, 12 May 2026 17:52:58 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4e3nfgm82r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64CHqqIQ37618100 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 May 2026 17:52:52 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 98D252004B; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6F5D120049; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from p-imbrenda.aag-de.ibm.com (unknown [9.52.223.175]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 12 May 2026 17:52:52 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com Subject: [PATCH v2 2/5] KVM: s390: Fix leaking kvm_s390_mmu_cache in case of errors Date: Tue, 12 May 2026 19:52:48 +0200 Message-ID: <20260512175251.300882-3-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512175251.300882-1-imbrenda@linux.ibm.com> References: <20260512175251.300882-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=Us1T8ewB c=1 sm=1 tr=0 ts=6a0368fb cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=EVFxPqBYVl373qEVmGMA:9 X-Proofpoint-GUID: AbZf7V9vq8RpCoGMZKnoIhOC9BP1J_yd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE4MyBTYWx0ZWRfX7JYQdPykG6lK uaqPvmcr2V8e0o8cixF3xF2mM4sgVujxmHPRHM807bgxg7DgWnWkJcjmoTyh/O0yPZ4TgSZn+pJ I/cyZZPeqzU64XZRRO9waJMMvtLtMoHArqWl5X7tYl7N0425+h5PK5V/eSkobQh/0sRZ8dxEcx1 U4rRkBb4fppC4C6EXu8gkAOfsGYpUqsPhwCim5WaHCGoC/wSDqjrPS6Qh/zbJroO2Rnkqm+kzAO CC82N74xaQn8SPv1utm3PuRpTPIfS+VOb/t4AjfUMPPPDjqGUnaxQYiVPpli6pEU4rCTMdH2fuB g5n9beA0D3rdrKcq52mm6tZZnMXmG0ELFYVNxGSx+kF2fR/UH2jx+/sbGYbJgjc+1vISzT6z6ew +phUOIb2UNtBCueWzar/rU1rkLS4tk+1g7TEnXreyP+poRsF+VygbVWUlDBak4YkZXuJCxyTlT0 WcvHPICvFu8H/jIR50A== X-Proofpoint-ORIG-GUID: AbZf7V9vq8RpCoGMZKnoIhOC9BP1J_yd X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120183 Content-Type: text/plain; charset="utf-8" Fix a memory leak that can happen if gmap_ucas_map_one() or kvm_s390_mmu_cache_topup() return error values. Also fix a similar issue in gmap_set_limit(). Signed-off-by: Claudio Imbrenda Fixes: a2c17f9270cc ("KVM: s390: New gmap code") Reported-by: Jiaxin Fan Reviewed-by: Christian Borntraeger --- arch/s390/kvm/gmap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index fd1927761980..10c98c8cc1d8 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -125,7 +125,7 @@ struct gmap *gmap_new_child(struct gmap *parent, gfn_t = limit) =20 int gmap_set_limit(struct gmap *gmap, gfn_t limit) { - struct kvm_s390_mmu_cache *mc; + struct kvm_s390_mmu_cache *mc __free(kvm_s390_mmu_cache) =3D NULL; int rc, type; =20 type =3D gmap_limit_to_type(limit); @@ -142,7 +142,6 @@ int gmap_set_limit(struct gmap *gmap, gfn_t limit) rc =3D dat_set_asce_limit(mc, &gmap->asce, type); } while (rc =3D=3D -ENOMEM); =20 - kvm_s390_free_mmu_cache(mc); return 0; } =20 @@ -822,8 +821,8 @@ int gmap_ucas_translate(struct kvm_s390_mmu_cache *mc, = struct gmap *gmap, gpa_t =20 int gmap_ucas_map(struct gmap *gmap, gfn_t p_gfn, gfn_t c_gfn, unsigned lo= ng count) { - struct kvm_s390_mmu_cache *mc; - int rc; + struct kvm_s390_mmu_cache *mc __free(kvm_s390_mmu_cache) =3D NULL; + int rc =3D 0; =20 mc =3D kvm_s390_new_mmu_cache(); if (!mc) --=20 2.54.0 From nobody Fri Jun 12 20:18:53 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1AD4B33B6EA; Tue, 12 May 2026 17:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; cv=none; b=sdSl91CMCmvT8dLtZpQL4siGW67I4/WW82xHNLDa2P71WXTUCLMQAFnD7Vu86SzG5A7BaI9nBzeIsYmwdcvrzsqDmHJeoF/06nOT9sV+xktDzjm+UK/tpQQ+Fm1P8Yd7bDtbkpmGBdPQqUftV+ExbPlD+YIt5rGVl6u4W+yr00o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; c=relaxed/simple; bh=hkaG77L11yqLNwMqbM+czki+C7bDucmwuQ3K3BIU75k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=usJ9uhsFnlDEAfbRRV/dT93bpco9Ts3tk3ZtjjlGigQAvDT4wBuJ4EXV4tzpX553eh7hZBpkPyBMYwLCaWWEeQiaJH6kORHlF5BW+SPrFA2qTcfZVLkKjvueNZ4Bzmz8xG59ML+svmgBwi3dylP9dKb3z53VMEGKsW/b3iQpXPU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=NROp6EKV; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="NROp6EKV" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CFQ43W3827529; Tue, 12 May 2026 17:52:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=/hHD4lUf9fvdwfDnt jF+OnSypyNh08eTAbjDCXvsE/g=; b=NROp6EKV/q5bv8bJnPFPhTeDVsbomnqR1 3732KZKBqIK6aqR4RVT/zXRZ5XdTVOCobzhYA6F6o5IfDZpP0W4grCnhwvP0w6dN ONgBOchcQ+Hh/Pl98bqCIxumt0WxV2VDXFGg3g/KMK38nnxawr3nmhVhn4KimNq7 wJW2xF/50mbrU05+azgI7LRjCQcDlXcfLfXBprb+FAJQi/gY3jhA1qXCSg82qaDe rEFINDvhraW0Q55iAF9KBYODD9tv8CEdBwqjJFtAFqiGuvHj4ahkOzQbP7JK8FZX O7YAWKnM9fiqAf9Vh9pfyjlH+y8bZfMRgwlgtOoEzZDd8rzJ9wU3g== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e3nv6m54e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:59 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64CHddZv029834; Tue, 12 May 2026 17:52:58 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4e3nfgc8pf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64CHqq4w37618102 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 May 2026 17:52:52 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C880620049; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9EDF820040; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from p-imbrenda.aag-de.ibm.com (unknown [9.52.223.175]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 12 May 2026 17:52:52 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com Subject: [PATCH v2 3/5] KVM: s390: vsie: Fix unshadowing logic Date: Tue, 12 May 2026 19:52:49 +0200 Message-ID: <20260512175251.300882-4-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512175251.300882-1-imbrenda@linux.ibm.com> References: <20260512175251.300882-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=Us1T8ewB c=1 sm=1 tr=0 ts=6a0368fb cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=LTrI32VXtVmKWDySyG8A:9 X-Proofpoint-GUID: xlW0flP1LpkrGhwOCsmoMFdluBb8BpMl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE4MyBTYWx0ZWRfX1oWmr3TdkGNm IcH5Fk3j/o0jiy0uI371hZ2jcGO0aX3Zf0O8KNwA7+HGagEqUK6X277XODqzf8pxphb2rBl6HEh UhbDbeaPR4vCVLTXfkVaisqCAa3WPVwF9K2tgpxgNbByhrRPvsy0IZHtgHJwm6aUAqdYe6xDF21 Lsc2ZDK0mP+fYK/wHp68yuT2tmCD3JteJlHsAIXW6qBKK2edMNscb6a9Hk0dziGWS/66rnLtlA8 KVH5SkesqINeuWMUYuYYIrHuyPtSmEBDD3TRYPlKN6CK41K3V1YWueEc4yGJgSui900zMNqHVvd 5wNFqMzcOmE4si53w1sUaNfETGZziZpeG+3ymWIo+kh7XgOeA6OnO4lj1L74IIe2y1mAtxOK3ZP 8gE7Cungyl6CqJgKUzNQ0HBWP5VfXrI5mLxzlWojEW8TEsvOMRk4zuBzEAvuu2RuCLcrHlvK8YA Ebgukd7w191WEaCR+Zw== X-Proofpoint-ORIG-GUID: xlW0flP1LpkrGhwOCsmoMFdluBb8BpMl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120183 Content-Type: text/plain; charset="utf-8" In some cases (i.e. under extreme memory pressure on the host), attempting to shadow memory will result in the same memory being unshadowed, causing a loop. Add a PGSTE bit to distinguish between shadowed memory and shadowed DAT tables, fix the unshadowing logic in _gmap_ptep_xchg() to prevent unnecessary unshadowing and perform better checks. Also fix the unshadowing logic in _gmap_crstep_xchg_atomic() which did not unshadow properly when the large page would become unprotected. Opportunistilcally add a check in gmap_protect_rmap() to make sure it won't be called with level =3D=3D TABLE_TYPE_PAGE_TABLE. Signed-off-by: Claudio Imbrenda Fixes: a2c17f9270cc ("KVM: s390: New gmap code") --- arch/s390/kvm/dat.c | 1 + arch/s390/kvm/dat.h | 3 ++- arch/s390/kvm/gaccess.c | 1 + arch/s390/kvm/gmap.c | 3 ++- arch/s390/kvm/gmap.h | 22 +++++++++++++++++++--- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/arch/s390/kvm/dat.c b/arch/s390/kvm/dat.c index 7b8d70fe406d..4a41c0247ffa 100644 --- a/arch/s390/kvm/dat.c +++ b/arch/s390/kvm/dat.c @@ -267,6 +267,7 @@ static int dat_split_ste(struct kvm_s390_mmu_cache *mc,= union pmd *pmdp, gfn_t g /* No need to take locks as the page table is not installed yet. */ pgste_init.prefix_notif =3D old.s.fc1.prefix_notif; pgste_init.vsie_notif =3D old.s.fc1.vsie_notif; + pgste_init.vsie_gmem =3D old.s.fc1.vsie_notif; pgste_init.pcl =3D uses_skeys && init.h.i; dat_init_pgstes(pt, pgste_init.val); } else { diff --git a/arch/s390/kvm/dat.h b/arch/s390/kvm/dat.h index 8f8278c44879..873e13ac5a27 100644 --- a/arch/s390/kvm/dat.h +++ b/arch/s390/kvm/dat.h @@ -145,7 +145,8 @@ union pgste { unsigned long cmma_d : 1; /* Dirty flag for CMMA bits */ unsigned long prefix_notif : 1; /* Guest prefix invalidation notificatio= n */ unsigned long vsie_notif : 1; /* Referenced in a shadow table */ - unsigned long : 5; + unsigned long vsie_gmem : 1; /* Contains nested guest memory */ + unsigned long : 4; unsigned long : 8; }; struct { diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c index b07accd19618..4f8d5592c9a9 100644 --- a/arch/s390/kvm/gaccess.c +++ b/arch/s390/kvm/gaccess.c @@ -1445,6 +1445,7 @@ static int _do_shadow_pte(struct gmap *sg, gpa_t radd= r, union pte *ptep_h, union } else { pgste =3D _gmap_ptep_xchg(sg->parent, ptep_h, newpte, pgste, f->gfn, fal= se); pgste.vsie_notif =3D 1; + pgste.vsie_gmem =3D 1; } pgste_set_unlock(ptep_h, pgste); if (rc) diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index 10c98c8cc1d8..8cff0cf5ce24 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -1031,7 +1031,8 @@ int gmap_protect_rmap(struct kvm_s390_mmu_cache *mc, = struct gmap *sg, gfn_t p_gf union pte pte; int flags, rc; =20 - KVM_BUG_ON(!is_shadow(sg), sg->kvm); + if (KVM_BUG_ON(!is_shadow(sg) || level <=3D TABLE_TYPE_PAGE_TABLE, sg->kv= m)) + return -EINVAL; lockdep_assert_held(&sg->parent->children_lock); =20 flags =3D DAT_WALK_SPLIT_ALLOC | (uses_skeys(sg->parent) ? DAT_WALK_USES_= SKEYS : 0); diff --git a/arch/s390/kvm/gmap.h b/arch/s390/kvm/gmap.h index 96ee1395a592..e490f2995a26 100644 --- a/arch/s390/kvm/gmap.h +++ b/arch/s390/kvm/gmap.h @@ -167,6 +167,15 @@ static inline bool gmap_unmap_prefix(struct gmap *gmap= , gfn_t gfn, gfn_t end) return _gmap_unmap_prefix(gmap, gfn, end, false); } =20 +static inline bool pte_needs_unshadow(union pte oldpte, union pte newpte, = union pgste pgste) +{ + if (!pgste.vsie_notif) + return false; + if (pgste.vsie_gmem) + return (oldpte.h.p !=3D newpte.h.p) || newpte.h.i; + return !newpte.h.p || !newpte.s.pr; +} + static inline union pgste _gmap_ptep_xchg(struct gmap *gmap, union pte *pt= ep, union pte newpte, union pgste pgste, gfn_t gfn, bool needs_lock) { @@ -180,8 +189,9 @@ static inline union pgste _gmap_ptep_xchg(struct gmap *= gmap, union pte *ptep, un pgste.prefix_notif =3D 0; gmap_unmap_prefix(gmap, gfn, gfn + 1); } - if (pgste.vsie_notif && (ptep->h.p !=3D newpte.h.p || newpte.h.i)) { + if (pte_needs_unshadow(*ptep, newpte, pgste)) { pgste.vsie_notif =3D 0; + pgste.vsie_gmem =3D 0; if (needs_lock) gmap_handle_vsie_unshadow_event(gmap, gfn); else @@ -198,6 +208,13 @@ static inline union pgste gmap_ptep_xchg(struct gmap *= gmap, union pte *ptep, uni return _gmap_ptep_xchg(gmap, ptep, newpte, pgste, gfn, true); } =20 +static inline bool crste_needs_unshadow(union crste oldcrste, union crste = newcrste) +{ + if (!oldcrste.s.fc1.vsie_notif) + return false; + return (newcrste.h.p !=3D oldcrste.h.p) || newcrste.h.i || !newcrste.s.fc= 1.vsie_notif; +} + static inline bool __must_check _gmap_crstep_xchg_atomic(struct gmap *gmap= , union crste *crstep, union crste oldcrste, union crste newcrste, gfn_t gfn, bool needs_lock) @@ -216,8 +233,7 @@ static inline bool __must_check _gmap_crstep_xchg_atomi= c(struct gmap *gmap, unio newcrste.s.fc1.prefix_notif =3D 0; gmap_unmap_prefix(gmap, gfn, gfn + align); } - if (crste_leaf(oldcrste) && oldcrste.s.fc1.vsie_notif && - (newcrste.h.p || newcrste.h.i || !newcrste.s.fc1.vsie_notif)) { + if (crste_leaf(oldcrste) && crste_needs_unshadow(oldcrste, newcrste)) { newcrste.s.fc1.vsie_notif =3D 0; if (needs_lock) gmap_handle_vsie_unshadow_event(gmap, gfn); --=20 2.54.0 From nobody Fri Jun 12 20:18:53 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1AC873EDE7C; Tue, 12 May 2026 17:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; cv=none; b=WmqfUTlYu3/dQrHt4Em3pwCzGJkSYP5p1rPjM2Uen0tRijp+318imE47XeZzSWtW9Nou9xsOugx4xoP8F1kvDPE6auMaHP4Kw+Rb0C8lR9JDvxB5AYgSt16ShBr23X5S17lcvyo8O44vBlcbYiEHP42ER7S6oxmhWDmCb5TkM6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; c=relaxed/simple; bh=x0FONrt88Hrf/qHe1kaa7Z6+djuSeV3TQhd5jWrVqao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VSv3AcxO9DKxiIQNyaY36f79L+4KeDvRVVGV6lFXjMaRru7lX6oLVcxLswf3e6UpCzVkHDKfqatwfX7fISfxt+zblNP7oiFxWfSO+94l0z52Ix9KSH9USaJeAQ5XKrXtorwu9ti37UWAX6idK+ezojpjXaj5Y82nxDRRYkk3I7M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=as2tMrGu; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="as2tMrGu" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CBnmm83775519; Tue, 12 May 2026 17:52:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=5gbxR3zg+u2dD5c50 k409xH9BWbQWgWS7FQFn1EUjTg=; b=as2tMrGufnTlHICwz3s1UzxucoKRz51OS 2J8cC6eZu4N3VudVBDhaXz1o3RxQO344I2vECvWoYeoglVgXpILcraH5CfRChNQy ixhGS+tnoEtaJilaPTNSBeJCefomfZkznJvbf6tmGPQSVCDYRtKeZiVmT0ufnFGB E2Ze1q/AoN9UvCroxFBANDUNc+TzaiUKy134062sn0/vnZQlrNDU+ky9AuHBVjkv 9lYTC9NZVctyENukj4UJoLz+QWXClfV+FUTGAfVF4ACb/jLJgZFKPFQkvfw7Ye3b GnfDbF+l3rWkzUTdx0iaX3c2KvAfU3upWN4MP2hQ0YmRPG5wWxvOw== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e3nv6m52u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:59 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64CHdSj8031390; Tue, 12 May 2026 17:52:59 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4e3nfgm8jp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64CHqrXb61538624 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 May 2026 17:52:53 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 106B320040; Tue, 12 May 2026 17:52:53 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CEEF92004B; Tue, 12 May 2026 17:52:52 +0000 (GMT) Received: from p-imbrenda.aag-de.ibm.com (unknown [9.52.223.175]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 12 May 2026 17:52:52 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com Subject: [PATCH v2 4/5] KVM: s390: vsie: Fix redundant rmap entries Date: Tue, 12 May 2026 19:52:50 +0200 Message-ID: <20260512175251.300882-5-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512175251.300882-1-imbrenda@linux.ibm.com> References: <20260512175251.300882-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=KbvidwYD c=1 sm=1 tr=0 ts=6a0368fb cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=7eV5o87doowNvqF6OWkA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE4MyBTYWx0ZWRfXxWtF9bDN/GJj VjHYyQHXmZH+Zg3d57pR7GAcYM29gjNBWEF011qEVnpMlXMIBV4jFKAIdSH5t/vcOUFmhDUSZmN gx3OWsAZB70xfJCYKJ7RIypAIES3mnpGkGIJsvrA676eLYNFhlgmP3F9s105z8xBLhwYw58zuxL zxp8FHfgFHYNSvEEOq93D6g8zcjgcRWtWBgUO7re+vNr8airWGnAZzy5uovg1b3mgkc8C9TkMx0 5zaav+xOJcM5i/jEbV6J7fcI2MXe+UacUgVePClo0hSzDwkCihySZ9P5+cvnLBKCOxTx7vpUDN9 lFgYceyxc8mvhI9Z4hPdstW2xPTIXSePtATwwgtbPXs3S13+NoJznWNGt1AtErbUHlK2XSiP2S/ oQvcsPw26hwegQgnINsjGYgikIsWc3mw5YSTquYv2BMri3hB7oRaUXXQhLF628/aJjC4EOmC4VS P42EwOPWhxMJCycdF9w== X-Proofpoint-GUID: obtepszRLazhP0agToY5014-2d7cOLUo X-Proofpoint-ORIG-GUID: obtepszRLazhP0agToY5014-2d7cOLUo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120183 Content-Type: text/plain; charset="utf-8" The address passed to the gmap rmap was not being masked. As a consequence several different (but functionally equivalent) rmap entries were being created for each shadowed table. Fix this by properly masking the address depending on the table level. Signed-off-by: Claudio Imbrenda Reviewed-by: Christian Borntraeger --- arch/s390/kvm/gmap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index 8cff0cf5ce24..957126ab991c 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -1025,6 +1025,7 @@ int gmap_insert_rmap(struct gmap *sg, gfn_t p_gfn, gf= n_t r_gfn, int level) int gmap_protect_rmap(struct kvm_s390_mmu_cache *mc, struct gmap *sg, gfn_= t p_gfn, gfn_t r_gfn, kvm_pfn_t pfn, int level, bool wr) { + unsigned long bitmask; union crste *crstep; union pgste pgste; union pte *ptep; @@ -1041,8 +1042,9 @@ int gmap_protect_rmap(struct kvm_s390_mmu_cache *mc, = struct gmap *sg, gfn_t p_gf if (rc) return rc; if (level <=3D TABLE_TYPE_REGION1) { + bitmask =3D -1UL << (8 + 11 * level); scoped_guard(spinlock, &sg->host_to_rmap_lock) - rc =3D gmap_insert_rmap(sg, p_gfn, r_gfn, level); + rc =3D gmap_insert_rmap(sg, p_gfn, r_gfn & bitmask, level); } if (rc) return rc; --=20 2.54.0 From nobody Fri Jun 12 20:18:53 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFCC03EDE73; Tue, 12 May 2026 17:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; cv=none; b=HQ2b2xnVKdeOZUWLPo2yonp/AxoJXTsL35AJoBQj/8EMcHJX7gtfSd9ukpUqYeMaT/B1oQ2I/WkHPf9E0+xGjqcaIzAIE2fCfG+fN0dJOjBYULD+pl65uK3viI9rDLqzSVW/21MVuhGWtRKIOQQu4mQmwHwoiolqbuNK+y5SD3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778608384; c=relaxed/simple; bh=RIY6GwkrqyQv23R5UR0OT8M+rigIakcNkUtfdqAKx2c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gDPIBPANdXS1MZFaN3gDOFHMNwp+Z99c2fssl35siUOtNNeM6Au22fTQPnD0PexCCxxlUDx1bzsJ+BNsz3H5PuSSgFPZVTcAk4PBi6yW9nhrz+2TOgcnYfQaH3NZh2XY3E5JuV1w5ofZ/mZrZ9r/6sLC2//lAHeeNu9SxE7oO6M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=EV7rpy7s; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="EV7rpy7s" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64CCoEoN3775953; Tue, 12 May 2026 17:52:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=lNiN1bS/xqdkk1xq5 vhcjU2y2iaAEdCZmIhapixQ94c=; b=EV7rpy7sjjxkMjOruOFYJFuUJK/9sqh0e tkHSywBU8k/lFJhFZcYJ/r6Uff0kYXMIg5lW5GU7NKbFn45LzFffFtD3lIA3AFz5 a9WI2k4EwcaYVufzbCvo9Oeh64pcUd1QUU0DXXNDXzWqzdwqQWg+BOeZjK0DKbWe iuNYGUHZZ95bSUhhXSWakqSevf1CVu7AlCuDNqMa3EylpElaWb3ULlHVpHMTKLyJ CJES0Hwq4lJrYQfshIHlyYQaZjJZvtSvzivkSXRV4PgeaMRr0eNgCgZrgOzGTuvN 91Cd94rfEMGSWHOgHEJ5MVMkgSA24f80+xb+qswwFtlFHNlWHw1WA== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4e3nv6m52t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:59 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 64CHdeHS020268; Tue, 12 May 2026 17:52:58 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4e3nfgc8rd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 May 2026 17:52:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 64CHqrU661538628 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 12 May 2026 17:52:53 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 49CEF20040; Tue, 12 May 2026 17:52:53 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 164F220049; Tue, 12 May 2026 17:52:53 +0000 (GMT) Received: from p-imbrenda.aag-de.ibm.com (unknown [9.52.223.175]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 12 May 2026 17:52:53 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com Subject: [PATCH v2 5/5] KVM: s390: Properly reset zero bit in PGSTE Date: Tue, 12 May 2026 19:52:51 +0200 Message-ID: <20260512175251.300882-6-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260512175251.300882-1-imbrenda@linux.ibm.com> References: <20260512175251.300882-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=KbvidwYD c=1 sm=1 tr=0 ts=6a0368fb cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=qr9DHn0TZOiEmrbJNPYA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEyMDE4MyBTYWx0ZWRfX1vFq4jFiZugj Li5NVIcLe7ZLWLEx+NPkMh0Qa/JBd13yyv0tLIIPrmW48jyjfgMJihGAytMQxAw9usllt1WU8T7 4dERQ5/FJsbq+SPowZIer6aMcuKECBOAQH63lXDNFZ1fM7HyGb79kqBHBOQr3MzC9hFrRF1FZxq UQ3jodytlHSHo6UtkW0AVOBM7IE8lVoDTNua8jWmzzAm3rCDTHiGuldjUQ1vmbes3VN017eR5sk tm5XBCPRjsn1kJlq/hCaUQ5gSNsiqSAUjwfsPcNuXElsym4JUo4H/TOcBh9v9glr5z7fduphJGC VjzvOjhNlRFmIlZ5KZs0eHLAaCaKv/pw7kPen46a7LRI2W6M70S+EBCgD0FWirqa3QbwbGUYIkY ///o7JtMnUynALW26V1qC/eWCexdc0o0v7YHnRtlyq91pvXxdgLLhOsLzgdSkdpK9ue2lh2PKpI /M53ndr3SBLk42gx8HQ== X-Proofpoint-GUID: 5T6wxvpYxQmgyavdGosQkrEGQYC-6Y6_ X-Proofpoint-ORIG-GUID: 5T6wxvpYxQmgyavdGosQkrEGQYC-6Y6_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 spamscore=0 suspectscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605120183 Content-Type: text/plain; charset="utf-8" When calling _gmap_ptep_xchg(), always clear the pgste.zero bit. This prevents the page from being accidentally discarded when getting unmapped. Signed-off-by: Claudio Imbrenda Reviewed-by: Steffen Eiden --- arch/s390/kvm/gmap.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/s390/kvm/gmap.h b/arch/s390/kvm/gmap.h index e490f2995a26..4de9ed8d58ba 100644 --- a/arch/s390/kvm/gmap.h +++ b/arch/s390/kvm/gmap.h @@ -199,6 +199,7 @@ static inline union pgste _gmap_ptep_xchg(struct gmap *= gmap, union pte *ptep, un } if (!ptep->s.d && newpte.s.d && !newpte.s.s) SetPageDirty(pfn_to_page(newpte.h.pfra)); + pgste.zero =3D 0; return __dat_ptep_xchg(ptep, pgste, newpte, gfn, gmap->asce, uses_skeys(g= map)); } =20 --=20 2.54.0