OSDN Git Service

arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF
authorAnshuman Khandual <anshuman.khandual@arm.com>
Wed, 11 Aug 2021 03:27:07 +0000 (08:57 +0530)
committerWill Deacon <will@kernel.org>
Wed, 11 Aug 2021 10:02:12 +0000 (11:02 +0100)
ID_AA64DFR0_PMUVER_IMP_DEF, indicating an "implementation defined" PMU,
never actually gets used although there are '0xf' instances scattered
all around. Use the symbolic name instead of the raw hex constant.

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/1628652427-24695-2-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/cpufeature.h
arch/arm64/kernel/perf_event.c

index 9bb9d11..54474e7 100644 (file)
@@ -552,7 +552,7 @@ cpuid_feature_cap_perfmon_field(u64 features, int field, u64 cap)
        u64 mask = GENMASK_ULL(field + 3, field);
 
        /* Treat IMPLEMENTATION DEFINED functionality as unimplemented */
-       if (val == 0xf)
+       if (val == ID_AA64DFR0_PMUVER_IMP_DEF)
                val = 0;
 
        if (val > cap) {
index d07788d..b404446 100644 (file)
@@ -1055,7 +1055,7 @@ static void __armv8pmu_probe_pmu(void *info)
        dfr0 = read_sysreg(id_aa64dfr0_el1);
        pmuver = cpuid_feature_extract_unsigned_field(dfr0,
                        ID_AA64DFR0_PMUVER_SHIFT);
-       if (pmuver == 0xf || pmuver == 0)
+       if (pmuver == ID_AA64DFR0_PMUVER_IMP_DEF || pmuver == 0)
                return;
 
        cpu_pmu->pmuver = pmuver;