[PATCH v3 24/42] KVM: arm64: Unconditionally configure fine-grain traps

Ben Horgan ben.horgan at arm.com
Tue Apr 29 06:08:27 PDT 2025


Hi Marc,

On 4/26/25 13:28, Marc Zyngier wrote:
> From: Mark Rutland <mark.rutland at arm.com>
> 
> ... otherwise we can inherit the host configuration if this differs from
> the KVM configuration.
> 
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> [maz: simplified a couple of things]
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> ---
>   arch/arm64/kvm/hyp/include/hyp/switch.h | 39 ++++++++++---------------
>   1 file changed, 15 insertions(+), 24 deletions(-)
> 
> diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h
> index 027d05f308f75..925a3288bd5be 100644
> --- a/arch/arm64/kvm/hyp/include/hyp/switch.h
> +++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
> @@ -107,7 +107,8 @@ static inline void __activate_traps_fpsimd32(struct kvm_vcpu *vcpu)
>   
> [...]
>   
>   static inline void __deactivate_traps_hfgxtr(struct kvm_vcpu *vcpu)
>   {
>   	struct kvm_cpu_context *hctxt = host_data_ptr(host_ctxt);
> -	struct kvm *kvm = kern_hyp_va(vcpu->kvm);
>   
>   	if (!cpus_have_final_cap(ARM64_HAS_FGT))
>   		return;
>   
> -	__deactivate_fgt(hctxt, vcpu, kvm, HFGRTR_EL2);
> -	if (cpus_have_final_cap(ARM64_WORKAROUND_AMPERE_AC03_CPU_38))
Don't we need to continue considering the ampere errata here? Or, at 
least worth a mention in the commit message.
> -		write_sysreg_s(ctxt_sys_reg(hctxt, HFGWTR_EL2), SYS_HFGWTR_EL2);
> -	else
> -		__deactivate_fgt(hctxt, vcpu, kvm, HFGWTR_EL2);
> -	__deactivate_fgt(hctxt, vcpu, kvm, HFGITR_EL2);
> -	__deactivate_fgt(hctxt, vcpu, kvm, HDFGRTR_EL2);
> -	__deactivate_fgt(hctxt, vcpu, kvm, HDFGWTR_EL2);
> +	__deactivate_fgt(hctxt, vcpu, HFGRTR_EL2);
> +	__deactivate_fgt(hctxt, vcpu, HFGWTR_EL2);
> +	__deactivate_fgt(hctxt, vcpu, HFGITR_EL2);
> +	__deactivate_fgt(hctxt, vcpu, HDFGRTR_EL2);
> +	__deactivate_fgt(hctxt, vcpu, HDFGWTR_EL2);
>   
>   	if (cpu_has_amu())
> -		__deactivate_fgt(hctxt, vcpu, kvm, HAFGRTR_EL2);
> +		__deactivate_fgt(hctxt, vcpu, HAFGRTR_EL2);
>   }
>   
>   static inline void  __activate_traps_mpam(struct kvm_vcpu *vcpu)


Thanks,

Ben




More information about the linux-arm-kernel mailing list