From c372021a6f947821f995be4834c96e1271184da5 Mon Sep 17 00:00:00 2001 From: Lin Ming Date: Sun, 27 Feb 2011 21:13:31 +0800 Subject: [PATCH] --- yaml --- r: 234497 b: refs/heads/master c: 940c5b2971de443df22eed0441bc74fb0116e9f5 h: refs/heads/master i: 234495: 17e522513e3f851e47435721b330b74bd722ee84 v: v3 --- [refs] | 2 +- trunk/kernel/perf_event.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index e861a0ca3746..41a33cccacef 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 888a8a3e9d79cbb9d83e53955f684998248580ec +refs/heads/master: 940c5b2971de443df22eed0441bc74fb0116e9f5 diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index 64a018e94fca..821ce8221974 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -6098,17 +6098,22 @@ struct pmu *perf_init_event(struct perf_event *event) { struct pmu *pmu = NULL; int idx; + int ret; idx = srcu_read_lock(&pmus_srcu); rcu_read_lock(); pmu = idr_find(&pmu_idr, event->attr.type); rcu_read_unlock(); - if (pmu) + if (pmu) { + ret = pmu->event_init(event); + if (ret) + pmu = ERR_PTR(ret); goto unlock; + } list_for_each_entry_rcu(pmu, &pmus, entry) { - int ret = pmu->event_init(event); + ret = pmu->event_init(event); if (!ret) goto unlock;