From: Mark Brown <broonie@kernel.org>
To: Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Marc Zyngier <maz@kernel.org>,
Oliver Upton <oliver.upton@linux.dev>,
Joey Gouly <joey.gouly@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Shuah Khan <shuah@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org,
kvmarm@lists.linux.dev, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>
Subject: [PATCH v15 3/6] KVM: arm64: Forward GCS exceptions to nested guests
Date: Wed, 20 Aug 2025 15:14:43 +0100 [thread overview]
Message-ID: <20250820-arm64-gcs-v15-3-5e334da18b84@kernel.org> (raw)
In-Reply-To: <20250820-arm64-gcs-v15-0-5e334da18b84@kernel.org>
GCS can generate exceptions with an EC of 0x2D (GCS Data Check
Exception) when data validation checks fail. When running a nested
guest which has access to GCS such exceptions can be directed from EL0
to EL2 and therefore need to be forwarded to the guest hypervisor, add
handling for this.
Signed-off-by: Mark Brown <broonie@kernel.org>
---
arch/arm64/kvm/handle_exit.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/kvm/handle_exit.c b/arch/arm64/kvm/handle_exit.c
index a598072f36d2..2f5aef84b294 100644
--- a/arch/arm64/kvm/handle_exit.c
+++ b/arch/arm64/kvm/handle_exit.c
@@ -301,10 +301,18 @@ static int handle_svc(struct kvm_vcpu *vcpu)
static int kvm_handle_gcs(struct kvm_vcpu *vcpu)
{
- /* We don't expect GCS, so treat it with contempt */
- if (kvm_has_feat(vcpu->kvm, ID_AA64PFR1_EL1, GCS, IMP))
- WARN_ON_ONCE(1);
+ if (!kvm_has_gcs(vcpu->kvm)) {
+ kvm_inject_undefined(vcpu);
+ return 1;
+ }
+ if (vcpu_has_nv(vcpu) && !is_hyp_ctxt(vcpu)) {
+ kvm_inject_nested_sync(vcpu, kvm_vcpu_get_esr(vcpu));
+ return 1;
+ }
+
+ /* We shouldn't have generated a trap in this case */
+ WARN_ON_ONCE(1);
kvm_inject_undefined(vcpu);
return 1;
}
--
2.39.5
next prev parent reply other threads:[~2025-08-20 14:15 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-20 14:14 [PATCH v15 0/6] KVM: arm64: Provide guest support for GCS Mark Brown
2025-08-20 14:14 ` [PATCH v15 1/6] arm64/gcs: Ensure FGTs for EL1 GCS instructions are disabled Mark Brown
2025-08-20 22:24 ` Marc Zyngier
2025-08-20 22:28 ` Marc Zyngier
2025-08-20 14:14 ` [PATCH v15 2/6] KVM: arm64: Manage GCS access and registers for guests Mark Brown
2025-08-20 21:06 ` Marc Zyngier
2025-08-20 22:13 ` Mark Brown
2025-08-20 14:14 ` Mark Brown [this message]
2025-08-20 22:15 ` [PATCH v15 3/6] KVM: arm64: Forward GCS exceptions to nested guests Marc Zyngier
2025-08-21 21:25 ` Mark Brown
2025-08-20 14:14 ` [PATCH v15 4/6] KVM: arm64: Set PSTATE.EXLOCK when entering an exception Mark Brown
2025-08-20 22:02 ` Marc Zyngier
2025-08-21 20:44 ` Mark Brown
2025-09-08 18:42 ` Marc Zyngier
2025-08-20 14:14 ` [PATCH v15 5/6] KVM: arm64: Allow GCS to be enabled for guests Mark Brown
2025-08-20 22:18 ` Marc Zyngier
2025-08-20 14:14 ` [PATCH v15 6/6] KVM: selftests: arm64: Add GCS registers to get-reg-list Mark Brown
2025-08-20 22:30 ` [PATCH v15 0/6] KVM: arm64: Provide guest support for GCS Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250820-arm64-gcs-v15-3-5e334da18b84@kernel.org \
--to=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®