diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index e2139256524ee95bd75d3bf5da9bde131f21ad95..ecbb0288e5dd95c80b420635dffee6ef600f86a8 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -319,8 +319,8 @@ validate_event(struct cpu_hw_events *cpuc,
 {
 	struct hw_perf_event fake_event = event->hw;
 
-	if (event->pmu && event->pmu != &pmu)
-		return 0;
+	if (event->pmu != &pmu || event->state <= PERF_EVENT_STATE_OFF)
+		return 1;
 
 	return armpmu->get_event_idx(cpuc, &fake_event) >= 0;
 }