aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/perf_event.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2010-05-11 02:31:49 -0400
committerIngo Molnar <mingo@elte.hu>2010-05-11 02:31:49 -0400
commite3174cfd2a1e28fff774681f00a0eef3d31da970 (patch)
tree5706316d689a9b1fe11df562bed391295deff537 /kernel/perf_event.c
parente61a639a794063d78fd248a37ce2c21d5c81fc19 (diff)
Revert "perf: Fix exit() vs PERF_FORMAT_GROUP"
This reverts commit 4fd38e4595e2f6c9d27732c042a0e16b2753049c. It causes various crashes and hangs when events are activated. The cause is not fully understood yet but we need to revert it because the effects are severe. Reported-by: Stephane Eranian <eranian@google.com> Reported-by: Lin Ming <ming.m.lin@intel.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/perf_event.c')
-rw-r--r--kernel/perf_event.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 180151ff8376..a9047463fd83 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -334,9 +334,6 @@ list_del_event(struct perf_event *event, struct perf_event_context *ctx)
334 if (event->state > PERF_EVENT_STATE_OFF) 334 if (event->state > PERF_EVENT_STATE_OFF)
335 event->state = PERF_EVENT_STATE_OFF; 335 event->state = PERF_EVENT_STATE_OFF;
336 336
337 if (event->state > PERF_EVENT_STATE_FREE)
338 return;
339
340 /* 337 /*
341 * If this was a group event with sibling events then 338 * If this was a group event with sibling events then
342 * upgrade the siblings to singleton events by adding them 339 * upgrade the siblings to singleton events by adding them
@@ -1871,8 +1868,6 @@ int perf_event_release_kernel(struct perf_event *event)
1871{ 1868{
1872 struct perf_event_context *ctx = event->ctx; 1869 struct perf_event_context *ctx = event->ctx;
1873 1870
1874 event->state = PERF_EVENT_STATE_FREE;
1875
1876 WARN_ON_ONCE(ctx->parent_ctx); 1871 WARN_ON_ONCE(ctx->parent_ctx);
1877 /* 1872 /*
1878 * There are two ways this annotation is useful: 1873 * There are two ways this annotation is useful: