[PATCH v2 2/5] KVM: arm64: Add ACCDATA_EL1 to the sysreg array

Yao Yuan yaoyuan at linux.alibaba.com
Sun Nov 1 17:45:36 PST 2026


On Sun, Oct 25, 2026 at 07:51:35AM +0800, Fuad Tabba wrote:
> From: Marc Zyngier <maz at kernel.org>
>
> Make ACCDATA_EL1 a first-class citizen, and add it to the sysreg
> array. Visibility is conditioned on the feature being enabled.
>

Hi Tabba,

LGTM.
Reviewed-by: Yuan Yao <yaoyuan at linux.alibaba.com>

> Signed-off-by: Marc Zyngier <maz at kernel.org>
> Link: https://lore.kernel.org/r/20240815125959.2097734-4-maz@kernel.org
> [Fuad: rebased]
> Cc: stable at vger.kernel.org
> Signed-off-by: Fuad Tabba <fuad.tabba at linux.dev>
> ---
>  arch/arm64/include/asm/kvm_host.h |  3 +++
>  arch/arm64/kvm/sys_regs.c         | 12 +++++++++++-
>  2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> index 27fe0cd5b2d7a..5b1cd1f502b7d 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -498,6 +498,9 @@ enum vcpu_sysreg {
>  	GCR_EL1,	/* Tag Control Register */
>  	TFSRE0_EL1,	/* Tag Fault Status Register (EL0) */
>
> +	/* Random stuff */
> +	ACCDATA_EL1,	/* Accelerator Data */
> +
>  	POR_EL0,	/* Permission Overlay Register 0 (EL0) */
>
>  	/* FP/SIMD/SVE */
> diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
> index 44aae52c473d7..40f8be41da3a4 100644
> --- a/arch/arm64/kvm/sys_regs.c
> +++ b/arch/arm64/kvm/sys_regs.c
> @@ -2914,6 +2914,15 @@ static unsigned int sve_el2_visibility(const struct kvm_vcpu *vcpu,
>  	return __el2_visibility(vcpu, rd, sve_visibility);
>  }
>
> +static unsigned int accdata_visibility(const struct kvm_vcpu *vcpu,
> +				       const struct sys_reg_desc *rd)
> +{
> +	if (kvm_has_feat(vcpu->kvm, ID_AA64ISAR1_EL1, LS64, LS64_ACCDATA))
> +		return 0;
> +
> +	return REG_HIDDEN;
> +}
> +
>  static unsigned int vncr_el2_visibility(const struct kvm_vcpu *vcpu,
>  					const struct sys_reg_desc *rd)
>  {
> @@ -3601,7 +3610,8 @@ static const struct sys_reg_desc sys_reg_descs[] = {
>  	{ SYS_DESC(SYS_CONTEXTIDR_EL1), access_vm_reg, reset_val, CONTEXTIDR_EL1, 0 },
>  	{ SYS_DESC(SYS_TPIDR_EL1), NULL, reset_unknown, TPIDR_EL1 },
>
> -	{ SYS_DESC(SYS_ACCDATA_EL1), undef_access },
> +	{ SYS_DESC(SYS_ACCDATA_EL1), undef_access, reset_val, ACCDATA_EL1, 0,
> +	  .visibility = accdata_visibility},
>
>  	{ SYS_DESC(SYS_SCXTNUM_EL1), undef_access },
>
> --
> 2.47.3
>



More information about the linux-arm-kernel mailing list