[PATCH v5 4/7] KVM: arm64: Fix missing traps of guest accesses to the MPAM registers
Marc Zyngier
maz at kernel.org
Thu Oct 17 04:54:09 PDT 2024
On Tue, 15 Oct 2024 14:39:20 +0100,
Joey Gouly <joey.gouly at arm.com> wrote:
>
> @@ -204,6 +205,35 @@ static inline void __deactivate_traps_hfgxtr(struct kvm_vcpu *vcpu)
> __deactivate_fgt(hctxt, vcpu, kvm, HAFGRTR_EL2);
> }
>
> +static inline void __activate_traps_mpam(struct kvm_vcpu *vcpu)
> +{
> + u64 r = MPAM2_EL2_TRAPMPAM0EL1 | MPAM2_EL2_TRAPMPAM1EL1;
> +
> + if (!cpus_support_mpam())
> + return;
> +
> + /* trap guest access to MPAMIDR_EL1 */
> + if (mpam_cpus_have_mpam_hcr()) {
> + write_sysreg_s(MPAMHCR_EL2_TRAP_MPAMIDR_EL1, SYS_MPAMHCR_EL2);
> + } else {
> + /* From v1.1 TIDR can trap MPAMIDR, set it unconditionally */
> + r |= MPAM2_EL2_TIDR;
> + }
> +
> + write_sysreg_s(r, SYS_MPAM2_EL2);
Please use the write_sysreg_el2() accessor, so that VHE under NV has
an easier time, should we ever get there.
> +}
> +
> +static inline void __deactivate_traps_mpam(void)
> +{
> + if (!cpus_support_mpam())
> + return;
> +
> + write_sysreg_s(0, SYS_MPAM2_EL2);
Same thing.
> +
> + if (mpam_cpus_have_mpam_hcr())
> + write_sysreg_s(MPAMHCR_HOST_FLAGS, SYS_MPAMHCR_EL2);
> +}
> +
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
More information about the linux-arm-kernel
mailing list