diff options
| -rw-r--r-- | kernel/events/core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c index d4c85425e3a..adc3ef37b7e 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c | |||
| @@ -5716,6 +5716,7 @@ struct pmu *perf_init_event(struct perf_event *event) | |||
| 5716 | pmu = idr_find(&pmu_idr, event->attr.type); | 5716 | pmu = idr_find(&pmu_idr, event->attr.type); |
| 5717 | rcu_read_unlock(); | 5717 | rcu_read_unlock(); |
| 5718 | if (pmu) { | 5718 | if (pmu) { |
| 5719 | event->pmu = pmu; | ||
| 5719 | ret = pmu->event_init(event); | 5720 | ret = pmu->event_init(event); |
| 5720 | if (ret) | 5721 | if (ret) |
| 5721 | pmu = ERR_PTR(ret); | 5722 | pmu = ERR_PTR(ret); |
| @@ -5723,6 +5724,7 @@ struct pmu *perf_init_event(struct perf_event *event) | |||
| 5723 | } | 5724 | } |
| 5724 | 5725 | ||
| 5725 | list_for_each_entry_rcu(pmu, &pmus, entry) { | 5726 | list_for_each_entry_rcu(pmu, &pmus, entry) { |
| 5727 | event->pmu = pmu; | ||
| 5726 | ret = pmu->event_init(event); | 5728 | ret = pmu->event_init(event); |
| 5727 | if (!ret) | 5729 | if (!ret) |
| 5728 | goto unlock; | 5730 | goto unlock; |
| @@ -5849,8 +5851,6 @@ done: | |||
| 5849 | return ERR_PTR(err); | 5851 | return ERR_PTR(err); |
| 5850 | } | 5852 | } |
| 5851 | 5853 | ||
| 5852 | event->pmu = pmu; | ||
| 5853 | |||
| 5854 | if (!event->parent) { | 5854 | if (!event->parent) { |
| 5855 | if (event->attach_state & PERF_ATTACH_TASK) | 5855 | if (event->attach_state & PERF_ATTACH_TASK) |
| 5856 | jump_label_inc(&perf_sched_events); | 5856 | jump_label_inc(&perf_sched_events); |
