[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