diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/events/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 072de3143244..4e8dc596f101 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
@@ -3194,7 +3194,10 @@ static void __perf_event_read(void *info) | |||
3194 | 3194 | ||
3195 | static inline u64 perf_event_count(struct perf_event *event) | 3195 | static inline u64 perf_event_count(struct perf_event *event) |
3196 | { | 3196 | { |
3197 | return local64_read(&event->count) + atomic64_read(&event->child_count); | 3197 | if (event->pmu->count) |
3198 | return event->pmu->count(event); | ||
3199 | |||
3200 | return __perf_event_count(event); | ||
3198 | } | 3201 | } |
3199 | 3202 | ||
3200 | static u64 perf_event_read(struct perf_event *event) | 3203 | static u64 perf_event_read(struct perf_event *event) |