From nobody Sat Jul 25 21:20:42 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 D57D9315785; Mon, 13 Jul 2026 15:09:08 +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=1783955351; cv=none; b=ohM/eIo8btmSqUaujxvtK4t89e71TmVoBFAbhp8h3SOIL79GFY1b2WMbV6vEZmqXJxj/MRuPy4/B4VF68sp7PJmfgyk4zKxWSVy8Ig5hX+6Ljrfzmy7L0/IM4doRLvOZXAUFrgg5GAkWMeiup593HKbRgw+V3x3kIzLqtFNjwxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955351; c=relaxed/simple; bh=N5HNbMhs9mN7KnF87bKihseEFH5113y9+4X4RC4ir8c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cwoUnm9hCOv7VZVbN/wIxqfbC2EWUTzyYVzSzFjboN62t39Cle0e0OiI8xDos55EjSrLyWZB6Lpp9ku6dJZmy4vfLaH7zVF0Hkoxh/2y52I/wqe4/RSzgq3ORZyFukAFFyFtRZ5zj1/6cTFbdhpL6oSIVRkE2vl3+X6pavAoVbc= 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=H35+rtAV; 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="H35+rtAV" 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 66DCDJDo2437940; Mon, 13 Jul 2026 15:09:06 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=y3ElO2XeOERHWnLkU YCYp1KsBQgU77pEk6k+kV/88wE=; b=H35+rtAVHln7e+zDHhb3tldEuByhV0onk /FTsEfr2Vw90iodk8xUBNXsLkP4y30YTr+Buz/FMGTrFDxYwiUS2ozonNQuH1Qsv e1YjVZwrPC1PHZzzWDFF0789Z+wqE2A4SmwwEK7JwV5ff5mUP4juCXjp0Lr0V9xY sN9lrcfLPvLLj8dqRtfe8qz6U0qr4eALa+2rCoQIkzweNRarkeGxVJ+MRqjyrxIF mGbU/dzTHa76PItnItwRFkG4IaMujUtWby3+NczSbo3ClwV2hvfsrlmZwnJYaGDw P9J9tdzc9ZtIR3dd0h6K3mam8fg4ooxIPCNS3QC++5J6mLNTIbpsg== 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 4fbepx9ah7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:06 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66DF4x4v016931; Mon, 13 Jul 2026 15:09:05 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2cg610r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:05 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF8xxV52625738 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:08:59 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 90B9B20043; Mon, 13 Jul 2026 15:08:59 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C637920040; Mon, 13 Jul 2026 15:08:58 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:08:58 +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/7] KVM: s390: Fix unlikely NULL gmap dereference Date: Mon, 13 Jul 2026 17:08:51 +0200 Message-ID: <20260713150857.269954-2-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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: cP-Q-t-SwB4YIUSebqxwgS7hBDCBP0mR X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX1cIws3gTjnBr efHVVqSX4K05xvj7zwX9v5Aze4w05w+cP93krNCF1nwfk6YcxmDuOTit1lIx3ILx3DtlaJc7vwW Rw9nREGeqIQXiOjmEhYwPpW5rkZkf3w= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX3vFFZ/c5nAUy kHWZ8Occ9YBKsOQF7d/sFgPwQ2FOyDTQUNd/cxFtxrzxat/Lrl5QB72DGGm5KOna1E+U2CWyKw+ //V/3VwKxH+JloZO626kxWMdYc0V/93RquBQDLIDnNJW+xwT8g4vvws3cbBceNSGBiSGT4WA72G PH6bh2teNVibXkmfJHbVkwgu84ZrZsoka+OabeJUwiPtSSoYbqkvm/Od5XMSq39osy43DCiUWsd 7jArt9Px0Oyx+luyLVZ5FJ2UnfT8U6So6YWQsWQTR1AqdkurN5ZPf19Cnp0SS5VpSvIYi2fh+ja smQTjgxfQRzaz+TwOqQATrZ8Hg/LcLAkY28bJW4SK4YqVScfmewflDgp6tee5YJr6ZRPDCMANFV O+mNp6n0brsGBA5CsrSKZaftczqTZGpYW/CJpj1JG0HwlqlJ3/vD6MeHoeeTQY5hbDoZOExibp5 toV4lBQqyVCW4F0arZQ== X-Authority-Analysis: v=2.4 cv=XbS5Co55 c=1 sm=1 tr=0 ts=6a54ff92 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=-aBWQn_vEbd_VLME6SsA:9 X-Proofpoint-ORIG-GUID: cP-Q-t-SwB4YIUSebqxwgS7hBDCBP0mR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" When creating a new vCPU, kvm_vm_ioctl_create_vcpu() will call kvm_arch_vcpu_postcreate() after the file descriptor for the new vCPU has been created. The new file descriptor has not been returned yet, but a malicious userspace program could try to guess it. If a malicious userspace program manages to start the newly created vCPU before kvm_arch_vcpu_postcreate() is called, __vcpu_run() will try to dereference vcpu->arch.gmap and trigger a NULL pointer dereference. Fix this by moving the initialization of vcpu->arch.gmap into kvm_arch_vcpu_create(), which is called before the file descriptor for the vCPU is created. Fixes: dafd032a15f8 ("KVM: s390: move vcpu specific initalization to a late= r point") Fixes: e38c884df921 ("KVM: s390: Switch to new gmap") Signed-off-by: Claudio Imbrenda Reviewed-by: Steffen Eiden --- arch/s390/include/asm/kvm_host.h | 1 + arch/s390/kvm/kvm-s390.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_h= ost.h index eaa34c5bd3c1..edf75b6ad20c 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h @@ -440,6 +440,7 @@ struct kvm_vcpu_arch { bool skey_enabled; /* Indicator if the access registers have been loaded from guest */ bool acrs_loaded; + bool initialized; struct kvm_s390_pv_vcpu pv; union diag318_info diag318_info; struct kvm_s390_mmu_cache *mc; diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 23c817595e28..374dae6dae81 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -3611,6 +3611,8 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu) if (test_kvm_facility(vcpu->kvm, 74) || vcpu->kvm->arch.user_instr0 || vcpu->kvm->arch.user_operexec) vcpu->arch.sie_block->ictl |=3D ICTL_OPEREXC; + + WRITE_ONCE(vcpu->arch.initialized, true); } =20 static bool kvm_has_pckmo_subfunc(struct kvm *kvm, unsigned long nr) @@ -5037,6 +5039,9 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) kvm_run->kvm_dirty_regs & ~KVM_SYNC_S390_VALID_FIELDS) return -EINVAL; =20 + if (!vcpu->arch.initialized) + return -EINVAL; + vcpu_load(vcpu); =20 if (guestdbg_exit_pending(vcpu)) { --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 C849531DD97; Mon, 13 Jul 2026 15:09:09 +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=1783955351; cv=none; b=oHzL3mx0myVWyCoCvingznFdt+plmIEdwa8UhpVXHwZA09bP0/rind+UTyktMo1mFGzpoxRa9nlt6gdG4UN0V/Ll2zbWsX0qYveAfXGPSVvoEyRddz/OO+8ccUuS4h4zdNRPY81YWom4WHAQQM1rXSSSAJgkExK3pBhR4STUp3Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955351; c=relaxed/simple; bh=MMlhbPxOpeprbrS6Q6+Za+3fz514wtI0K7hWiQb2WGI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H8fVVBC+6uG5q86XuyUwhGDjUiy8DnoIWwALBFfnIm7tuSWEfqkd01hT7WWTg2yYkQf8uTmpt+a+tA1F1SgIFDE8LmvihnbFqCLuHtcRzTEcEkMQpaxa7e3MOtGOlptB6lshgLxe9bMHmCCXtQ9lk/vyHhTxKhsw7VUpFnkX2eU= 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=WObBDm5l; 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="WObBDm5l" 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 66DCCvwW2436851; Mon, 13 Jul 2026 15:09:08 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=1ydwYp7qIDT0IiImF QeRoxlrSRWdWkPaR5oemlJ4to8=; b=WObBDm5lwYWqPYl9u9U892rkXvhCEiBCW ZLgffzEfB7DUYkgNa8+vCUnDZ/iT/1M3OYdFoRZee5H389yMpv7B7L4OOYXdR4J2 3CGYCXqXGDMiljuxVu7wpDcIsPxCRK4ac+Ee3fIVVVqYCIQ0dBVNrTsH6PrgFV8o m3ZK0i5X8RSpjXRiBwG+sj3XN6UzTd41DfkpWcrwA6rxuqyyFXBHBCvG++uaCff5 KfeMbORPUzoD0IjghfGLd6FVik8BAnT6xBTVxbv0fu0ezD7Nf+wq94FR7DbAGprM gA1Aov6CNP19qQqTyXgq51wh9A6zemJpehwbrVJal1sqVzrnwymcw== 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 4fbepx9ah9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:07 +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 66DF4kF7006328; Mon, 13 Jul 2026 15:09:06 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fc1nh654c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:06 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF90xK15270376 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:00 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 791D22004B; Mon, 13 Jul 2026 15:09:00 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B01E120040; Mon, 13 Jul 2026 15:08:59 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:08:59 +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/7] KVM: s390: Return -EFAULT instead of PGM_ADDRESSING Date: Mon, 13 Jul 2026 17:08:52 +0200 Message-ID: <20260713150857.269954-3-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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: rfoma1cf2KEgm3vt6COPOEIkNDo-GcUK X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX90qbjCSV7uUr IIp21Bze6WyaqZmjyzl4zec1/z2jDIMaCrv+g41ixMfc/vnCK3DfWSOBDL4h4XcPmZ1PlznaJLI w+LIK/ySP73bZVbP+W4Q5xfWWYgIeAQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfXyyYJAaOE5G9C ADFOOd5M9w4d2TZS2PlHM82iUW8kVdh6WRAXinpzs+7dmQiQhcG/eAyBMTuljWyPEaWGvv/ZGl/ XO3OROWBGmVpEoSdyg5j6yJD4ymz6/1XA0W1Z0DruCNu71xH2duPXkXzZj3ACnXwaJm9/nmB+/D 9gYletbE5JCb96v9MEHrHHEIE11Ec4/09DxM6abrJhBb8VaRBFihatIUyU6gaEouNZwa4G6gwT9 80LruIT53z+gXsS3mRdz9xQsx7Xm6eGKP+o6Ub2Hon+GGCDzKhU3/ek6NdK5dDGFSxd1TLPtM09 CIrNgAfXfCi652RUTvInxez8tUdgMwIUi2H9FitBqGTbp/3mefbGOA1fDQyRTsVu8EFtDAzDU5F INZaUNkekdAYzYqoDm9bG+pwYTqEeNlO/2VfQU1D/277Kgaty/GIWmL0J8+OWqro9m3Z4+NMVO/ lbEpFBjl/lZ3fftY+1A== X-Authority-Analysis: v=2.4 cv=XbS5Co55 c=1 sm=1 tr=0 ts=6a54ff93 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=hOzztX8ZSV9-bidYd0MA:9 X-Proofpoint-ORIG-GUID: rfoma1cf2KEgm3vt6COPOEIkNDo-GcUK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" If kvm_s390_set_cmma_bits() is asked to set CMMA values outside of a memslot, PGM_ADDRESSING (5) is returned, instead of a negative error value. Same issue with kvm_s390_{g,s}et_skeys(). Fix by returning -EFAULT whenever the return value would be > 0, which is consistent with the behaviour before the gmap rewrite. Fixes: e38c884df921 ("KVM: s390: Switch to new gmap") Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/kvm-s390.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 374dae6dae81..53691aaf6534 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -2212,7 +2212,7 @@ static int kvm_s390_get_skeys(struct kvm *kvm, struct= kvm_s390_skeys *args) } =20 kvfree(keys); - return r; + return r <=3D 0 ? r : -EFAULT; } =20 static int kvm_s390_set_skeys(struct kvm *kvm, struct kvm_s390_skeys *args) @@ -2274,7 +2274,7 @@ static int kvm_s390_set_skeys(struct kvm *kvm, struct= kvm_s390_skeys *args) kvm_s390_free_mmu_cache(mc); out: kvfree(keys); - return r; + return r <=3D 0 ? r : -EFAULT; } =20 /* @@ -2384,7 +2384,7 @@ static int kvm_s390_set_cmma_bits(struct kvm *kvm, =20 set_bit(GMAP_FLAG_USES_CMM, &kvm->arch.gmap->flags); =20 - return r; + return r <=3D 0 ? r : -EFAULT; } =20 /** --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 50A2743B3DB; Mon, 13 Jul 2026 15:09:11 +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=1783955354; cv=none; b=cEjxJY29JK5m3nmvIqFQsqTDADLBd7809P25syj6/czw8wnoFqjcRJ9klPwSjw29NtPyALk4k4RJCNKLI5cy6b2yesIMHUf+tVtQZagqsImSmOJqQywAZHRVX7Z0haq9lm/T9N3UKCliutDFTSAorzmEx1DHBUGRz1HggsDoImg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955354; c=relaxed/simple; bh=yS6Scd623yrLxXIGI+hxMK2bMxPsOMm1OyhPbps2X6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KEwU0IxxSj/ZU2Fp2+y08NrwKfZvU6BGpF05jEeBl9eOrSGT4O7rMgTr8MeAl319O0RjVrRk3cjf25wXL5twqPbVFA+hQMP09S2NgaAaxKjMRb/yq4PcD5tRu0DvJiU5B8aNgyCTjXaVEI70oXUhSi8eSBNW27WmZskWQqS0tMQ= 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=OSi1Zsm/; 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="OSi1Zsm/" 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 66DCD4DQ2370732; Mon, 13 Jul 2026 15:09:08 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=wq0x68XiD0o8hxCbY 1beN0GhivgmmIWiliafc1pnd/c=; b=OSi1Zsm/QwHBIsKpON4u8bGAkOTtQjeTW 2b+5Zjvjflj3NkxQLdxkd2wfT5MVfbEoj5pSONVS9ODU9hgXcOitpXmv2uetDoa0 moKihFejywL12x6p46oYrIBZ/XYODFGs/wK3rXRno1/LIi2Q0LRRsaU6CF3/2149 LZ85S8zcMcDyLjuJuq9JEWHm5PtaihgVL1TgR6rTkEHBNwh1HS0shUV8gTmaWWr6 sLpks7r58CwO734TdkvFmD/jox1d5eJzD5hez25A17+XBgW7I64nnefDSNZeRwU8 X9uV2ZLfJb+LDyMu9i7IfYmuIWMX4Tlc53894FXVCZ7jcSZeCmT7A== 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 4fbexwgxc2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:08 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66DF4vEQ016896; Mon, 13 Jul 2026 15:09:07 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2cg610u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:07 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF91ZB45023706 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:01 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9069120043; Mon, 13 Jul 2026 15:09:01 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9CBD320040; Mon, 13 Jul 2026 15:09:00 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:09:00 +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/7] KVM: s390: Fix race in __do_essa() Date: Mon, 13 Jul 2026 17:08:53 +0200 Message-ID: <20260713150857.269954-4-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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: TO4sAh3WbSf6kSX7jyysdujzLHDVR3D- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX7H0eQHzXzZqn sVxVujsqVur/AxQCZq1KDOy4jVsWOcaBxupHqoT9ditmphEmGEt2L4mOMtnbyMUvS8EmXCTjFub gT0aEJCf6VlrPkb3HE9kr1Vw+terFvhOE9TLsl7Iy3DnoWz2r47pDmWcw8ysMZNQT5Ho0Lfuxk1 N+ghQAZWTQMDDF8sHIDAyrrpY1H7QHt8MTSUR+GrpjRw9nIkghd9TuyeaNarEOOWndOQfyHHcv6 +Gj6K5ZUt8Ip4k9MxUF4THdxwtHVt1Fl4LUgF776N8aaRl9x9FROEpwIjjT8bnV7a8fl0qh5wzZ qs/R0ZjlLTx8uuU/csFBemImtkpBLgoAsB+iBKUiKM1k5U1UCFA73PCIPexJLOjIpBRzJVAa5/A 80hocktG0pi3IJXTsPpLsYbx0tiOpsS5pcUwu1eu8a+YEAX08vCrMsNQbNNPUXvb52v9+oOTy4l VG0MGEGjSU7fTIdzGkw== X-Authority-Analysis: v=2.4 cv=XJoAjwhE c=1 sm=1 tr=0 ts=6a54ff94 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=AI3xc-Vg5h5KuinStKkA:9 X-Proofpoint-ORIG-GUID: TO4sAh3WbSf6kSX7jyysdujzLHDVR3D- X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX8QjEh69uuF2O RCq++iUarQJNEw7UWOTd87oGBO6e4GTzihp7u0tAMSMu5rPgp9DgmQ1Jv3cgm7PrgH139O103Hi pZqtmt8YgKgxd7Un6dYwgZ3Yb/ZTrpI= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 clxscore=1015 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" An unlikely race between __do_essa() and kvm_s390_vm_start_migration(), kvm_s390_vm_stop_migration(), or dat_get_cmma() was possible. Fix by locking kvm->slots_lock. Since this is not a hot path, the overhead of an additional mutex is negligible. Fixes: e38c884df921 ("KVM: s390: Switch to new gmap") Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/kvm-s390.c | 9 ++++----- arch/s390/kvm/priv.c | 5 +++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 53691aaf6534..9e3b8b5c6aa6 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -1298,7 +1298,8 @@ static int kvm_s390_vm_set_migration(struct kvm *kvm, { int res =3D -ENXIO; =20 - mutex_lock(&kvm->slots_lock); + guard(mutex)(&kvm->slots_arch_lock); + switch (attr->attr) { case KVM_S390_VM_MIGRATION_START: res =3D kvm_s390_vm_start_migration(kvm); @@ -1309,7 +1310,6 @@ static int kvm_s390_vm_set_migration(struct kvm *kvm, default: break; } - mutex_unlock(&kvm->slots_lock); =20 return res; } @@ -2996,9 +2996,8 @@ int kvm_arch_vm_ioctl(struct file *filp, unsigned int= ioctl, unsigned long arg) r =3D -EFAULT; if (copy_from_user(&args, argp, sizeof(args))) break; - mutex_lock(&kvm->slots_lock); - r =3D kvm_s390_get_cmma_bits(kvm, &args); - mutex_unlock(&kvm->slots_lock); + scoped_guard(mutex, &kvm->slots_arch_lock) + r =3D kvm_s390_get_cmma_bits(kvm, &args); if (!r) { r =3D copy_to_user(argp, &args, sizeof(args)); if (r) diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index ad0ddc433a73..d4c91e416167 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c @@ -1260,8 +1260,9 @@ static int handle_essa(struct kvm_vcpu *vcpu) /* Retry the ESSA instruction */ kvm_s390_retry_instr(vcpu); } else { - scoped_guard(read_lock, &vcpu->kvm->mmu_lock) - i =3D __do_essa(vcpu, orc); + scoped_guard(mutex, &vcpu->kvm->slots_arch_lock) + scoped_guard(read_lock, &vcpu->kvm->mmu_lock) + i =3D __do_essa(vcpu, orc); if (i < 0) return i; /* Account for the possible extra cbrl entry */ --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 5CE1943B3DE; Mon, 13 Jul 2026 15:09:11 +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=1783955353; cv=none; b=XUong79mBdkQr5eOPN4XIYdcucgWbjpaclQpxf/tkBPaqgxDFLDbSdoRvqJIfh/Sp49qvS7WVVNYZl+Qf176YdNXDJvyK9fjZ5yfSjaeSvssHQI4UeezFB/jSwpe8f5s2HPW2xtmkM1fJniT7Y09XmCD2Yq9h9brgg802JGpkZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955353; c=relaxed/simple; bh=lRPq5W78SRyF5XuaLS+1/OK0+nz8Bh/M1o+sL/t/QVQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nmigfqGiRR7emgKasFvbzsEIkqpY9BxHqi4UKJn3cQYRWEyMZpTXYe24zO5s2bBEwQpJfnYoiTINj6UtakuwdT5MBGmy8pTn8wMeb4Ho72PK+ZW1vtSaKbQqD/WKzW5hPA/lOu9AdqeIqGEBtCtwo1GNbiCvQDyBO8TKC/HylyA= 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=aCteyF4b; 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="aCteyF4b" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCD6Vr554963; Mon, 13 Jul 2026 15:09:09 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=ksRnIewlaavpGEMby cdIbR1YjxZSamSBIjRbXkpnABU=; b=aCteyF4brBalfuQzP9q6lpyL+15AcVy03 FXUzfZvpLVhOVivhLjhTXg9UiMjw9MmdlJ30d2LnZJj7GJ6WCpHpGzEgZktzSim5 EwMmcijdjLbVoyWJo65qRmUCwUFLKWT784iOV3wjcXjCqmQRg08GkII2uUXsgLAL 88VhMPPsjcKpNFT9kxVLgfXT3UFAzIqK37zj1xLCTlo1bvhLrzhXQccYE/354lKh VpOel2lDXP4dTHeEYOVOLeRubAMM4X+YMjxCJctJaTVhjpVRBukyt88hN7i67ney hgUr2tnC0JEruhqEN4QVmkX16447dLYu1Mp+Ql9rNtXo1El/Ji8Lw== 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 4fcv331uyw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:09 +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 66DF4e0P024781; Mon, 13 Jul 2026 15:09:08 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2uxwxpe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:08 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF927U42008924 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:02 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 787BC20040; Mon, 13 Jul 2026 15:09:02 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AB9052004B; Mon, 13 Jul 2026 15:09:01 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:09:01 +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/7] KVM: s390: cmma: Fix dirty tracking when removing memslot Date: Mon, 13 Jul 2026 17:08:54 +0200 Message-ID: <20260713150857.269954-5-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX4zom+YPoBfJF 1jgIO0OphbhuWMimCQT9KRLDYvPPA//dnHgUHXcLRraXT6YAZMV2jgkK0O1Qs23afTG7JekSgbF 9S3amYMDCjX8oRCgCOKVJareZiSRNxk= X-Authority-Analysis: v=2.4 cv=Mp1iLWae c=1 sm=1 tr=0 ts=6a54ff95 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=VchRnoiWiGOQ40ZGZhEA:9 X-Proofpoint-GUID: ZtNDdClKLj6cs9099sb2zCmjEz1w-wVV X-Proofpoint-ORIG-GUID: ZtNDdClKLj6cs9099sb2zCmjEz1w-wVV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX6rQLkJSs8nKk YxxLPCzS+g0wbMLjkvFtLPVtZ/9+jOyBURjJ3Dl4AGlocp5PhzqmjtLbKf83NtcH5Yd8HJ0XXVo GH475K4RZ6N9kRbjfkBTblKy5AZJggy8twufBwOaPp0elbvTHHqgriL9lQTSN9Y0AAL+Xa1vWcC A3OywdHzBZhncDHnDbKrhRF05wLb4Fon8Khnatw0iIaXaBalbpsICc4W8korJBqaY927J/PwePd yGyIvsTAUZB/q98OMRepbdEqpZ95D5nVHkQZ887U+DlBXTFYhQGX7rycblAG2JamtYPDljmNv1L xPkMZODdIUM8GmbXYhPxuVXoyECLu1OXr/ZwZDFaA/gJObMr4U05yfwQWBjpMsEiUZ22OPO3AH3 5MODUiysL7HDuZY8JM9BGZvufiKx0upEBAv7unfXf9a2wa+Rh9jx1m3iD8BjPSbJ/TRwrWPZFDf 82EypmMa6kGWjWpNB8g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" When a memslot is removed, all ptes that mapped the slot are cleared or even deallocated. If this happens while the system is in migration mode, and if cmma-dirty pages are removed, the cmma-dirty counter will not reflect reality. Fix by appropriately decrementing the cmma-dirty counter when removing a memslot. Fixes: e38c884df921 ("KVM: s390: Switch to new gmap") Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/dat.c | 7 ++++++- arch/s390/kvm/kvm-s390.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/dat.c b/arch/s390/kvm/dat.c index 5f1960ec982d..cc0b8b1330c2 100644 --- a/arch/s390/kvm/dat.c +++ b/arch/s390/kvm/dat.c @@ -844,6 +844,7 @@ static long _dat_slot_pte(union pte *ptep, gfn_t gfn, g= fn_t next, struct dat_wal struct slot_priv *p =3D walk->priv; union crste dummy =3D { .val =3D p->token }; union pte new_pte, pte =3D READ_ONCE(*ptep); + union pgste pgste; =20 new_pte =3D _PTE_TOK(dummy.tok.type, dummy.tok.par); =20 @@ -851,7 +852,11 @@ static long _dat_slot_pte(union pte *ptep, gfn_t gfn, = gfn_t next, struct dat_wal if (pte.val =3D=3D new_pte.val) return 0; =20 - dat_ptep_xchg(ptep, new_pte, gfn, walk->asce, false); + pgste =3D pgste_get_lock(ptep); + pgste =3D __dat_ptep_xchg(ptep, pgste, new_pte, gfn, walk->asce, false); + pgste.cmma_d =3D 0; + pgste_set_unlock(ptep, pgste); + return 0; } =20 diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 9e3b8b5c6aa6..5c2408fc5a8c 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -5796,11 +5796,19 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, return 0; } =20 +static long cmma_d_count_pte(union pte *ptep, gfn_t gfn, gfn_t next, struc= t dat_walk *walk) +{ + if (pgste_of(ptep)->cmma_d) + atomic64_dec(walk->priv); + return 0; +} + void kvm_arch_commit_memory_region(struct kvm *kvm, struct kvm_memory_slot *old, const struct kvm_memory_slot *new, enum kvm_mr_change change) { + const struct dat_walk_ops ops =3D { .pte_entry =3D cmma_d_count_pte, }; struct kvm_s390_mmu_cache *mc =3D NULL; int rc =3D 0; =20 @@ -5814,6 +5822,12 @@ void kvm_arch_commit_memory_region(struct kvm *kvm, } =20 scoped_guard(write_lock, &kvm->mmu_lock) { + if (kvm->arch.migration_mode && kvm->arch.use_cmma) { + _dat_walk_gfn_range(old->base_gfn, old->base_gfn + old->npages, + kvm->arch.gmap->asce, &ops, DAT_WALK_IGN_HOLES, + &kvm->arch.cmma_dirty_pages); + } + switch (change) { case KVM_MR_DELETE: rc =3D dat_delete_slot(mc, kvm->arch.gmap->asce, old->base_gfn, old->np= ages); --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 2317A33F590; Mon, 13 Jul 2026 15:09:11 +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=1783955353; cv=none; b=cqpryCbsG3ub4b3UQsKjZSDMLP81sy6IUSqH2wX+EWcs3g5NG7LhzsK4WYzX9zgZlRifHc0TdRSlwMduwHpdDjxpbxAIPr7N9sjfRVnn/cLRpC/5Z9D3QTWfQYtw+4E0YUBrwXQegKYl0zNPVFo80dryPKjvQf1pPIqy2aeqCjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955353; c=relaxed/simple; bh=65A5PGuki8z2dmhNTLY3DM1uBGLWqw5X8PjSu3Lzu+s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mAcxrzt51dF+ubPvUwWmQ/SqveR6tFPcnjGfb/e8OSnOt6Lz+NrLPHTtcdTfOK5+Hzt/QxRx38KrEPvNQ/piifaIJ1iG7b4u6CKRitzofyeIJfjfv/CKl+Q+U2nHeORBYDx4+QEar4Pxz8lbMp8tGGVE8ADOdKQiHwuWMyR8FA4= 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=N+lZ/ZvH; 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="N+lZ/ZvH" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCD8ZZ554991; Mon, 13 Jul 2026 15:09:10 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=KAIEwT30IDabpHLUY HkdE7JL5TmpVX+5znlhOoE7lt4=; b=N+lZ/ZvHvrpfpX59lOdGcdy58PgqC0Xqt dtAdBsgbBKgvsVy9odPt24P40EsBQNqXIjxfD5fYLDL4XXH0CnaYK0NpfDLUL+Wp IXLqh1RvQkapyz4KeYt1GploDYiJ6NKu8BLKcpkCRGw+R/ZCAtBkqjmKSL4h6dVm Nu5z+qCk8X4aNV0Psne8r2KPLDAxSbcvXm+aT+Jxe6QBmrRXIcb+eNvLmkcChGq4 XIoo7pqxRb+7v6TtYXXgDlYRD+m5WHgDzynPr50pgiu7jQWcXRfYSuF+/h7J77Ny hClMkj2eYTRsVpGu8gUzOZh8Xh9ADDZPFQATWguzTJVoLOtqQn2XQ== 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 4fcv331v00-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:10 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66DF4vES016896; Mon, 13 Jul 2026 15:09:09 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2cg610w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:09 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF93sq21954938 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:03 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8376F20040; Mon, 13 Jul 2026 15:09:03 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9911820043; Mon, 13 Jul 2026 15:09:02 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:09:02 +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/7] KVM: s390: ucontrol: Add missing locking around gmap_remove_child() Date: Mon, 13 Jul 2026 17:08:55 +0200 Message-ID: <20260713150857.269954-6-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfXz01MWZbWZtIG jlDchO0b5MK9QWsvkgSL1sQhEwMGA5SM4/jxkg+sOrVFnKQvW3hXA3TBGbdQzNmHZjN8nRVXYUO Jo4TNQjgpa/9Yv1Og82Sr9Lqs7f1xsA= X-Authority-Analysis: v=2.4 cv=Mp1iLWae c=1 sm=1 tr=0 ts=6a54ff96 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=QmTE1Q1btZTQ1f_0pJkA:9 X-Proofpoint-GUID: Eu8vq2TaDOAXgGAP-S6g_sZAGKdbkzIS X-Proofpoint-ORIG-GUID: Eu8vq2TaDOAXgGAP-S6g_sZAGKdbkzIS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX1NSAX94dDNiX Qd21miLO+n6kagsRP6tBJubOEoD/1vQOKMPBY+kOpwE3gH+CnygbCaYo/stRclq3SR61IoJSCxi YQ9ICKOifTvg4OCegByjW+EpJVYUtbOPRSabSGFlfliADWMX3YU3K4x+crtdTBs1JfDzrwV66mt Qtbo9QxI70P8WfR55p/fjE7Pe4hgi4LXHRiLBVrvIDKFC0go/C6V/i3FDTHSyjPkIOIMnK2c8or QM5qHkTupis6ZL/nVGcqWdEoaZNbon5Y+mJ+YS4uUHPcGPw/sep3bL0dKJb98wsnIgwfC63fzYy HP4ZQ0hHyw7Mmhx0TL5mRRosbrjSFpLqA5lx3YP5UzUaF+/iJzeusiRz5v7EKjPAeQhz6fKCYjh dYBVG36YwVMDgKRgMeVQVqopo8L30SlXWw+hicKjpwryGu39PLwAZz5YbAEqHZovm9jr71zQgr2 SBJonVw6ivPX8X6KZRg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" gmap_remove_child() needs to be called while holding the children_lock of the parent gmap. This was not the case in the error handling path of kvm_arch_vcpu_create() for UCONTROL guests. Fix by adding the missing lock. Fixes: e38c884df921 ("KVM: s390: Switch to new gmap") Signed-off-by: Claudio Imbrenda Reviewed-by: Steffen Eiden --- arch/s390/kvm/kvm-s390.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 5c2408fc5a8c..fc0a884d7f54 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -3866,7 +3866,8 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) =20 out_ucontrol_uninit: if (kvm_is_ucontrol(vcpu->kvm)) { - gmap_remove_child(vcpu->arch.gmap); + scoped_guard(spinlock, &vcpu->kvm->arch.gmap->children_lock) + gmap_remove_child(vcpu->arch.gmap); vcpu->arch.gmap =3D gmap_put(vcpu->arch.gmap); } out_free_sie_block: --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 D375043E49D; Mon, 13 Jul 2026 15:09:13 +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=1783955355; cv=none; b=eVwDfeERfC/9TD42qRtvp21YvvwzI82Ov4+AT6e+KpjmdgT4NZGkp7pli3iwvyBFg6Mc6fZIr8rWo6N7OCXZiroGEM5tojC6d5YTdvbzGn8Z8clmwt2xXdw9G2UnVdU0+K2eSZGTmlEmoppjxsy+cCZL1a6/nRqdZzeBUMQdm2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955355; c=relaxed/simple; bh=TxP+xPPnUxB3nUxWCXUkuNC9Al+VspKO6JEiyfJqusE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J6w8PiyT+xpzrHi/Z4UW1HuSA6oUN7D4mEnwHuzwQQ5AxLvg8LNlMmXVTMoYdsk5ILN6dhE3AzxBYpOlBWw9XVw+J1yNQ/x/eP7AlUjggvp+Vvn4QfySKYPJxD+l1XWKGUQM8K3E35eUjLbIwXPS3pnw0p2Mzwkt5VanFcBwHOo= 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=aN1OjRWE; 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="aN1OjRWE" 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 66DCDIdL2434183; Mon, 13 Jul 2026 15:09:11 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=0x7yTF+EP/oOZwkh8 8K1pJWYWWLZvipm15+0/covB1k=; b=aN1OjRWEse89A+FyHo5fWA7dlivrihvI9 ED7+8zAuFXhVlT91xYXCuwxJJlqGTBoqI6o4CONnGPEA8N1rT9oY7Mr4nAIh12hJ qYkERsGhr1iqjgG+QBcOk4epwv6Oarg+DPbWmujSwBmh23paZh3qkHRh6BoxjrGo 0G4RlPfYjEakwMhhIOI5/besixMWbngZFtXoy/A5V1bgjOqavXiZ83gVyyM09Qd8 p0vcYg1JkRIRM6A/Y1ywsyjvVozs+v5bgY2oJ7p4XBQxTGMESd1w/nxTLX8xzXME CxFu7lTBB8WVU01h64W1BfHXJ3i3SiLKl9FB0wVhuLT8X98XRdNqg== 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 4fbegbh0d8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:11 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66DF4vET016896; Mon, 13 Jul 2026 15:09:10 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2cg6111-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:10 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF94x532178448 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:04 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 79B4C20040; Mon, 13 Jul 2026 15:09:04 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A4FC120043; Mon, 13 Jul 2026 15:09:03 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:09:03 +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 6/7] KVM: s390: Fix overclearing ESCA in case of error Date: Mon, 13 Jul 2026 17:08:56 +0200 Message-ID: <20260713150857.269954-7-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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=fOcJG5ae c=1 sm=1 tr=0 ts=6a54ff97 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=OniIQR2WiTFW0jQNa14A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX6geI9Wxui/x3 52pIpf7kz6dZReIh0aykdi8CriR1Cs5LSVq/ThY3N0hmeDmTJY24JW2q3hRSDYrgxH7+xjczFF2 XjBEsvzVicG8vaAPA0cHhuRxBka6nYEmD5yiuubeucdHZWru+/OK/Xo+JMPxznsWzIpQ4sa1dJ2 4w5NNHXgfOSaPhQjd0x4NzOiO81Sm4h06Ry1PeLbSW/98TZGA7A7AFGZEFKV93BiKQH2p+HTJaY JmhOHYPoW0Rub9dum3h5Ahnt18nLwFdk+ZpmSxh/D10HxYpIhzy/JEXtg4s0vtZerS9ZiWB/uuG BXONaPXSU3slD1NDLQV3sNDO0WBRQowuhDiIQW0eLu+o+QrWWRaogHYtWLz0FIKwTf4qL4+cZHy 4dssGY8bq0wwUlXoFUjqfjvcjVr290+y7fah0yLO2qXAIZaNc0nbi+fGy9MPfZTO7meaQ7cMn7k WLG7EGfPzLWnvuBbbBw== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX55Nwu295gVQN swPbEfO4GNyqAvqFQbn2gLvJXUlhnJhYFdqJPTM0LmVImTJoNahHj7TWrDKyy42tGs24w+7YAD8 q3tRj9O1Y1c6+K/uzQuWOyEyV/1oY4U= X-Proofpoint-GUID: wNOhRvPVmKGw0R9bTd-KTjIxmEVmcMoW X-Proofpoint-ORIG-GUID: wNOhRvPVmKGw0R9bTd-KTjIxmEVmcMoW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" If an attempt is made to create a vCPU with an already existing ID, the duplicated vCPU will be destroyed. When destroying a vCPU, its ESCA entry will be cleared. In the above scenario, the spurious duplicate vCPU is destroyed, but the ESCA entry corresponding to the original vCPU is cleared. Fix by skipping clearing the ESCA entry if the vCPU creation was not successful, i.e. if the pointer to the ESCA in the state description is not set. Signed-off-by: Claudio Imbrenda Reviewed-by: Janosch Frank --- 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 fc0a884d7f54..6339a327a7be 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -3458,7 +3458,7 @@ static void sca_del_vcpu(struct kvm_vcpu *vcpu) { struct esca_block *sca =3D vcpu->kvm->arch.sca; =20 - if (!kvm_s390_use_sca_entries()) + if (!kvm_s390_use_sca_entries() || !vcpu->arch.sie_block->scaol) return; =20 clear_bit_inv(vcpu->vcpu_id, (unsigned long *)sca->mcn); --=20 2.55.0 From nobody Sat Jul 25 21:20:42 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 BF32B31DD97; Mon, 13 Jul 2026 15:09:14 +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=1783955356; cv=none; b=ol8xPP2Np+uhFfGNUZLy+XpWXx/sDI6oMms8Tjp6HZFAZTJUu8PYQusN8NvZhHDXCwp2HYueMKI1TjnK5UjTkRZmvBv4g/ha0/K63HSsomNuYrrO+3/i2QB02J80MTkTUNpMEfMTwrOtpTIqkBg4c0nKQPtuUb2+aySEc/ssPbE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783955356; c=relaxed/simple; bh=Gug3m8waKqQj52Ng15611qHVWQsQtQju401Skbo31D8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PAPNuZ1h9/VvjBe0c8rilx4BsBltKKeRVFpFyICRv651yfNhOC+pfaWoBGgrZC2LWaM3dxyN4OgOJY1ha3ZkuJMdweAFOEZyTqoLXEMN5wmkHHQ45XzdJlxhiEeMCfZ1pTonhkwfIaShO6OhcFhl/76OAPHhw3ch59sy8LHgZlc= 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=ebD7aLLJ; 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="ebD7aLLJ" 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 66DCCuT82436841; Mon, 13 Jul 2026 15:09:13 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=hD1xZusRyHJmtNOzB MOg3BMaby2xmXZl29BH2/XbpEs=; b=ebD7aLLJRwj6orJYBzZbg0BZlyDcJwayT fqygD9Ib0R1iENBlGjp4dd6C6bQ0cZEwZR3u/ajKG2KgKVJRpNb8lPxH2EE3GbuI GfEPb/YOwxus57wqdv4Fd4xGH0+cbb3TFvlYC/iLiRMdCfWIaFg72DiY8TBoDVdp 0NNpfikb819vSMHMyacxswv1vBD+c0bkHbxodf0oxLUQHdAxa6P1KJ3qPtz1jHqw ZaehgdVW1Qh/impPRVCO26T3WBfpH08KPJ2bAsYBokZWOgVidVQloVjStyhdcnUV e+b/DFDtO+TWpUxuW/X9biiJg0OW3PJ3A8/GuwEkgMW23SjoPZMNQ== 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 4fbepx9ahh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:12 +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 66DF4dmK010986; Mon, 13 Jul 2026 15:09:11 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fc15jp81u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Jul 2026 15:09:11 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66DF95RO49152472 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 Jul 2026 15:09:05 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6FEB320040; Mon, 13 Jul 2026 15:09:05 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9F64B20043; Mon, 13 Jul 2026 15:09:04 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.87.153.197]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 Jul 2026 15:09:04 +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 7/7] KVM: s390: Return -EINTR if a signal was pending while faulting-in Date: Mon, 13 Jul 2026 17:08:57 +0200 Message-ID: <20260713150857.269954-8-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260713150857.269954-1-imbrenda@linux.ibm.com> References: <20260713150857.269954-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: OLU_nqu0Nhm26139JSoWQE8gxpWuH_3k X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfX6cISORcI76T8 W4Ir8ahb51rOSH6qwzBJsLazOBDlNyIuD4XkOUACiFSUJPQ0283a9J/ReKTlBvU+jxurH4Fn0+l +yXg8nh/9bgvXXjWcXbu0kwDHDhQU5Q= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDE1MyBTYWx0ZWRfXw3mRlRvOdXm6 rGAHjg9WZAAwEBk7mfZi3DtRfAbfeDCY8et9HFJq/yiB05S5mT4CUfmVmfeiZ7+q3XQ1VOmsKP5 hSbiL3rHiXPKtjnt0PDzJ4T83OvnhhZSmHvhk4D7Wf9EkEtYhkIjwQ0AzcNqQAKVdkNykMpEEdA +i6FL90AqdlwEcNvxX3EK1cttXn7+vLDY1VGN1Fer0Jv6o8OU2FdszjaKu4apCrcHedD9fGuy7e 5DIGvzflVxK3WX1f8mkQYRpxFcFFkZYKjlB8Jwfct+dL4ugofWYXzvAtPZHWfNaSNhZktz4y3hR qNDqANHKuC0cccfC3zjp7jG65Fm0AOxSL77OeoggfU7co4xuXR8yx01XZv5R0RzEWwSIC08xbo2 ajcjkIpTINwO1PJbGc8kgWXEW0iigoOoypZssWSMweUHh816yH8ej+K+EqheVAmNn8YFrPTLop8 RzlmgnYqGy9WQxN/0gQ== X-Authority-Analysis: v=2.4 cv=XbS5Co55 c=1 sm=1 tr=0 ts=6a54ff98 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=Rpd2EocR8erB28K5S3gA:9 X-Proofpoint-ORIG-GUID: OLU_nqu0Nhm26139JSoWQE8gxpWuH_3k X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130153 Content-Type: text/plain; charset="utf-8" If a signal is pending while trying to fault-in a page, return -EINTR instead of -EAGAIN. Signed-off-by: Claudio Imbrenda Fixes: e907ae530133 ("KVM: s390: Add helper functions for fault handling") --- arch/s390/kvm/faultin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/s390/kvm/faultin.c b/arch/s390/kvm/faultin.c index fee80047bd94..235b9c66ce54 100644 --- a/arch/s390/kvm/faultin.c +++ b/arch/s390/kvm/faultin.c @@ -93,7 +93,7 @@ int kvm_s390_faultin_gfn(struct kvm_vcpu *vcpu, struct kv= m *kvm, struct guest_fa return PGM_ADDRESSING; /* Signal pending: try again. */ if (f->pfn =3D=3D KVM_PFN_ERR_SIGPENDING) - return -EAGAIN; + return -EINTR; /* Check if it's read-only memory; don't try to actually handle that cas= e. */ if (f->pfn =3D=3D KVM_PFN_ERR_RO_FAULT) return -EOPNOTSUPP; --=20 2.55.0