From ad673e867fbfaa44653e8dd22747d81a225b662f Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 14 Oct 2010 16:54:51 +0200 Subject: [PATCH] --- yaml --- r: 211939 b: refs/heads/master c: e7d0bc047548d76feee6b23f7d3d9da927189a50 h: refs/heads/master i: 211937: 6a25437b915f86f2817f5db27efa61996076176e 211935: 138f41d367f3fb7bf2febe944427a76816de23bf v: v3 --- [refs] | 2 +- trunk/kernel/perf_event.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 3135835ff183..5535088d8843 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 74c3337c2fc6389d3a57a622a936036b6db6b2e8 +refs/heads/master: e7d0bc047548d76feee6b23f7d3d9da927189a50 diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index 346dc0e35a0a..f928878a1c17 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -2190,11 +2190,9 @@ find_get_context(struct pmu *pmu, struct task_struct *task, int cpu) } } - put_task_struct(task); return ctx; errout: - put_task_struct(task); return ERR_PTR(err); } @@ -5602,7 +5600,7 @@ SYSCALL_DEFINE5(perf_event_open, ctx = find_get_context(pmu, task, cpu); if (IS_ERR(ctx)) { err = PTR_ERR(ctx); - goto err_group_fd; + goto err_task; } /* @@ -5698,6 +5696,9 @@ SYSCALL_DEFINE5(perf_event_open, err_context: put_ctx(ctx); +err_task: + if (task) + put_task_struct(task); err_group_fd: fput_light(group_file, fput_needed); free_event(event);