From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6231CC48BF6 for ; Mon, 26 Feb 2024 10:08:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Z40tktf13MAnU4N2AUwYChH8YDx7t8wz+T/6RCA4NcA=; b=fioyD7aSD86xW3 dV6u9SeeWByh2zOArY7xBvzwVwJJTjNKZvNCqtkTU+I++J2j8+ZOLUQpvzhXhcswkEvzLdl83m+p2 IaxhPZGQ5AltJyC8ra1+o9dvMG8TS1CBZ6szX4iaIlhR2WBozmd5Gw1Kyvlli86O/0lmiD4qOasQ7 e/pHc3ELIF6oE/9vg/75+LlSn3uq94V1wE2UHU7b/0NiaijyVmcL86h+oCyfuglExb2auu+Ibaifs EN7WVbwkcTRn2sm1dA/89jT01rmP8L6x/D93v5A+sC+R8xZ9EVvuj6mvQFP6KRCspUl2zDNOVlmH2 m/jbxF00ke9G/6ublIAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1reXuV-0000000HXte-1x7F; Mon, 26 Feb 2024 10:08:35 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1reXtw-0000000HXiN-0N0L for linux-arm-kernel@bombadil.infradead.org; Mon, 26 Feb 2024 10:08:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=8nb0rw5sQRILDQax4biA7wGOdQbK/AK16EoLzlvyPYk=; b=oOHL0wtJsGUhcoeUFHGkUFqxD0 LgHATqP3MzBhLHKfyZu9zzekYZ8WibBTeJSEGK5bpOYG4SRSmfmTDDGWPFmozuplq+U++0kgzjtd0 fZk+ZR4q955yo5xw3xhoRODMjsPEeiefyu793NiimIxt59wmINzLTIeI3INuKHrx2nY8MV7e08ddZ 1ahdE3qdd10vtoA0V56d+ENHjXdQzDzPKlf6QI3/K/bCsFxi0amWdwfeRmjUAPN4Lb9CSXMNOrf7B x5AhpeCb0Mv+cggK/lDjnQKft2mcq6dL692sNZBxJfshECfXFQvL7b+VV4XTCIelFmqUqUWlzxsS4 qTL6fFjA==; Received: from dfw.source.kernel.org ([139.178.84.217]) by desiato.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1reXtq-00000001709-1yDF for linux-arm-kernel@lists.infradead.org; Mon, 26 Feb 2024 10:07:58 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 81D0E60FCB; Mon, 26 Feb 2024 10:07:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34336C43399; Mon, 26 Feb 2024 10:07:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708942056; bh=2S7NEMoKfNTgcluAtTdkrdP+Yrj29Y/5gaGZNZQ3q4g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rciItyHtxUP03xtZ0cTH6X1PxaTuV99GZd1WOIMUBkZ3jFEtav1yEUzV2rWGKBef6 bwP2EbrIrrYoPrkZwNs1YbOpBOohCebMTqmfRCcqZA7+iDLZFxDfupb0yr1Jc+6jNW NHBwyM2Y50hi+Yty2RC0v1HnahVOz7UDwIgDvLVjM3xnZAjFzVynOSXNJ7BndhDeHl NhoTuG5L3ENgnpJfEdRf7eU/6fhJTgdZDt3jeICgy5GPnCGd+nLu4cmkWaCqylQ4tK X1bIN/56q9awNap2GK7GYJH7oA/3MfQYxs2u8eMErFcG1FGKs0vJSyPIRKkwtt4gmj XVFKXOn6eH0kg== Received: from sofa.misterjones.org ([185.219.108.64] helo=valley-girl.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1reXtV-006nQ5-1J; Mon, 26 Feb 2024 10:07:33 +0000 From: Marc Zyngier To: kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu , Joey Gouly , Will Deacon , Catalin Marinas Subject: [PATCH v2 02/13] KVM: arm64: Add helpers for ESR_ELx_ERET_ISS_ERET* Date: Mon, 26 Feb 2024 10:05:50 +0000 Message-Id: <20240226100601.2379693-3-maz@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240226100601.2379693-1-maz@kernel.org> References: <20240226100601.2379693-1-maz@kernel.org> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com, joey.gouly@arm.com, will@kernel.org, catalin.marinas@arm.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240226_100755_014409_56AE7BC7 X-CRM114-Status: GOOD ( 14.39 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The ESR_ELx_ERET_ISS_ERET* macros are a bit confusing: - ESR_ELx_ERET_ISS_ERET really indicates that we have trapped an ERETA* instruction, as opposed to an ERET - ESR_ELx_ERET_ISS_ERETA really indicates that we have trapped an ERETAB instruction, as opposed to an ERETAA. We could repaint those to make more sense, but these are the names that are present in the ARM ARM, and we are sentimentally attached to those. Instead, add two new helpers: - esr_iss_is_eretax() being true tells you that you need to authenticate the ERET - esr_iss_is_eretab() tells you that you need to use the B key instead of the A key Following patches will make use of these primitives. Suggested-by: Joey Gouly Signed-off-by: Marc Zyngier --- arch/arm64/include/asm/esr.h | 12 ++++++++++++ arch/arm64/kvm/handle_exit.c | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/esr.h b/arch/arm64/include/asm/esr.h index 353fe08546cf..98008c16025e 100644 --- a/arch/arm64/include/asm/esr.h +++ b/arch/arm64/include/asm/esr.h @@ -407,6 +407,18 @@ static inline bool esr_fsc_is_access_flag_fault(unsigned long esr) return (esr & ESR_ELx_FSC_TYPE) == ESR_ELx_FSC_ACCESS; } +/* Indicate whether ESR.EC==0x1A is for an ERETAx instruction */ +static inline bool esr_iss_is_eretax(unsigned long esr) +{ + return esr & ESR_ELx_ERET_ISS_ERET; +} + +/* Indicate which key is used for ERETAx (false: A-Key, true: B-Key) */ +static inline bool esr_iss_is_eretab(unsigned long esr) +{ + return esr & ESR_ELx_ERET_ISS_ERETA; +} + const char *esr_get_class_string(unsigned long esr); #endif /* __ASSEMBLY */ diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c index 617ae6dea5d5..15221e481ccd 100644 --- a/arch/arm64/kvm/handle_exit.c +++ b/arch/arm64/kvm/handle_exit.c @@ -219,7 +219,7 @@ static int kvm_handle_ptrauth(struct kvm_vcpu *vcpu) static int kvm_handle_eret(struct kvm_vcpu *vcpu) { - if (kvm_vcpu_get_esr(vcpu) & ESR_ELx_ERET_ISS_ERET) + if (esr_iss_is_eretax(kvm_vcpu_get_esr(vcpu))) return kvm_handle_ptrauth(vcpu); /* -- 2.39.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel