arm64/perf: Replace PMU version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
authorAnshuman Khandual <anshuman.khandual@arm.com>
Mon, 28 Nov 2022 02:54:49 +0000 (08:24 +0530)
committerWill Deacon <will@kernel.org>
Tue, 29 Nov 2022 14:11:44 +0000 (14:11 +0000)
__armv8pmu_probe_pmu() returns if detected PMU is either not implemented or
implementation defined. 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: 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>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20221128025449.39085-1-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/perf_event.c

index 7b0643fe2f1347db07bc09277e5b179881d3b003..a15b3c1d15d91e8b310a9b71355505e97d16927b 100644 (file)
@@ -1146,7 +1146,8 @@ static void __armv8pmu_probe_pmu(void *info)
        dfr0 = read_sysreg(id_aa64dfr0_el1);
        pmuver = cpuid_feature_extract_unsigned_field(dfr0,
                        ID_AA64DFR0_EL1_PMUVer_SHIFT);
-       if (pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF || pmuver == 0)
+       if (pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF ||
+           pmuver == ID_AA64DFR0_EL1_PMUVer_NI)
                return;
 
        cpu_pmu->pmuver = pmuver;