From nobody Sun Jun 14 08:33:16 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 540F93EF0DD; Thu, 2 Apr 2026 15:01:47 +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=1775142108; cv=none; b=p1rB1lsWUAiLejTqtSnffq2CX3j3AJigktU7hzZzmedR0kSyV34G8zTutgA/TZJLq7HjyPIbDFFtYmjo9GTioTtu7J+QoPLl1qZhAan3aXnQAZSipuO4pq76OzA56tvY/NEthJNQdh4xoHS4ToxObUIf0gZcw/GarGt0IjaxTkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142108; c=relaxed/simple; bh=e/+5/qEEo63UXy1ywVmWm0yTTpZdsmFpd0m/57Ro5Xw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E+XxzwG3rqv737A2w2W4Usz4eiq0R7qSGF8UAHyn+LckRaGBeiE48Wiidvfz3o/OoNdM0d/D7C5kDTuGIRksbf19qkzF7DgslK5mHweD0Igf7CNhsJGn+Qz186psYEzUr0Z0hfiywzgd1IdL9Gs9gwdJ/i001fg3QdEyadey1kg= 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=gSdnjz7Y; 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="gSdnjz7Y" 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 6321QLsM108580; Thu, 2 Apr 2026 15:01:44 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=ZSGVAYAeoKV0OpUc8 NfP2xhZ1pjTYesAxfT8FV5dGWM=; b=gSdnjz7YSYtLspbE8hb3BR5mmdKFwhdFm l51KyAR2zhCfntKvCDmqJconwfFo2bN0AQuI0yvKxmMc4fqMHec6+CRoYLrs4wQZ tD2SJLNDWUlYIvXMiJfY22YJ8tCmR/KRNJr8pOqayQm54O0Cq6aq9MFRnPaL44jo vlSw2elC0/4cN5U3m0+9EdXRBjQpUFAnOPbjHd7Wf69jK726sU64kJEII8OTAQ2i HOlBlVrB5jo7qoeDsGha+X5m1dvlFZyCCSYpiWpDFb8kn0pLB6bkTqhjyBfJHCEP hCxL8DdIFnX3aBuJTa05NEkqOMGc9JSNPZiBWclTn6XZeHfpkPo2A== 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 4d65dcmdkc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:44 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632B7ara013987; Thu, 2 Apr 2026 15:01:43 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6ttktd1v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:43 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1bS246531020 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:37 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 67B0620040; Thu, 2 Apr 2026 15:01:37 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A5C5C20043; Thu, 2 Apr 2026 15:01:36 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:36 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 1/6] KVM: s390: Add some useful mask macros Date: Thu, 2 Apr 2026 17:01:30 +0200 Message-ID: <20260402150135.196943-2-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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=RsjI7SmK c=1 sm=1 tr=0 ts=69ce84d8 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=Oh1pnlNaMCSVx7q4Av0A:9 X-Proofpoint-GUID: bhQnYI5Cbjjo7Egg56LwmWIPO22KM-vs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfX3/+R2RbWy8J1 gqbu5EA0hrg08OzjxIQIJ3W0QcWycHTt+zM4qguouKvJ8inmzA5hzcHWpSAZz/NI7R/p7dQhi2O GKJ3vo9WpfPY/h7BLzVT8LDfNMjCC/atK/UckPK9177O7h1KJicBtLWSE6YaGnfdb3vu3+GxPZl M2b/rMyZioguEKENKgKbv9I6uA4e250Y2WKOWtIhCI/BOE5zfqp7Nhs5UhJbCqiJ2pkFJVhgjBw WR17MakwIRKst4pylQc5N7qKAq4PVqTeWxz9Mx3BcLRWKUJMY4hm/C5vbS47RpejwaemkUwBA1i rEhUM7sd2Kw+NwdjidiMs+VI5+8HB3d1RR6aCXC/MDTSdrk3Q5a+KftPi6AmzfzRoe64hLapmod e2hnhlk/mDyQhZ0wj3JvtDvu+vPADDrUQlePn+G4jbH9RWsD7E8RCp4kQOGKR+GMmAvbQZKuBqB SsYI8Xl9/0ux2LO1Ndw== X-Proofpoint-ORIG-GUID: bhQnYI5Cbjjo7Egg56LwmWIPO22KM-vs 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" Add _{SEGMENT,REGION3}_FR_MASK, similar to _{SEGMENT,REGION3}_MASK, but working on gfn/pfn instead of addresses. Use them in gaccess.c instead of using the normal masks plus gpa_to_gfn(). Also add _PAGES_PER_{SEGMENT,REGION3} to make future code more readable. Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- arch/s390/kvm/dat.h | 5 +++++ arch/s390/kvm/gaccess.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/dat.h b/arch/s390/kvm/dat.h index 123e11dcd70d..809cd7a8adb7 100644 --- a/arch/s390/kvm/dat.h +++ b/arch/s390/kvm/dat.h @@ -104,6 +104,11 @@ union pte { } tok; }; =20 +#define _SEGMENT_FR_MASK (_SEGMENT_MASK >> PAGE_SHIFT) +#define _REGION3_FR_MASK (_REGION3_MASK >> PAGE_SHIFT) +#define _PAGES_PER_SEGMENT _PAGE_ENTRIES +#define _PAGES_PER_REGION3 (_PAGES_PER_SEGMENT * _CRST_ENTRIES) + /* Soft dirty, needed as macro for atomic operations on ptes */ #define _PAGE_SD 0x002 =20 diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c index 4630b2a067ea..a2ad11e2bf61 100644 --- a/arch/s390/kvm/gaccess.c +++ b/arch/s390/kvm/gaccess.c @@ -1461,7 +1461,7 @@ static int _do_shadow_crste(struct gmap *sg, gpa_t ra= ddr, union crste *host, uni lockdep_assert_held(&sg->kvm->mmu_lock); lockdep_assert_held(&sg->parent->children_lock); =20 - gfn =3D f->gfn & gpa_to_gfn(is_pmd(*table) ? _SEGMENT_MASK : _REGION3_MAS= K); + gfn =3D f->gfn & (is_pmd(*table) ? _SEGMENT_FR_MASK : _REGION3_FR_MASK); scoped_guard(spinlock, &sg->host_to_rmap_lock) rc =3D gmap_insert_rmap(sg, gfn, gpa_to_gfn(raddr), host->h.tt); if (rc) --=20 2.53.0 From nobody Sun Jun 14 08:33:16 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 BFA5E3EF67D; Thu, 2 Apr 2026 15:01:48 +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=1775142110; cv=none; b=iuLGMAhLEdb+2Cg6ivHhy+aLqJbOQ5uJoGsxl5fzmvAIgqx0MVsgjaPpae2z91VODN3E561fwjQkQ4dhr7x5Nt6bzFYixVUWO7hr10ACijAq5fhRqUZ3hGcAm9j/7LeX+xHht+ejnocKQmcwpW10ljOP8tFTZOdK9ZofqEoMzFY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142110; c=relaxed/simple; bh=EmPirQcevw+Nf/B/EQlvIHWhaoy0kaAz1B5Nyns08co=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GmJuGbGL03oVxoMykZ9VoKRK/nDBEJplM3cE1gAJ/S6DS1qWEXaixBQI7OhK6UxENONY1+MuPI+QKQDtUeEfOdqVZk0n8AFd9DtKh6dpRZam1auJuI0gVIeQyyOqe+YtYy/J9aO/ghcSDnJhoXouQB4WQx62E2YzVoqm08UH3y8= 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=TdQT6wK3; 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="TdQT6wK3" 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 631MVUYo4036177; Thu, 2 Apr 2026 15:01:46 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=FS44tKqpgrPrSqxT4 3CY6F5uHOjzNASQqSW9bEv+ZF4=; b=TdQT6wK3OAubywbBd22vsoCYc4CKTZQ5e YNp/E9w9u9JabUrBLl2l212JadcImXFYMV6tFuPgIQI2wt5YRFAM8pm4n86B01Jz mH73bUb+V1hztLPwxLD35HQftyqbrQvY2k14F45YbeeUFi61oVFT28YbnJ8Q+hIJ 4Dy6k7ZlwEvPjbYFEgF8oZaeM6hSQnzKW5cgHb9dNo9PCGlo8Hk4JU6dxpep35E7 j800zDeZQqtLN/uWobDo/0tkAnLq/Se430stuniV/q2uN6GXev0Mz1/mlSaa5TCa Kgx8rgfEQERgXC7LV2ZMU4fIZq/O1oq0+gsQtgeobM1WFjXjdC2XQ== 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 4d66mscbhq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:44 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632BMugV022165; Thu, 2 Apr 2026 15:01:44 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6tanaec5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:44 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1cN628377586 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:38 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4A9F520040; Thu, 2 Apr 2026 15:01:38 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8477920043; Thu, 2 Apr 2026 15:01:37 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:37 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 2/6] KVM: s390: Add alignment checks for hugepages Date: Thu, 2 Apr 2026 17:01:31 +0200 Message-ID: <20260402150135.196943-3-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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=J6enLQnS c=1 sm=1 tr=0 ts=69ce84d8 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=L0FeP2ZHASatk8IJKvEA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfX8KM4s4FTMTxh bLh4XGC2pMCcxZtH4kxd+5EaEP3ZP6Syo5BLJAb2DB0NdT7BiTmTDJFKEzx8shvzlRrvhOvt8kH CeiDnIfWTTouzz5IUpy4aatYxC/DB45y3gWjoYC3rOmqhPhjRi6lrOP06JE6gyUS33k7GfKcheQ 8ehu+gYtjISfH1pSDRzEjhouYa4UoNiGT29Ml9XbJ5EfMqbrlzq+G9GWPeAmHVrRfkjofbEeR1S PEih8RofFvrl5TvfDlVlzh5RFUD8g6SwLQdWK4wHsW+IFF8svq2XXQUaTZaSztBexxv+pzllg+/ P7zS09L63iPWoMyg4MxRn7UZOBKvls6QYW4Xh8u49R17k99SNMVnbOHu9owC490b5VGq0EuLAHU EYR65otBOHYZ1e6psjKM2mog+E+Zww== X-Proofpoint-GUID: 9DyDnfyf5weZViLQOUsuOjxeuqyvZ0FI X-Proofpoint-ORIG-GUID: 9DyDnfyf5weZViLQOUsuOjxeuqyvZ0FI 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" When backing a guest page with a large page, check that the alignment of the guest page matches the alignment of the host physical page backing it within the large page. Also check that the memslot is large enough to fit the large page. Those checks are currently not needed, because memslots are guaranteed to be 1m-aligned, but this will change. Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- arch/s390/kvm/faultin.c | 2 +- arch/s390/kvm/gmap.c | 32 ++++++++++++++++++++++++++------ arch/s390/kvm/gmap.h | 3 ++- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/arch/s390/kvm/faultin.c b/arch/s390/kvm/faultin.c index e37cd18200f5..ddf0ca71f374 100644 --- a/arch/s390/kvm/faultin.c +++ b/arch/s390/kvm/faultin.c @@ -109,7 +109,7 @@ int kvm_s390_faultin_gfn(struct kvm_vcpu *vcpu, struct = kvm *kvm, struct guest_fa scoped_guard(read_lock, &kvm->mmu_lock) { if (!mmu_invalidate_retry_gfn(kvm, inv_seq, f->gfn)) { f->valid =3D true; - rc =3D gmap_link(mc, kvm->arch.gmap, f); + rc =3D gmap_link(mc, kvm->arch.gmap, f, slot); kvm_release_faultin_page(kvm, f->page, !!rc, f->write_attempt); f->page =3D NULL; } diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index ef0c6ebfdde2..e3c1b070a11d 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -613,17 +613,37 @@ int gmap_try_fixup_minor(struct gmap *gmap, struct gu= est_fault *fault) return rc; } =20 -static inline bool gmap_2g_allowed(struct gmap *gmap, gfn_t gfn) +static inline bool gmap_2g_allowed(struct gmap *gmap, struct guest_fault *= f, + struct kvm_memory_slot *slot) { return false; } =20 -static inline bool gmap_1m_allowed(struct gmap *gmap, gfn_t gfn) +/** + * gmap_1m_allowed() - Check whether a 1M hugepage is allowed. + * @gmap: The gmap of the guest. + * @f: Describes the fault that is being resolved. + * @slot: The memslot the faulting address belongs to. + * + * The function checks whether the GMAP_FLAG_ALLOW_HPAGE_1M flag is set for + * @gmap, whether the offset of the address in the 1M virtual frame is the + * same as the offset in the physical 1M frame, and finally whether the wh= ole + * 1M page would fit in the given memslot. + * + * Return: true if a 1M hugepage is allowed to back the faulting address, = false + * otherwise. + */ +static inline bool gmap_1m_allowed(struct gmap *gmap, struct guest_fault *= f, + struct kvm_memory_slot *slot) { - return test_bit(GMAP_FLAG_ALLOW_HPAGE_1M, &gmap->flags); + return test_bit(GMAP_FLAG_ALLOW_HPAGE_1M, &gmap->flags) && + !((f->gfn ^ f->pfn) & ~_SEGMENT_FR_MASK) && + slot->base_gfn <=3D ALIGN_DOWN(f->gfn, _PAGES_PER_SEGMENT) && + slot->base_gfn + slot->npages >=3D ALIGN(f->gfn + 1, _PAGES_PER_SE= GMENT); } =20 -int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *f) +int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *f, + struct kvm_memory_slot *slot) { unsigned int order; int rc, level; @@ -633,9 +653,9 @@ int gmap_link(struct kvm_s390_mmu_cache *mc, struct gma= p *gmap, struct guest_fau level =3D TABLE_TYPE_PAGE_TABLE; if (f->page) { order =3D folio_order(page_folio(f->page)); - if (order >=3D get_order(_REGION3_SIZE) && gmap_2g_allowed(gmap, f->gfn)) + if (order >=3D get_order(_REGION3_SIZE) && gmap_2g_allowed(gmap, f, slot= )) level =3D TABLE_TYPE_REGION3; - else if (order >=3D get_order(_SEGMENT_SIZE) && gmap_1m_allowed(gmap, f-= >gfn)) + else if (order >=3D get_order(_SEGMENT_SIZE) && gmap_1m_allowed(gmap, f,= slot)) level =3D TABLE_TYPE_SEGMENT; } rc =3D dat_link(mc, gmap->asce, level, uses_skeys(gmap), f); diff --git a/arch/s390/kvm/gmap.h b/arch/s390/kvm/gmap.h index ccb5cd751e31..a2f74587ddbf 100644 --- a/arch/s390/kvm/gmap.h +++ b/arch/s390/kvm/gmap.h @@ -90,7 +90,8 @@ struct gmap *gmap_new(struct kvm *kvm, gfn_t limit); struct gmap *gmap_new_child(struct gmap *parent, gfn_t limit); void gmap_remove_child(struct gmap *child); void gmap_dispose(struct gmap *gmap); -int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *fault); +int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *fault, + struct kvm_memory_slot *slot); void gmap_sync_dirty_log(struct gmap *gmap, gfn_t start, gfn_t end); int gmap_set_limit(struct gmap *gmap, gfn_t limit); int gmap_ucas_translate(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, = gpa_t *gaddr); --=20 2.53.0 From nobody Sun Jun 14 08:33:16 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 F354A3F0758; Thu, 2 Apr 2026 15:01:49 +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=1775142111; cv=none; b=mVMD7I4hVAeVpav15PIuVK8Ovd8WTEFvTrErGpXuasGJQiRanVMOZUnXNXk5O98BjV4cTNkjZGkB00jppZY9oaZmkFnQNkUw1NMAe7UFgJN/FoCe9UL8ecS2uOpAMsAny7C9wNIRWLo2WfnWApT1Qbzx7Og34LKgFEKr+Tp7y4A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142111; c=relaxed/simple; bh=4bzpiikrqEOg5U6fMhqOPLN+lShirOVWBeTxH4aYvbY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Iykn67Vv9P7B5IDfA70byYVBkLWuJgmOpBPaoNxayGf0q8ON8eYKg58ExjHP70qskPJC/BYQJ2wt2AhQV9vMvtVy2tTW9+9B6ZhSjb8P52rK6WVfnhasmspQXB6Y7TpMCEMo08+fDWAI8b22/Ojs0LRpUjNq+kteQRUNzGLv5sE= 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=RzDhkgte; 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="RzDhkgte" 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 6323OC9c172363; Thu, 2 Apr 2026 15:01:46 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=ANiYZVSOka3t8+Rdk JZAMw4WgJDb2c6+W0sQ9f+lOr0=; b=RzDhkgte/61mIoiny2gESWSG1rm6nTYbE /U662Es1xoMmc5RSU6tiCszoGOmnJlQjHrCiNB9T3ql1igDcx1uCSe5gYU4calHo fSt1T0LboyLbuI+fqVgWl+A3iw1nbAUl3tvdpmixMOFxav/5FjYoyU1zvMG8YBGa KlMCpmJMvX1CgNTD3txEI1tyFk9iKtfWRxezIUNBGjQHeCFwdWhkj7XfbEppZNN1 sAUakCcwJSGdX/y+G4HVfPYhG7t9OpqPpN1i9DklE3E6kT/4USuf0XjY+E5hqsLA RTCKxQNs47AGklS361BhkEZbpUS7eRJBL8OpLXbc0jDpYaXMOqemg== 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 4d66mscbhs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:46 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632CUKaa022217; Thu, 2 Apr 2026 15:01:45 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6tanaecb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:45 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1d3g29950394 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:39 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 27F402004D; Thu, 2 Apr 2026 15:01:39 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6789720043; Thu, 2 Apr 2026 15:01:38 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:38 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 3/6] KVM: s390: Allow 4k granularity for memslots Date: Thu, 2 Apr 2026 17:01:32 +0200 Message-ID: <20260402150135.196943-4-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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=J6enLQnS c=1 sm=1 tr=0 ts=69ce84da cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=oKVxSbr36kwotj49NyIA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfX8rtiwuJrXePi sXtm8fD36L3OSPi40k5FHcaWvfSGCuCmAenhnlMUrwpvnyzMrCGtHlG5XuzehlO3SYkTeYw3ag/ 6XoXmy5M111YCRTisijCc7TVnFxrcxjgzZZYjvG9hfwkuE8f70iIkaybvn1gDNTiog6rIdfbfCT z9j3B2UPqWvfgdxSXkx8IFQHAzph/3On9WHGhPKppW97cw6/9g2VAnGHKUozlOMgercUDdbyJNh +9sJmA5wnaCyjmAhQBnFQv4fWAMmzu4+ZQTxGwHNWS51fulXGXAlW1xTlZPxo3fdoYeZhqRUtE9 lsSqAqoI4lG3tBgH8orjmn6I7274WeYkTxHkI7VdblmWMwfeRKrBubweJWfru2vGeN8ZCBFVdwr 3S8bey8b3hfuJBkxqLqZkC6zO3YY+TWGY6gmXtGdEVmaXxpZCq8KU1lkHm+pn0CghhqpwSlUEYy SSJO7OZttlAVO92k4fg== X-Proofpoint-GUID: ydlUHv_YaOSvCvnrKrxi4lfZnNETQRZf X-Proofpoint-ORIG-GUID: ydlUHv_YaOSvCvnrKrxi4lfZnNETQRZf 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" Until now memslots on s390 needed to have 1M granularity and be 1M aligned. Since the new gmap code can handle memslots with 4k granularity and alignment, remove the restrictions. Signed-off-by: Claudio Imbrenda Reviewed-by: Christian Borntraeger Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- arch/s390/kvm/kvm-s390.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index bc7d6fa66eaf..be2a721e2574 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -5636,8 +5636,6 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, struct kvm_memory_slot *new, enum kvm_mr_change change) { - gpa_t size; - if (kvm_is_ucontrol(kvm) && new->id < KVM_USER_MEM_SLOTS) return -EINVAL; =20 @@ -5647,20 +5645,14 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, =20 if (change !=3D KVM_MR_DELETE && change !=3D KVM_MR_FLAGS_ONLY) { /* - * A few sanity checks. We can have memory slots which have to be - * located/ended at a segment boundary (1MB). The memory in userland is - * ok to be fragmented into various different vmas. It is okay to mmap() - * and munmap() stuff in this slot after doing this call at any time + * A few sanity checks. The memory in userland is ok to be + * fragmented into various different vmas. It is okay to mmap() + * and munmap() stuff in this slot after doing this call at any + * time. */ - - if (new->userspace_addr & 0xffffful) + if (new->userspace_addr & ~PAGE_MASK) return -EINVAL; - - size =3D new->npages * PAGE_SIZE; - if (size & 0xffffful) - return -EINVAL; - - if ((new->base_gfn * PAGE_SIZE) + size > kvm->arch.mem_limit) + if ((new->base_gfn + new->npages) * PAGE_SIZE > kvm->arch.mem_limit) return -EINVAL; } =20 --=20 2.53.0 From nobody Sun Jun 14 08:33:16 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 CB71C3F167B; Thu, 2 Apr 2026 15:01:52 +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=1775142114; cv=none; b=VWC7XcOLHF3srNCB4lHA/+KGoHHb/IX0qqOowJc3Jrs2bnFT2R1bkYKXb9qoawiTTly7hQutEMGRjB6gfW5K4zI2LyVSUJpJ5hIPaJqkv6I5ViDdM5AJiA88jcO8UmY6c+AI/odWKZE5nw2IO0dl7bvbqHoZMKpsxhLMWlmB8pI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142114; c=relaxed/simple; bh=F+E/FL1WwLfbnku5+Op9rkS111ZvqLwk3wQ7de4+OKs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X7LM1XplotUEJG2u5nK8v8RnYFhwoe1pwe4aTB3l+gGim/nMUfNGkQvEqWEKtuk55ZuDiR8AIt1q78HCV58/ig/dr+4gA86Sb/TJA58pwKU1gpN8W3ZikxpHTo71A/btF5ods1LYSCJrje8VfBkr/8bOXd8hOxYXpn8GE3f84dg= 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=NLUlAgJ5; 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="NLUlAgJ5" 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 6321AHLv371620; Thu, 2 Apr 2026 15:01:48 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=V62ibWPECQkrvOvVO 6fSKi1YtycLnQljr6f335lZ3F0=; b=NLUlAgJ5H2I3fHRJbmsOdAIOYeW9Jp20y +ebhginjXcMcyo1GUGbMNTTGO8fQFt4vAbjWPoknbR0pWMkGDSvDcJwvEF3LEpEg JGPfvGElYBBuPHvdweZpmJE9Ct0kQ5FG18st6ywaMK5XbbQ2XA0KOY7q5ROUTb9H kZ51omU/jM/S+0TzY8wy7MFNj13wVhDP7AQ9EYqkYX6ZP31ESWwqfzle5Sm4gUGZ e8Fx4o42VtOTioqTxURSaRdMPc7GYrbp8zP0V3SLmiwh651Xw7+X3nGa9rZVFO7y t5dWvec6ucdRI5nfLBEvqxNDb7uiVI6QExSMBmFDAJPJhBNzZtJ/g== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d65dcmdkr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:46 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632BGaHr005757; Thu, 2 Apr 2026 15:01:46 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6spyajbk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:45 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1erR59900340 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:40 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 060BD20043; Thu, 2 Apr 2026 15:01:40 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4515E20040; Thu, 2 Apr 2026 15:01:39 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:39 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 4/6] KVM: selftests: Remove 1M alignment requirement for s390 Date: Thu, 2 Apr 2026 17:01:33 +0200 Message-ID: <20260402150135.196943-5-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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=RsjI7SmK c=1 sm=1 tr=0 ts=69ce84da cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=UTmhEy8gFCsRmEP22h0A:9 X-Proofpoint-GUID: XEdcIkteTLgJ2Dy6NzPuDcQl45vNjcCM X-Proofpoint-ORIG-GUID: XEdcIkteTLgJ2Dy6NzPuDcQl45vNjcCM X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfX3hdM2Bostf/x MHe4aMJsxapTSmjEP9TbmkCx1Gd8Y347/GOE/shMGSyuJLhW/V5DKGBknKkZ8PzRE41CG8kFB2O 1zAP0YPMu0yGX3OgWqzpP1RGj4XZDzVALfGAGhjDuTZ0hydw3aOT1Gjtu/kheB10wDtX6RzMFMb GmEUql+4Whus3wx6q5jKBAzvkajZz3z33k6vwpYaDpX1+jnyH/sZARcb/LzdTAsfV9WzWeqgD5M RJoZI4wHbp86ww7u85GqF29WhfVEIrCg5otRHDc61e1kIyZ/FR/eEgJPzXz925sD1YBEq5E1ZDP w/lXDCK50uPA0gykPkm/JzrSAC9HrefuheLju1oNekj3pZ68D7HFp8G0ejDd4P+XhBmtYR3dUht mLwgSA41kHovSVIGfjA6I1ObUs0pIg== 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" Remove the 1M memslot alignment requirement for s390, since it is not needed anymore. Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- tools/testing/selftests/kvm/dirty_log_test.c | 3 --- tools/testing/selftests/kvm/include/kvm_util.h | 4 ---- tools/testing/selftests/kvm/kvm_page_table_test.c | 3 --- tools/testing/selftests/kvm/lib/kvm_util.c | 9 +-------- tools/testing/selftests/kvm/lib/memstress.c | 4 ---- tools/testing/selftests/kvm/pre_fault_memory_test.c | 4 ---- tools/testing/selftests/kvm/set_memory_region_test.c | 9 +-------- 7 files changed, 2 insertions(+), 34 deletions(-) diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/s= elftests/kvm/dirty_log_test.c index d58a641b0e6a..7627b328f18a 100644 --- a/tools/testing/selftests/kvm/dirty_log_test.c +++ b/tools/testing/selftests/kvm/dirty_log_test.c @@ -641,9 +641,6 @@ static void run_test(enum vm_guest_mode mode, void *arg) } =20 #ifdef __s390x__ - /* Align to 1M (segment size) */ - guest_test_phys_mem =3D align_down(guest_test_phys_mem, 1 << 20); - /* * The workaround in guest_code() to write all pages prior to the first * iteration isn't compatible with the dirty ring, as the dirty ring diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing= /selftests/kvm/include/kvm_util.h index 8b39cb919f4f..f861242b4ae8 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -1127,10 +1127,6 @@ vm_adjust_num_guest_pages(enum vm_guest_mode mode, u= nsigned int num_guest_pages) { unsigned int n; n =3D vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages)); -#ifdef __s390x__ - /* s390 requires 1M aligned guest sizes */ - n =3D (n + 255) & ~255; -#endif return n; } =20 diff --git a/tools/testing/selftests/kvm/kvm_page_table_test.c b/tools/test= ing/selftests/kvm/kvm_page_table_test.c index dd8b12f626d3..c60a24a92829 100644 --- a/tools/testing/selftests/kvm/kvm_page_table_test.c +++ b/tools/testing/selftests/kvm/kvm_page_table_test.c @@ -261,9 +261,6 @@ static struct kvm_vm *pre_init_before_test(enum vm_gues= t_mode mode, void *arg) guest_page_size; else guest_test_phys_mem =3D p->phys_offset; -#ifdef __s390x__ - alignment =3D max(0x100000UL, alignment); -#endif guest_test_phys_mem =3D align_down(guest_test_phys_mem, alignment); =20 /* Set up the shared data structure test_args */ diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index 1959bf556e88..f5e076591c64 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -985,7 +985,7 @@ void vm_mem_add(struct kvm_vm *vm, enum vm_mem_backing_= src_type src_type, struct userspace_mem_region *region; size_t backing_src_pagesz =3D get_backing_src_pagesz(src_type); size_t mem_size =3D npages * vm->page_size; - size_t alignment; + size_t alignment =3D 1; =20 TEST_REQUIRE_SET_USER_MEMORY_REGION2(); =20 @@ -1039,13 +1039,6 @@ void vm_mem_add(struct kvm_vm *vm, enum vm_mem_backi= ng_src_type src_type, TEST_ASSERT(region !=3D NULL, "Insufficient Memory"); region->mmap_size =3D mem_size; =20 -#ifdef __s390x__ - /* On s390x, the host address must be aligned to 1M (due to PGSTEs) */ - alignment =3D 0x100000; -#else - alignment =3D 1; -#endif - /* * When using THP mmap is not guaranteed to returned a hugepage aligned * address so we have to pad the mmap. Padding is not needed for HugeTLB diff --git a/tools/testing/selftests/kvm/lib/memstress.c b/tools/testing/se= lftests/kvm/lib/memstress.c index 557c0a0a5658..1ea735d66e15 100644 --- a/tools/testing/selftests/kvm/lib/memstress.c +++ b/tools/testing/selftests/kvm/lib/memstress.c @@ -196,10 +196,6 @@ struct kvm_vm *memstress_create_vm(enum vm_guest_mode = mode, int nr_vcpus, =20 args->gpa =3D (region_end_gfn - guest_num_pages - 1) * args->guest_page_s= ize; args->gpa =3D align_down(args->gpa, backing_src_pagesz); -#ifdef __s390x__ - /* Align to 1M (segment size) */ - args->gpa =3D align_down(args->gpa, 1 << 20); -#endif args->size =3D guest_num_pages * args->guest_page_size; pr_info("guest physical test memory: [0x%lx, 0x%lx)\n", args->gpa, args->gpa + args->size); diff --git a/tools/testing/selftests/kvm/pre_fault_memory_test.c b/tools/te= sting/selftests/kvm/pre_fault_memory_test.c index 93e603d91311..f3de0386ba7b 100644 --- a/tools/testing/selftests/kvm/pre_fault_memory_test.c +++ b/tools/testing/selftests/kvm/pre_fault_memory_test.c @@ -175,11 +175,7 @@ static void __test_pre_fault_memory(unsigned long vm_t= ype, bool private) =20 alignment =3D guest_page_size =3D vm_guest_mode_params[VM_MODE_DEFAULT].p= age_size; gpa =3D (vm->max_gfn - TEST_NPAGES) * guest_page_size; -#ifdef __s390x__ - alignment =3D max(0x100000UL, guest_page_size); -#else alignment =3D SZ_2M; -#endif gpa =3D align_down(gpa, alignment); gva =3D gpa & ((1ULL << (vm->va_bits - 1)) - 1); =20 diff --git a/tools/testing/selftests/kvm/set_memory_region_test.c b/tools/t= esting/selftests/kvm/set_memory_region_test.c index 7fe427ff9b38..a398dc3a8c4b 100644 --- a/tools/testing/selftests/kvm/set_memory_region_test.c +++ b/tools/testing/selftests/kvm/set_memory_region_test.c @@ -413,14 +413,7 @@ static void test_add_max_memory_regions(void) uint32_t max_mem_slots; uint32_t slot; void *mem, *mem_aligned, *mem_extra; - size_t alignment; - -#ifdef __s390x__ - /* On s390x, the host address must be aligned to 1M (due to PGSTEs) */ - alignment =3D 0x100000; -#else - alignment =3D 1; -#endif + size_t alignment =3D 1; =20 max_mem_slots =3D kvm_check_cap(KVM_CAP_NR_MEMSLOTS); TEST_ASSERT(max_mem_slots > 0, --=20 2.53.0 From nobody Sun Jun 14 08:33:16 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 3F19E3F1650; Thu, 2 Apr 2026 15:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142113; cv=none; b=srqP5dMNWXGYpXjlG8m9Yjbmnl3vjQgNYx/CieBrS2YcP1rlinnHuHKzKA+mNKM1B2xgBJeQat/UCct8V0TNVbY3T1Q37LOSoOY/O+4AdQAEG/KbbL7bDuXUK7qNn4P15ypGWNvxJQAKyJzKjsaMUH6V1pwGMVgRCQp/jMRfQVM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142113; c=relaxed/simple; bh=JXIgmI0n5CV1WvJXMcHfz7xo/Elo1dyN+EFIIing0xU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eHk7bHOxdJmTkFxn3a4PVhzXYfE5n3yK7rv+qhbyevxONFyPzNtSlwJ9PQblTdlxRwQ4vAkF5s430z1TDs7mfAkMA0aKr61g4djBic5vf/PSWgPm0pEoXdXtBeAKQuOLtqaaz/GuJIE2L+qSJu72ud0Y5p7N4xXReCF8gHDfO10= 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=BOAspQ3h; arc=none smtp.client-ip=148.163.156.1 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="BOAspQ3h" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63273RSA3012799; Thu, 2 Apr 2026 15:01:50 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=dXIo9TEva+lx0OuPh FWjI/CKatZUSTWTqdW8Xi6YZQ4=; b=BOAspQ3hCzgsbu7S0y3N3cILcNmqRFadJ 8OVJGOE4DEIiYjmqyUNiaCngh4wfUV9UQg6Zv7R6gpKRZ+YFf3+Uxa63X7Gv+gVo 6ECDBCdH4RlIoaKEFU4ogG2m6O43pLZqUfgJh3EBNZh4YJApe2No8GBAhehQ5tMj n1x9aqMyWRsNlxwGrFAz104wD30OLPNEpUMd2kYbRcM1+Y/XhUV14y6kSNRfbT4I dTUdGqmOGYpHS6vNzmYKevlAaCCArkPqRRU/+gLyKnOXsElW1q4XblJVfgWRS9ZC qbiWzqZHEJqQAgr0+yCRV6HAY5xjTbMODUJ7Bayl3wGk2QBG+vodQ== 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 4d66g25bur-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:48 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632CCEuQ013932; Thu, 2 Apr 2026 15:01:47 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6ttktd28-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:46 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1erD58327382 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:41 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D73C020043; Thu, 2 Apr 2026 15:01:40 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2362220040; Thu, 2 Apr 2026 15:01:40 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:40 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 5/6] KVM: s390: selftests: enable some common memory-related tests Date: Thu, 2 Apr 2026 17:01:34 +0200 Message-ID: <20260402150135.196943-6-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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=Fdo6BZ+6 c=1 sm=1 tr=0 ts=69ce84dc cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=TmFg2SzGmbXOhQH8FJgA:9 X-Proofpoint-ORIG-GUID: NCCTNkINBYwM7BGKRYqRB6WgHOHLdhEc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfXyjahlVPi949r Ci+kx0rS9gD+PpaRUEcpyKizFZRNCoc2E6gv1DGv/NSYVm+wmwXtWmu81mvOe1NPrj+f55LDHk2 4dGr9ic0zUhGd37KB7ZjV8VUP7JmVbv7y51c6TrW1N1TDNXPIS3xmGX5am/oVOHZqT3pyKXGo7h sXeLS5Et1C5+SglgiX240XzDbu+ugrOHXXQSjnEOMX8NBLgEgsRWY5RXl8V1LxW1yCv1Is7N34Z lrW4S646t2+e6Rz/3anPnB1S2ZI8STxuLLqvD/tvbyrOByZyYQvPqxcV1KnViPFApvW1z4TMhjC xo6CkynPdiXGwxgjDYzqdY7wVbYjYJWaafpAJlHXJxae9XDSf25eUBNlYkcOsTz4gNdY2c37Yt+ ILo74lYj2KKvnAPAWqdy43/SFFcAnA== X-Proofpoint-GUID: NCCTNkINBYwM7BGKRYqRB6WgHOHLdhEc 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" Enable the following tests on s390: * memslot_modification_stress_test * memslot_perf_test * mmu_stress_test Since the first two tests are now supported on all architectures, move them into TEST_GEN_PROGS_COMMON and out of the indiviual architectures. Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- tools/testing/selftests/kvm/Makefile.kvm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selft= ests/kvm/Makefile.kvm index fdec90e85467..057f17d6b896 100644 --- a/tools/testing/selftests/kvm/Makefile.kvm +++ b/tools/testing/selftests/kvm/Makefile.kvm @@ -64,6 +64,8 @@ TEST_GEN_PROGS_COMMON +=3D kvm_binary_stats_test TEST_GEN_PROGS_COMMON +=3D kvm_create_max_vcpus TEST_GEN_PROGS_COMMON +=3D kvm_page_table_test TEST_GEN_PROGS_COMMON +=3D set_memory_region_test +TEST_GEN_PROGS_COMMON +=3D memslot_modification_stress_test +TEST_GEN_PROGS_COMMON +=3D memslot_perf_test =20 # Compiled test targets TEST_GEN_PROGS_x86 =3D $(TEST_GEN_PROGS_COMMON) @@ -147,8 +149,6 @@ TEST_GEN_PROGS_x86 +=3D coalesced_io_test TEST_GEN_PROGS_x86 +=3D dirty_log_perf_test TEST_GEN_PROGS_x86 +=3D guest_memfd_test TEST_GEN_PROGS_x86 +=3D hardware_disable_test -TEST_GEN_PROGS_x86 +=3D memslot_modification_stress_test -TEST_GEN_PROGS_x86 +=3D memslot_perf_test TEST_GEN_PROGS_x86 +=3D mmu_stress_test TEST_GEN_PROGS_x86 +=3D rseq_test TEST_GEN_PROGS_x86 +=3D steal_time @@ -186,8 +186,6 @@ TEST_GEN_PROGS_arm64 +=3D coalesced_io_test TEST_GEN_PROGS_arm64 +=3D dirty_log_perf_test TEST_GEN_PROGS_arm64 +=3D get-reg-list TEST_GEN_PROGS_arm64 +=3D guest_memfd_test -TEST_GEN_PROGS_arm64 +=3D memslot_modification_stress_test -TEST_GEN_PROGS_arm64 +=3D memslot_perf_test TEST_GEN_PROGS_arm64 +=3D mmu_stress_test TEST_GEN_PROGS_arm64 +=3D rseq_test TEST_GEN_PROGS_arm64 +=3D steal_time @@ -205,6 +203,7 @@ TEST_GEN_PROGS_s390 +=3D s390/ucontrol_test TEST_GEN_PROGS_s390 +=3D s390/user_operexec TEST_GEN_PROGS_s390 +=3D s390/keyop TEST_GEN_PROGS_s390 +=3D rseq_test +TEST_GEN_PROGS_s390 +=3D mmu_stress_test =20 TEST_GEN_PROGS_riscv =3D $(TEST_GEN_PROGS_COMMON) TEST_GEN_PROGS_riscv +=3D riscv/sbi_pmu_test @@ -214,8 +213,6 @@ TEST_GEN_PROGS_riscv +=3D arch_timer TEST_GEN_PROGS_riscv +=3D coalesced_io_test TEST_GEN_PROGS_riscv +=3D dirty_log_perf_test TEST_GEN_PROGS_riscv +=3D get-reg-list -TEST_GEN_PROGS_riscv +=3D memslot_modification_stress_test -TEST_GEN_PROGS_riscv +=3D memslot_perf_test TEST_GEN_PROGS_riscv +=3D mmu_stress_test TEST_GEN_PROGS_riscv +=3D rseq_test TEST_GEN_PROGS_riscv +=3D steal_time --=20 2.53.0 From nobody Sun Jun 14 08:33:16 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 B27F23F0774; Thu, 2 Apr 2026 15:01:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142111; cv=none; b=hLkUH8ukbGrVil/rY1s/r7QmkHSy1kWfdG/PCSpv36PWsqZmlbho37sjUFzVmXaDrm+lAKO8Okh9859ZFXB+0JnhBnRx9jcypFPGdYHqSQgldbM67cpC4IFSp38tP0gK4EeePoTECwITZtfixbXBp2Xx/+ys2RuEtqE+Ppa6S8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775142111; c=relaxed/simple; bh=+2RNcKa9c5cVVfKFP9p9PuNCdqI6GHvT0fNn+HlrPHo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uAjkIEjdmMzzUL4aF3U6RrMgivASo85mX/tL7hmXVn6jEDJhqfrCyIatU+CmF0kUo34LACZduBPGbj2NUrLz/rHhpbTwRVhqcR9aqBOBij0E3t451fYce2R+I5roOpyE/su0xw5z06xH31uqmljmgB8EBjK/zWn0IMzVVRU33Xk= 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=OROjiAM9; arc=none smtp.client-ip=148.163.156.1 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="OROjiAM9" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 632Ekwax015098; Thu, 2 Apr 2026 15:01:48 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=Hu6tMlzUyfApP8h97 EEP58C3mVtaSLFaUfmOv/wQqUI=; b=OROjiAM9G/S0Z3K8Hked7mYBkP3vx817I qemtH33Wn/Qtl6Mv1VP9+V6JXiTUtUwuzA4NoRuYLH8AcoZWhivjJWyb9zKjUbsH 52PJh9bq2L4onlSGwNXjZiczAnM5fC9tSlCs/SK/iEtGpwGpcC6QKZVQ9zdhaO30 hoJe7Jv4p+IRyoDkypN/3Vjs6YCvvpTv4jkzDLLzXBORwwRPRWP15f8VjsfOeSWH 1QJmytxuvKPy6jf3EaosxRI1DmcAjxKmeYMy+8ut/257yGPFB9tjYbQCW2SBK8gf u/KLHotX1YoDNcLqJg0Ao7SmxGY+gmoxmI7ttyOVlIFJeIHdayqgw== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66q3d8tx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:48 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 632CnkXn031552; Thu, 2 Apr 2026 15:01:47 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d6uhk29s6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 02 Apr 2026 15:01:47 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 632F1fUW48628008 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 2 Apr 2026 15:01:41 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BC66620043; Thu, 2 Apr 2026 15:01:41 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F3B2C20040; Thu, 2 Apr 2026 15:01:40 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.129.177]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 2 Apr 2026 15:01:40 +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, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v3 6/6] KVM: s390: ucontrol: Fix memslot handling Date: Thu, 2 Apr 2026 17:01:35 +0200 Message-ID: <20260402150135.196943-7-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402150135.196943-1-imbrenda@linux.ibm.com> References: <20260402150135.196943-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-GUID: 6YGHs4HexZsaR15p-Gk9_r1C7rTYtYkQ X-Authority-Analysis: v=2.4 cv=frzRpV4f c=1 sm=1 tr=0 ts=69ce84dc cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=-V98bmycwAGgclNV9YMA:9 X-Proofpoint-ORIG-GUID: 6YGHs4HexZsaR15p-Gk9_r1C7rTYtYkQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEzMyBTYWx0ZWRfX64yRn6gGzc3v RDhSM7MCmxpq+j2TFD8j31HI4wuguFY46BZ4RGZTrkqVaPpHcpfGOl2xBB5MHEKNUViOf0fPtUT lB3okhIYNw3NnEKhVq2xgGSCU8aPmAiyuoSAe4DaF3bUGmi9Es1cqVvEEHURmw1Gji8NG7wN8q3 6lqnfkVGsJPPb62LO++mLmlZoxXvlquzetY6JbMeEre0cRcVQwXmyTdr0sK7m+b1ySdm16gT9iM etYKurounGtwzXw3I5yVZh8GLCeZw6dWLzGpxlSbtkW+TF85b59dCnUUBy/8sz1Rr3oC5X4YfXj dOySwoGs9+Qe6Jtd7wKrE5XBfPzLAu5Y8vFj8rcuAJglIZBao7k3bWdcjOb98wBHEhTykgo9HIF Kr62rguiPz9+LVTk7n1wuRgfi6kJLkeJFUcxjbALxwVLLQNeTgMlQyEAqLBTBhdjuWNT90MEnt6 fQgkkJuk6iQGoJvTsaQ== 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020133 Content-Type: text/plain; charset="utf-8" Fix memslots handling for UCONTROL guests. Attempts to delete user memslots will fail, as they should, without the risk of a NULL pointer dereference. Signed-off-by: Claudio Imbrenda Reviewed-by: Christoph Schlameuss Reviewed-by: Steffen Eiden --- arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index be2a721e2574..435c3a1b74f8 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -5636,7 +5636,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, struct kvm_memory_slot *new, enum kvm_mr_change change) { - if (kvm_is_ucontrol(kvm) && new->id < KVM_USER_MEM_SLOTS) + if (kvm_is_ucontrol(kvm) && new && new->id < KVM_USER_MEM_SLOTS) return -EINVAL; =20 /* When we are protected, we should not change the memory slots */ --=20 2.53.0