diff --git a/[refs] b/[refs] index a190b7a495fe..002a3b9c0094 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 144060fee07e9c22e179d00819c83c86fbcbf82c +refs/heads/master: 7e5b2a01d2ca2eae4ef913b59f84341f9a70e206 diff --git a/trunk/kernel/events/core.c b/trunk/kernel/events/core.c index d4c85425e3a0..adc3ef37b7e8 100644 --- a/trunk/kernel/events/core.c +++ b/trunk/kernel/events/core.c @@ -5716,6 +5716,7 @@ struct pmu *perf_init_event(struct perf_event *event) pmu = idr_find(&pmu_idr, event->attr.type); rcu_read_unlock(); if (pmu) { + event->pmu = pmu; ret = pmu->event_init(event); if (ret) pmu = ERR_PTR(ret); @@ -5723,6 +5724,7 @@ struct pmu *perf_init_event(struct perf_event *event) } list_for_each_entry_rcu(pmu, &pmus, entry) { + event->pmu = pmu; ret = pmu->event_init(event); if (!ret) goto unlock; @@ -5849,8 +5851,6 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu, return ERR_PTR(err); } - event->pmu = pmu; - if (!event->parent) { if (event->attach_state & PERF_ATTACH_TASK) jump_label_inc(&perf_sched_events);