|
@@ -5148,7 +5148,7 @@ int perf_event_init_task(struct task_struct *child)
|
|
|
GFP_KERNEL);
|
|
|
if (!child_ctx) {
|
|
|
ret = -ENOMEM;
|
|
|
- goto exit;
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
__perf_event_init_context(child_ctx, child);
|
|
@@ -5164,7 +5164,7 @@ int perf_event_init_task(struct task_struct *child)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (inherited_all) {
|
|
|
+ if (child_ctx && inherited_all) {
|
|
|
/*
|
|
|
* Mark the child context as a clone of the parent
|
|
|
* context, or of whatever the parent is a clone of.
|
|
@@ -5184,7 +5184,6 @@ int perf_event_init_task(struct task_struct *child)
|
|
|
get_ctx(child_ctx->parent_ctx);
|
|
|
}
|
|
|
|
|
|
-exit:
|
|
|
mutex_unlock(&parent_ctx->mutex);
|
|
|
|
|
|
perf_unpin_context(parent_ctx);
|