]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
KVM: arm64: Contextualise the handling of PMCR_EL0.P writes
authorMarc Zyngier <maz@kernel.org>
Mon, 17 Feb 2025 10:24:43 +0000 (10:24 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 11 Apr 2025 11:59:10 +0000 (12:59 +0100)
commit022435334393d56f4d6bc398cf16430067807b0a
tree5024fda3788909e90a8cd78596198f8a9130ae3b
parentc8823e51b534d490ec27d372596eb35d2bb7193c
KVM: arm64: Contextualise the handling of PMCR_EL0.P writes

Contrary to what the comment says in kvm_pmu_handle_pmcr(),
writing PMCR_EL0.P==1 has the following effects:

<quote>
The event counters affected by this field are:
  * All event counters in the first range.
  * If any of the following are true, all event counters in the second
    range:
    - EL2 is disabled or not implemented in the current Security state.
    - The PE is executing at EL2 or EL3.
</quote>

where the "first range" represent the counters in the [0..HPMN-1]
range, and the "second range" the counters in the [HPMN..MAX] range.

It so appears that writing P from EL2 should nuke all counters,
and not just the "guest" view. Just do that, and nuke the misleading
comment.

Reported-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/pmu-emul.c