Re: [PATCH v21 09/15] KVM: arm64: Allow GCS to be enabled for guests
From: Lorenzo Stoakes (ARM)
Date: Thu Oct 01 2026 - 12:40:02 EST
On Wed, Sep 30, 2026 at 10:48:19PM +0100, Mark Brown wrote:
> Now that required functionality for GCS is in place expose
> ID_AA64PFR1_EL1.GCS, allowing guests to be given the feature.
>
> Reviewed-by: Leonardo Bras <leo.bras@xxxxxxx>
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
This looks straightforward and sensible so:
Reviewed-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
> ---
> arch/arm64/kvm/nested.c | 3 +--
> arch/arm64/kvm/sys_regs.c | 5 +++--
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kvm/nested.c b/arch/arm64/kvm/nested.c
> index 3c4fc566eafc..f62d9ab7f31c 100644
> --- a/arch/arm64/kvm/nested.c
> +++ b/arch/arm64/kvm/nested.c
> @@ -1702,11 +1702,10 @@ u64 limit_nv_id_reg(struct kvm *kvm, u32 reg, u64 val)
> break;
>
> case SYS_ID_AA64PFR1_EL1:
> - /* Only support BTI, SSBS, CSV2_frac */
> + /* Only support GCS, BTI, SSBS, CSV2_frac */
> val &= ~(ID_AA64PFR1_EL1_PFAR |
> ID_AA64PFR1_EL1_MTEX |
> ID_AA64PFR1_EL1_THE |
> - ID_AA64PFR1_EL1_GCS |
> ID_AA64PFR1_EL1_MTE_frac |
> ID_AA64PFR1_EL1_NMI |
> ID_AA64PFR1_EL1_SME |
> diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> index faecf4657ec5..5de4ba1bef6b 100644
> --- a/arch/arm64/kvm/sys_regs.c
> +++ b/arch/arm64/kvm/sys_regs.c
> @@ -2193,10 +2193,12 @@ static u64 sanitise_id_aa64pfr1_el1(const struct kvm_vcpu *vcpu, u64 val)
> SYS_FIELD_GET(ID_AA64PFR0_EL1, RAS, pfr0) == ID_AA64PFR0_EL1_RAS_IMP))
> val &= ~ID_AA64PFR1_EL1_RAS_frac;
>
> + if (!system_supports_gcs())
> + val &= ~ID_AA64PFR1_EL1_GCS;
> +
> val &= ~ID_AA64PFR1_EL1_SME;
> val &= ~ID_AA64PFR1_EL1_RNDR_trap;
> val &= ~ID_AA64PFR1_EL1_NMI;
> - val &= ~ID_AA64PFR1_EL1_GCS;
> val &= ~ID_AA64PFR1_EL1_THE;
> val &= ~ID_AA64PFR1_EL1_MTEX;
> val &= ~ID_AA64PFR1_EL1_PFAR;
> @@ -3444,7 +3446,6 @@ static const struct sys_reg_desc sys_reg_descs[] = {
> ~(ID_AA64PFR1_EL1_PFAR |
> ID_AA64PFR1_EL1_MTEX |
> ID_AA64PFR1_EL1_THE |
> - ID_AA64PFR1_EL1_GCS |
> ID_AA64PFR1_EL1_MTE_frac |
> ID_AA64PFR1_EL1_NMI |
> ID_AA64PFR1_EL1_RNDR_trap |
>
> --
> 2.47.3
>
>
--
Cheers, Lorenzo