From: Marc Zyngier Date: Wed, 9 Apr 2025 13:24:34 +0000 (+0100) Subject: KVM: arm64: Don't let userspace write to PMCR_EL0.N when the vcpu has EL2 X-Git-Tag: v6.16-rc1~129^2~2^2~7^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd84a42c6703f69a865bd8e48ee8107eb80e0dea;p=thirdparty%2Flinux.git KVM: arm64: Don't let userspace write to PMCR_EL0.N when the vcpu has EL2 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 Signed-off-by: Marc Zyngier --- diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 1e4265172d9d7..228a548f0a5b4 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -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;