diff options
-rw-r--r-- | kernel/events/core.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index 5dcc0bd08d11..b7231498de47 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
@@ -8000,6 +8000,9 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu, | |||
8000 | } | 8000 | } |
8001 | } | 8001 | } |
8002 | 8002 | ||
8003 | /* symmetric to unaccount_event() in _free_event() */ | ||
8004 | account_event(event); | ||
8005 | |||
8003 | return event; | 8006 | return event; |
8004 | 8007 | ||
8005 | err_per_task: | 8008 | err_per_task: |
@@ -8363,8 +8366,6 @@ SYSCALL_DEFINE5(perf_event_open, | |||
8363 | } | 8366 | } |
8364 | } | 8367 | } |
8365 | 8368 | ||
8366 | account_event(event); | ||
8367 | |||
8368 | /* | 8369 | /* |
8369 | * Special case software events and allow them to be part of | 8370 | * Special case software events and allow them to be part of |
8370 | * any hardware group. | 8371 | * any hardware group. |
@@ -8661,8 +8662,6 @@ perf_event_create_kernel_counter(struct perf_event_attr *attr, int cpu, | |||
8661 | /* Mark owner so we could distinguish it from user events. */ | 8662 | /* Mark owner so we could distinguish it from user events. */ |
8662 | event->owner = TASK_TOMBSTONE; | 8663 | event->owner = TASK_TOMBSTONE; |
8663 | 8664 | ||
8664 | account_event(event); | ||
8665 | |||
8666 | ctx = find_get_context(event->pmu, task, event); | 8665 | ctx = find_get_context(event->pmu, task, event); |
8667 | if (IS_ERR(ctx)) { | 8666 | if (IS_ERR(ctx)) { |
8668 | err = PTR_ERR(ctx); | 8667 | err = PTR_ERR(ctx); |