summaryrefslogtreecommitdiff
path: root/kernel/events
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2017-03-31 12:06:55 +0800
committerAlex Shi <alex.shi@linaro.org>2017-03-31 12:06:55 +0800
commit73dadd0ed30ff274d645b3b2ea90e897608947bc (patch)
tree749b4f36c5ccf34dd43a661b643fb30072bd8271 /kernel/events
parent8959febfbb5d254e76cccba4f5eb805032a540fe (diff)
parent6b69866928947d66fdb5af0c798066f9506dd3f9 (diff)
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android
Diffstat (limited to 'kernel/events')
-rw-r--r--kernel/events/core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 19f34aa0eb68..8ca0ab9faaa4 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9374,7 +9374,7 @@ static int perf_event_init_context(struct task_struct *child, int ctxn)
ret = inherit_task_group(event, parent, parent_ctx,
child, ctxn, &inherited_all);
if (ret)
- break;
+ goto out_unlock;
}
/*
@@ -9390,7 +9390,7 @@ static int perf_event_init_context(struct task_struct *child, int ctxn)
ret = inherit_task_group(event, parent, parent_ctx,
child, ctxn, &inherited_all);
if (ret)
- break;
+ goto out_unlock;
}
raw_spin_lock_irqsave(&parent_ctx->lock, flags);
@@ -9418,6 +9418,7 @@ static int perf_event_init_context(struct task_struct *child, int ctxn)
}
raw_spin_unlock_irqrestore(&parent_ctx->lock, flags);
+out_unlock:
mutex_unlock(&parent_ctx->mutex);
perf_unpin_context(parent_ctx);