From mboxrd@z Thu Jan 1 00:00:00 1970 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 A9FEB267F66; Thu, 22 May 2025 09:33:15 +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=1747906398; cv=none; b=uXOOttjPWui+dTWPdcnKlnLbF17TScYledAsOGmDDX0Ozp4LOc2TZF3uI4f/KYbYE8X4TO7nrwUXE/9WY1wLdN7QajxX29qYixSmNNyO2Hf8fYEiZPQ0k41m/0tHe27Dq3i8KYiY4Wp0NFQ/lMpqLNZN8/N+RCkEzoe2Wu8I/g0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747906398; c=relaxed/simple; bh=IqHO/ND2AyclsUUUSLF5VktS1P6CoOR0/7Ms75nTJNY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lEXjHzwjf93GSw6xzoHQbjijblpVAi4xR646PBSNNxWxzpkNVoviV1yOZF+NeDUrUmXNYi+iDKpzmInbgmLhkH5Ie2sOkoHry9VYljVA4fOrltfZx/cPSNfDLY8FmuAYV+4i+iDRwYLMo+/lxkgXOxAB7QkTO1OZlaIP9dHSxBU= 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=FEsN2+9p; 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="FEsN2+9p" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54M9F23c021140; Thu, 22 May 2025 09:33:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=0ydd7r Ctsvts+6cHzyeTTfdfucuDsu9XlCRTv7ZONDk=; b=FEsN2+9pdWTZs/cioKrfMz ch6mdy0YsCfGjM70sr869H3UsocDEmPt0uWF6rM/CjRykXK9A+RZQ5eMFPCuLwzi OyNDfyIWF2dyccmQ/b12ev5a08qtV/l9jkJk1oCO0N1aNHxrO0sox3vt9DPTd9zn XGH9TFBuVCniPYg60XyEEMi68mgMOMk1NJwnjX55fe4QK1okIt49RzUXPQMq5BvG SDSiZu+M0OKipG3iMjkLRYMoG3SqQnUPNdGAPY3LfNqZTLQkILUXE4jHrUYZraqC +3IMafSEUM206nrX8pFMAqS724Yi0BnC2605Zum5UgF5vhyvKt4xThBwBJFhOcZg == 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 46t14jg2wy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 May 2025 09:33:13 +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 54M5XoqW010614; Thu, 22 May 2025 09:33:12 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 46rwnmgt3v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 22 May 2025 09:33:12 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 54M9X8Rq60031234 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 22 May 2025 09:33:08 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5082420043; Thu, 22 May 2025 09:33:08 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 022652004F; Thu, 22 May 2025 09:33:08 +0000 (GMT) Received: from [9.155.210.150] (unknown [9.155.210.150]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 22 May 2025 09:33:07 +0000 (GMT) From: Christoph Schlameuss Date: Thu, 22 May 2025 11:31:59 +0200 Subject: [PATCH v3 3/3] KVM: s390: Specify kvm->arch.sca as esca_block Precedence: bulk X-Mailing-List: linux-s390@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250522-rm-bsca-v3-3-51d169738fcf@linux.ibm.com> References: <20250522-rm-bsca-v3-0-51d169738fcf@linux.ibm.com> In-Reply-To: <20250522-rm-bsca-v3-0-51d169738fcf@linux.ibm.com> To: kvm@vger.kernel.org Cc: linux-s390@vger.kernel.org, Christian Borntraeger , Janosch Frank , Claudio Imbrenda , David Hildenbrand , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Thomas Huth , Christoph Schlameuss X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4289; i=schlameuss@linux.ibm.com; h=from:subject:message-id; bh=IqHO/ND2AyclsUUUSLF5VktS1P6CoOR0/7Ms75nTJNY=; b=owGbwMvMwCUmoqVx+bqN+mXG02pJDBl674OsPkusXrptffC5DMn0CUtWdzjXOH32bJHkFXBX6 hJVylrUUcrCIMbFICumyFItbp1X1de6dM5By2swc1iZQIYwcHEKwESOz2RkOBgqFxP63UVCJeKG sc7aYzsi7cw6L5WE9xfP/fdi6h3XLIZ/FvsmHZ7/JHb+k/zVrrfaLJdJrAx5kKk4w9awtojb+aY 6LwA= X-Developer-Key: i=schlameuss@linux.ibm.com; a=openpgp; fpr=0E34A68642574B2253AF4D31EEED6AB388551EC3 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 28o5DBDJyNDKMQqz_JIeUTyjPUnGp9tm X-Authority-Analysis: v=2.4 cv=XOkwSRhE c=1 sm=1 tr=0 ts=682eef59 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=dt9VzEwgFbYA:10 a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8 a=3ptpGn01cE8ERRY_Xe4A:9 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTIyMDA5MSBTYWx0ZWRfX+h2/2ZEEW2SM ikyVOy+0UbxZIAGyYiJnSYfc08Fxl1BrnNvdL/BM+Ak+zSV5oInF5s+VHEyO6bSMyWBe+iikICS kPGxOKwxsEFrNUumSV5p7gWberu9wxKv8sm6RI3zTJcpXR3OfhV/brWNE1pSOSUuvjwIlJQ62YP G0k4KoKsOROUKXGgXSB2tpyIAtgs42sl654PUAjXlFXEhF172p40U7DwikXcaws+NmPN/OKUzvK fwWy++1mcPiB++MibF/qHqc20XDBsTYG81rsZQS/4UvkrI5eazirIBA7JDsVAkD7INZh3TZ5Zpn eUTRl+ESp/aC90kUJT087sae+SPlUuSjGoL/wLY8frQm2vE4Qp0Tmxh4eQTekmkS2Qyrb32alor EJLJvVJ07SYCz8Y2dYndIvKhI4hZU8k4KbKS/VpIqpbyDT5yekd5Q2GKn61uKaFog9mbtBOP X-Proofpoint-GUID: 28o5DBDJyNDKMQqz_JIeUTyjPUnGp9tm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-22_04,2025-05-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 mlxlogscore=858 bulkscore=0 mlxscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505160000 definitions=main-2505220091 We are no longer referencing a bsca_block in kvm->arch.sca. This will always be esca_block instead. By specifying the type of the sca as esca_block we can simplify access to the sca and get rid of some helpers while making the code clearer. Reviewed-by: Claudio Imbrenda Reviewed-by: Thomas Huth Signed-off-by: Christoph Schlameuss --- arch/s390/include/asm/kvm_host.h | 4 ++-- arch/s390/kvm/gaccess.c | 10 +++++----- arch/s390/kvm/kvm-s390.c | 4 ++-- arch/s390/kvm/kvm-s390.h | 7 ------- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index d03e354a63d9c931522c1a1607eba8685c24527f..2a2b557357c8e40c82022eb338c3e98aa8f03a2b 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h @@ -629,8 +629,8 @@ struct kvm_s390_pv { struct mmu_notifier mmu_notifier; }; -struct kvm_arch{ - void *sca; +struct kvm_arch { + struct esca_block *sca; rwlock_t sca_lock; debug_info_t *dbf; struct kvm_s390_float_interrupt float_int; diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c index f6fded15633ad87f6b02c2c42aea35a3c9164253..ee37d397d9218a4d33c7a33bd877d0b974ca9003 100644 --- a/arch/s390/kvm/gaccess.c +++ b/arch/s390/kvm/gaccess.c @@ -112,7 +112,7 @@ int ipte_lock_held(struct kvm *kvm) int rc; read_lock(&kvm->arch.sca_lock); - rc = kvm_s390_get_ipte_control(kvm)->kh != 0; + rc = kvm->arch.sca->ipte_control.kh != 0; read_unlock(&kvm->arch.sca_lock); return rc; } @@ -129,7 +129,7 @@ static void ipte_lock_simple(struct kvm *kvm) goto out; retry: read_lock(&kvm->arch.sca_lock); - ic = kvm_s390_get_ipte_control(kvm); + ic = &kvm->arch.sca->ipte_control; old = READ_ONCE(*ic); do { if (old.k) { @@ -154,7 +154,7 @@ static void ipte_unlock_simple(struct kvm *kvm) if (kvm->arch.ipte_lock_count) goto out; read_lock(&kvm->arch.sca_lock); - ic = kvm_s390_get_ipte_control(kvm); + ic = &kvm->arch.sca->ipte_control; old = READ_ONCE(*ic); do { new = old; @@ -172,7 +172,7 @@ static void ipte_lock_siif(struct kvm *kvm) retry: read_lock(&kvm->arch.sca_lock); - ic = kvm_s390_get_ipte_control(kvm); + ic = &kvm->arch.sca->ipte_control; old = READ_ONCE(*ic); do { if (old.kg) { @@ -192,7 +192,7 @@ static void ipte_unlock_siif(struct kvm *kvm) union ipte_control old, new, *ic; read_lock(&kvm->arch.sca_lock); - ic = kvm_s390_get_ipte_control(kvm); + ic = &kvm->arch.sca->ipte_control; old = READ_ONCE(*ic); do { new = old; diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 473e399056fb31d341d9a00a9295e37a8aa66ab7..f228d0a187ce2a349c1ea76f3d6dd7dc8e3283d8 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -1964,7 +1964,7 @@ static int kvm_s390_get_topo_change_indication(struct kvm *kvm, return -ENXIO; read_lock(&kvm->arch.sca_lock); - topo = ((struct esca_block *)kvm->arch.sca)->utility.mtcr; + topo = kvm->arch.sca->utility.mtcr; read_unlock(&kvm->arch.sca_lock); return put_user(topo, (u8 __user *)attr->addr); @@ -3303,7 +3303,7 @@ static void kvm_s390_crypto_init(struct kvm *kvm) static void sca_dispose(struct kvm *kvm) { - free_pages_exact(kvm->arch.sca, sizeof(struct esca_block)); + free_pages_exact(kvm->arch.sca, sizeof(*kvm->arch.sca)); kvm->arch.sca = NULL; } diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 2c8e177e4af8f2dab07fd42a904cefdea80f6855..0c5e8ae07b77648d554668cc0536607545636a68 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h @@ -528,13 +528,6 @@ void kvm_s390_prepare_debug_exit(struct kvm_vcpu *vcpu); int kvm_s390_handle_per_ifetch_icpt(struct kvm_vcpu *vcpu); int kvm_s390_handle_per_event(struct kvm_vcpu *vcpu); -/* support for Basic/Extended SCA handling */ -static inline union ipte_control *kvm_s390_get_ipte_control(struct kvm *kvm) -{ - struct esca_block *sca = kvm->arch.sca; /* SCA version doesn't matter */ - - return &sca->ipte_control; -} static inline int kvm_s390_use_sca_entries(void) { /* -- 2.49.0