|
@@ -325,7 +325,10 @@ validate_event(struct pmu_hw_events *hw_events,
|
|
if (is_software_event(event))
|
|
if (is_software_event(event))
|
|
return 1;
|
|
return 1;
|
|
|
|
|
|
- if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF)
|
|
|
|
|
|
+ if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF)
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
|
|
+ if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec)
|
|
return 1;
|
|
return 1;
|
|
|
|
|
|
return armpmu->get_event_idx(hw_events, &fake_event) >= 0;
|
|
return armpmu->get_event_idx(hw_events, &fake_event) >= 0;
|