KVM: arm64: PMU: Replace version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
authorAnshuman Khandual <anshuman.khandual@arm.com>
Mon, 28 Nov 2022 13:56:29 +0000 (19:26 +0530)
committerMarc Zyngier <maz@kernel.org>
Mon, 28 Nov 2022 14:04:08 +0000 (14:04 +0000)
kvm_host_pmu_init() returns when detected PMU is either not implemented, or
implementation defined. kvm_pmu_probe_armpmu() also has a similar situation.

Extracted ID_AA64DFR0_EL1_PMUVer value, when PMU is not implemented is '0',
which can be replaced with ID_AA64DFR0_EL1_PMUVer_NI defined as '0b0000'.

Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221128135629.118346-1-anshuman.khandual@arm.com
arch/arm64/kvm/pmu-emul.c

index 3295dea34f4c9c6f01e1cdda98a1bb56d12d6a0b..bb7251e670a96da7dff005c14db0c47cc9f6f505 100644 (file)
@@ -668,7 +668,8 @@ void kvm_host_pmu_init(struct arm_pmu *pmu)
 {
        struct arm_pmu_entry *entry;
 
-       if (pmu->pmuver == 0 || pmu->pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF)
+       if (pmu->pmuver == ID_AA64DFR0_EL1_PMUVer_NI ||
+           pmu->pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF)
                return;
 
        mutex_lock(&arm_pmus_lock);
@@ -721,7 +722,7 @@ static struct arm_pmu *kvm_pmu_probe_armpmu(void)
 
        if (event->pmu) {
                pmu = to_arm_pmu(event->pmu);
-               if (pmu->pmuver == 0 ||
+               if (pmu->pmuver == ID_AA64DFR0_EL1_PMUVer_NI ||
                    pmu->pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF)
                        pmu = NULL;
        }