We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9332d25 commit ccd41c8Copy full SHA for ccd41c8
kernel/events/core.c
@@ -7036,12 +7036,23 @@ EXPORT_SYMBOL_GPL(perf_pmu_unregister);
7036
7037
static int perf_try_init_event(struct pmu *pmu, struct perf_event *event)
7038
{
7039
+ struct perf_event_context *ctx = NULL;
7040
int ret;
7041
7042
if (!try_module_get(pmu->module))
7043
return -ENODEV;
7044
+
7045
+ if (event->group_leader != event) {
7046
+ ctx = perf_event_ctx_lock(event->group_leader);
7047
+ BUG_ON(!ctx);
7048
+ }
7049
7050
event->pmu = pmu;
7051
ret = pmu->event_init(event);
7052
7053
+ if (ctx)
7054
+ perf_event_ctx_unlock(event->group_leader, ctx);
7055
7056
if (ret)
7057
module_put(pmu->module);
7058
0 commit comments