From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753863AbdHXQ1s (ORCPT ); Thu, 24 Aug 2017 12:27:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60408 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753835AbdHXQ1p (ORCPT ); Thu, 24 Aug 2017 12:27:45 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 70829883C2 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=none smtp.mailfrom=jolsa@kernel.org DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 70829883C2 From: Jiri Olsa To: Arnaldo Carvalho de Melo , Peter Zijlstra Cc: lkml , Ingo Molnar , Alexander Shishkin , Namhyung Kim , David Ahern , Andi Kleen , Mark Rutland Subject: [PATCH 02/10] perf: Fix leader for removed sibling event in perf_group_detach Date: Thu, 24 Aug 2017 18:27:29 +0200 Message-Id: <20170824162737.7813-3-jolsa@kernel.org> In-Reply-To: <20170824162737.7813-1-jolsa@kernel.org> References: <20170824162737.7813-1-jolsa@kernel.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 24 Aug 2017 16:27:45 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Mark reported warning in x86_perf_event_update caused by reading unscheduled leader of an event that was already removed from the group. As he pointed out we don't properly reset event's leader once it's been detached from the group and he posted the attached fix. [1] https://marc.info/?l=linux-kernel&m=150238662928203&w=2 Originally-From: Mark Rutland Signed-off-by: Jiri Olsa --- kernel/events/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/events/core.c b/kernel/events/core.c index d704e23914bf..30e30e94ea32 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1727,6 +1727,7 @@ static void perf_group_detach(struct perf_event *event) if (event->group_leader != event) { list_del_init(&event->group_entry); event->group_leader->nr_siblings--; + event->group_leader = event; goto out; } -- 2.9.5