diff options
-rw-r--r-- | arch/arm64/kernel/perf_event.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index 98c749394c4b..5f64d19a3411 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c | |||
@@ -966,13 +966,14 @@ static void __armv8pmu_probe_pmu(void *info) | |||
966 | { | 966 | { |
967 | struct armv8pmu_probe_info *probe = info; | 967 | struct armv8pmu_probe_info *probe = info; |
968 | struct arm_pmu *cpu_pmu = probe->pmu; | 968 | struct arm_pmu *cpu_pmu = probe->pmu; |
969 | u64 dfr0, pmuver; | 969 | u64 dfr0; |
970 | u32 pmceid[2]; | 970 | u32 pmceid[2]; |
971 | int pmuver; | ||
971 | 972 | ||
972 | dfr0 = read_sysreg(id_aa64dfr0_el1); | 973 | dfr0 = read_sysreg(id_aa64dfr0_el1); |
973 | pmuver = cpuid_feature_extract_unsigned_field(dfr0, | 974 | pmuver = cpuid_feature_extract_signed_field(dfr0, |
974 | ID_AA64DFR0_PMUVER_SHIFT); | 975 | ID_AA64DFR0_PMUVER_SHIFT); |
975 | if (pmuver != 1) | 976 | if (pmuver < 1) |
976 | return; | 977 | return; |
977 | 978 | ||
978 | probe->present = true; | 979 | probe->present = true; |