Received: by 10.223.185.116 with SMTP id b49csp1069449wrg; Fri, 23 Feb 2018 11:21:30 -0800 (PST) X-Google-Smtp-Source: AH8x224u4EiJe8yXf41r1M01P9VT3+5xxBi0EY+XYw9dRa1tGJi/V9ObHHqUN4ldSvc+Ussn5+th X-Received: by 2002:a17:902:7e87:: with SMTP id c7-v6mr2752069plm.138.1519413690141; Fri, 23 Feb 2018 11:21:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519413690; cv=none; d=google.com; s=arc-20160816; b=t+J4T33Stia+y4wE8xGhOVaihUNkAJ0gckhf2cCfaNuH/U+Ht4XsJ15S27jiPzW7MP L0TeVRyAN0yEpPSehTdfO3m7mLPXzsmi+hBAkzD54VW7Nbynw6SR2/TrAHSSKCfJBA8J FoqCtM7akLxDEmdPVXIDE4yPFG9mcHxJ5uujY8WRQm0CrEezocjSZvLh6NBYtBoUQf6l 7uikf001RUlXDRaQuSspW091hbuA/4MfxbbtACzGKI+E7dfBVkzKbdnlFUzz8wRa0GGU /gNMlSXA+TtlbYVUEIxNnoU0pJVRmguzz49xTbo45IyMF4fDvIgJ2an2gwc02Sw3NaAr Zi6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=YiV8r3ZETHayotUUuWa6PZomXDbs+sPupwlJQenUYpg=; b=cue+vN0XZCzzIgsTufJDMWIDQw0R60041/B9NOdg0KaWkn6IlAKAkFcbalVWS4Kj3t Yn5pkdoJ3JpAFc01gZU6tMYwKfc1WiJLGJSAOVbmQtiaUXpCmMVQMbmj4fkD8/lEc9fM fGISACORZTQvvbBfTCnkg3qjvKMq5YX1G4MS035Xs7FZPM7U9hjOSh/CRDRfY9J4hqUa bsSkNJRO1YzOly40Wsh26Hd3ce/lYMRbfNKDBbhksVOW1FRPY/pbuXyzlxrh2vulL03F /Sn1PEQmZWmBeWhd5iMvNmvturUzf9WS2ctXBLuKnBozVXDVSV+09UZVFOIR33rtkXB+ LS1g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v22si1850977pgc.724.2018.02.23.11.21.15; Fri, 23 Feb 2018 11:21:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754573AbeBWTUl (ORCPT + 99 others); Fri, 23 Feb 2018 14:20:41 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:47644 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964910AbeBWSyH (ORCPT ); Fri, 23 Feb 2018 13:54:07 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 56F6E1148; Fri, 23 Feb 2018 18:54:06 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ravi Bangoria , Madhavan Srinivasan , Michael Ellerman , Sasha Levin Subject: [PATCH 4.14 105/159] powerpc/perf: Fix oops when grouping different pmu events Date: Fri, 23 Feb 2018 19:26:53 +0100 Message-Id: <20180223170756.106505625@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180223170743.086611315@linuxfoundation.org> References: <20180223170743.086611315@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Ravi Bangoria [ Upstream commit 5aa04b3eb6fca63d2e9827be656dcadc26d54e11 ] When user tries to group imc (In-Memory Collections) event with normal event, (sometime) kernel crashes with following log: Faulting instruction address: 0x00000000 [link register ] c00000000010ce88 power_check_constraints+0x128/0x980 ... c00000000010e238 power_pmu_event_init+0x268/0x6f0 c0000000002dc60c perf_try_init_event+0xdc/0x1a0 c0000000002dce88 perf_event_alloc+0x7b8/0xac0 c0000000002e92e0 SyS_perf_event_open+0x530/0xda0 c00000000000b004 system_call+0x38/0xe0 'event_base' field of 'struct hw_perf_event' is used as flags for normal hw events and used as memory address for imc events. While grouping these two types of events, collect_events() tries to interpret imc 'event_base' as a flag, which causes a corruption resulting in a crash. Consider only those events which belongs to 'perf_hw_context' in collect_events(). Signed-off-by: Ravi Bangoria Reviewed-By: Madhavan Srinivasan Signed-off-by: Michael Ellerman Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- arch/powerpc/perf/core-book3s.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/powerpc/perf/core-book3s.c +++ b/arch/powerpc/perf/core-book3s.c @@ -1419,7 +1419,7 @@ static int collect_events(struct perf_ev int n = 0; struct perf_event *event; - if (!is_software_event(group)) { + if (group->pmu->task_ctx_nr == perf_hw_context) { if (n >= max_count) return -1; ctrs[n] = group; @@ -1427,7 +1427,7 @@ static int collect_events(struct perf_ev events[n++] = group->hw.config; } list_for_each_entry(event, &group->sibling_list, group_entry) { - if (!is_software_event(event) && + if (event->pmu->task_ctx_nr == perf_hw_context && event->state != PERF_EVENT_STATE_OFF) { if (n >= max_count) return -1;