From 7a37b1201f890175ebb1bd1a76540c28208a6d39 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 15 Oct 2010 11:40:29 +0200 Subject: [PATCH] --- yaml --- r: 211938 b: refs/heads/master c: 74c3337c2fc6389d3a57a622a936036b6db6b2e8 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/perf_event.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ea929e73de64..3135835ff183 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e360adbe29241a0194e10e20595360dd7b98a2b3 +refs/heads/master: 74c3337c2fc6389d3a57a622a936036b6db6b2e8 diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index 99b9700e74d0..346dc0e35a0a 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -315,7 +315,12 @@ static void perf_group_attach(struct perf_event *event) { struct perf_event *group_leader = event->group_leader; - WARN_ON_ONCE(event->attach_state & PERF_ATTACH_GROUP); + /* + * We can have double attach due to group movement in perf_event_open. + */ + if (event->attach_state & PERF_ATTACH_GROUP) + return; + event->attach_state |= PERF_ATTACH_GROUP; if (group_leader == event)