diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 261690923ffb77d2060ac0a0dadeb4a716522917..27960f114efd73f9fb6ebec3d90952a643cd4284 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -6531,6 +6531,11 @@ SYSCALL_DEFINE5(perf_event_open,
 		goto err_alloc;
 	}
 
+	if (task) {
+		put_task_struct(task);
+		task = NULL;
+	}
+
 	/*
 	 * Look up the group leader (we will attach this event to it):
 	 */