Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753029AbbH2E32 (ORCPT ); Sat, 29 Aug 2015 00:29:28 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:3681 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752459AbbH2EXn (ORCPT ); Sat, 29 Aug 2015 00:23:43 -0400 From: Wang Nan To: , , CC: , , , Wang Nan , Masami Hiramatsu , Namhyung Kim Subject: [PATCH 02/31] perf tools: Don't set cmdline_group_boundary if no evsel is collected Date: Sat, 29 Aug 2015 04:21:36 +0000 Message-ID: <1440822125-52691-3-git-send-email-wangnan0@huawei.com> X-Mailer: git-send-email 1.8.3.4 In-Reply-To: <1440822125-52691-1-git-send-email-wangnan0@huawei.com> References: <1440822125-52691-1-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.107.193.248] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020204.55E133A7.008D,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 2ad64dd4cd20fce2f7e99782cd202d57 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1892 Lines: 53 If parse_events__scanner() collects no entry, perf_evlist__last(evlist) is invalid. Then setting of cmdline_group_boundary touches invalid. It could happend in currect BPF implementation. See [1]. Although it can be fixed, for safety reason it whould be better to introduce this check. Instead of checking number of entries, check data.list instead, so we can add dummy evsel here. [1]: http://lkml.kernel.org/n/1436445342-1402-19-git-send-email-wangnan0@huawei.com Signed-off-by: Wang Nan Cc: Alexei Starovoitov Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Zefan Li Cc: pi3orama@163.com Cc: Arnaldo Carvalho de Melo Link: http://lkml.kernel.org/r/1440742821-44548-3-git-send-email-wangnan0@huawei.com --- tools/perf/util/parse-events.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index d826e6f..14cd7e3 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -1143,10 +1143,14 @@ int parse_events(struct perf_evlist *evlist, const char *str, int entries = data.idx - evlist->nr_entries; struct perf_evsel *last; + if (!list_empty(&data.list)) { + last = list_entry(data.list.prev, + struct perf_evsel, node); + last->cmdline_group_boundary = true; + } + perf_evlist__splice_list_tail(evlist, &data.list, entries); evlist->nr_groups += data.nr_groups; - last = perf_evlist__last(evlist); - last->cmdline_group_boundary = true; return 0; } -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/