diff options
-rw-r--r-- | kernel/perf_event.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index dadeaea4b3fc..64a018e94fca 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
@@ -5810,16 +5810,9 @@ static void task_clock_event_del(struct perf_event *event, int flags) | |||
5810 | 5810 | ||
5811 | static void task_clock_event_read(struct perf_event *event) | 5811 | static void task_clock_event_read(struct perf_event *event) |
5812 | { | 5812 | { |
5813 | u64 time; | 5813 | u64 now = perf_clock(); |
5814 | 5814 | u64 delta = now - event->ctx->timestamp; | |
5815 | if (!in_nmi()) { | 5815 | u64 time = event->ctx->time + delta; |
5816 | update_context_time(event->ctx); | ||
5817 | time = event->ctx->time; | ||
5818 | } else { | ||
5819 | u64 now = perf_clock(); | ||
5820 | u64 delta = now - event->ctx->timestamp; | ||
5821 | time = event->ctx->time + delta; | ||
5822 | } | ||
5823 | 5816 | ||
5824 | task_clock_event_update(event, time); | 5817 | task_clock_event_update(event, time); |
5825 | } | 5818 | } |