]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: arm64: Don't let userspace write to PMCR_EL0.N when the vcpu has EL2
authorMarc Zyngier <maz@kernel.org>
Wed, 9 Apr 2025 13:24:34 +0000 (14:24 +0100)
committerMarc Zyngier <maz@kernel.org>
Fri, 11 Apr 2025 12:08:23 +0000 (13:08 +0100)
Now that userspace can provide its limit for hte maximum number of
counters, prevent it from writing to PMCR_EL0.N, as the value should
be derived from MDCR_EL2.HPMN in that case.

Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/sys_regs.c

index 1e4265172d9d7410177f154d8b971e53afdd4ab5..228a548f0a5b4a5f3e273bcbfb7438baecc9440b 100644 (file)
@@ -1216,6 +1216,7 @@ static int set_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r,
         * with the existing KVM behavior.
         */
        if (!kvm_vm_has_ran_once(kvm) &&
+           !vcpu_has_nv(vcpu)        &&
            new_n <= kvm_arm_pmu_get_max_counters(kvm))
                kvm->arch.nr_pmu_counters = new_n;