From nobody Tue Feb 10 02:59:11 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E83B0EE49B4 for ; Fri, 25 Aug 2023 02:41:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242113AbjHYCku (ORCPT ); Thu, 24 Aug 2023 22:40:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242021AbjHYCkh (ORCPT ); Thu, 24 Aug 2023 22:40:37 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 61BD81FD5 for ; Thu, 24 Aug 2023 19:40:35 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-d77bd411d7eso572967276.3 for ; Thu, 24 Aug 2023 19:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1692931234; x=1693536034; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=6+zdRFvr84d+fBWt10B0hHI/TeqmfF3seVVv15ew7F8=; b=HZSXLXGkuLPKgBuf4pk6J10eXiT7nvHcO4Exh1bIycY3L3BPD0nK3nX5wfOGHMWkDv fOGkuKwMhGemx7niIQSm5B6O3bwh2/0NdB86qMH9C6emksooUVvhet30JMKyQh2/8Ftc uRM999s3VRcT4ThF81DOXn0sQrFYDM/V3skOcZ0TaZeTpqp6uJHBEixUnhOsv7YIB6vU WfbAcOLPK86fNr+Iv4agkDrrY71JNNbNgU+M3vOuMK4jKOGS0aIQzHZy5v952AFnwYgx C4e04r+BRwB9Ud6KpXJe+k2b6OlJ6QK9VdDzYDudMRI3FVJHzcA1nw71vUwAvb3I4dih +IGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692931234; x=1693536034; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6+zdRFvr84d+fBWt10B0hHI/TeqmfF3seVVv15ew7F8=; b=WVCU1cKWAWHiNAMQaj/e9x2kTjLn4JnDfV4+fKLh9gyCIVn8vzFrvT8VOq/5dyTPS/ 9/SrjNdgm4ixrnUlPNx0HaV0iHX02qUEgbyFsS9oYIAT1JmM0rKzjlsBMP4r5chZfGzC 3hHtZ4zrGCA+jBCL2GzipdFXwD2u91onv3qjnI1mNnyd3kSu/oLRli91tnBE0StBXrZv IHHR9Vc+Qz+7q2VyZZP0okrZobO/hlh+7T6stAgc2P0nAwFXoVXqJggrbYxpNTchU9Py mzw/EZNV+My0tbGKVV7qSoayp/480zB4Wjfkj1YZ1CHE6NnXdTZbkRno0xNNjK37XSzJ Xvxg== X-Gm-Message-State: AOJu0Ywg8e74SQg7McbX87IFW4YAesqkgdsRDzM9/gCmopoII65NvtFQ J9nYa1R8F08IvoBqSI/jUQi2dh4MUjgD X-Google-Smtp-Source: AGHT+IEzM4glBr+PazUhBNmMADT2m3Tq6v7cCwDbE9cQUy4ophVAFva8E+T9hCeg0cPS0+531uZjKd8AAFZM X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:449e:d47b:bc6b:cb6b]) (user=irogers job=sendgmr) by 2002:a25:aa06:0:b0:d15:d6da:7e97 with SMTP id s6-20020a25aa06000000b00d15d6da7e97mr319274ybi.3.1692931234631; Thu, 24 Aug 2023 19:40:34 -0700 (PDT) Date: Thu, 24 Aug 2023 19:39:59 -0700 In-Reply-To: <20230825024002.801955-1-irogers@google.com> Message-Id: <20230825024002.801955-4-irogers@google.com> Mime-Version: 1.0 References: <20230825024002.801955-1-irogers@google.com> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog Subject: [PATCH v2 3/6] perf parse-events: Make term's config const From: Ian Rogers To: John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Kan Liang , Ravi Bangoria , Suzuki Poulouse , Kajol Jain , Athira Rajeev , Ming Wang , Huacai Chen , Sean Christopherson , K Prateek Nayak , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Wei Li Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This avoids casts in tests. Use zfree in a few places to avoid warnings about a freeing a const pointer. Signed-off-by: Ian Rogers --- tools/perf/tests/pmu.c | 18 +++++++++--------- tools/perf/util/parse-events.c | 10 +++++----- tools/perf/util/parse-events.h | 4 ++-- tools/perf/util/pmu.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tools/perf/tests/pmu.c b/tools/perf/tests/pmu.c index c204ed1f1a8b..eb60e5f66859 100644 --- a/tools/perf/tests/pmu.c +++ b/tools/perf/tests/pmu.c @@ -28,55 +28,55 @@ static struct test_format { /* Simulated users input. */ static struct parse_events_term test_terms[] =3D { { - .config =3D (char *) "krava01", + .config =3D "krava01", .val.num =3D 15, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava02", + .config =3D "krava02", .val.num =3D 170, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava03", + .config =3D "krava03", .val.num =3D 1, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava11", + .config =3D "krava11", .val.num =3D 27, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava12", + .config =3D "krava12", .val.num =3D 1, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava13", + .config =3D "krava13", .val.num =3D 2, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava21", + .config =3D "krava21", .val.num =3D 119, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava22", + .config =3D "krava22", .val.num =3D 11, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, }, { - .config =3D (char *) "krava23", + .config =3D "krava23", .val.num =3D 2, .type_val =3D PARSE_EVENTS__TERM_TYPE_NUM, .type_term =3D PARSE_EVENTS__TERM_TYPE_USER, diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 621bdd157a0f..4c812fbe0cf9 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -199,7 +199,7 @@ static void fix_raw(struct list_head *config_terms, str= uct perf_pmu *pmu) continue; =20 if (perf_pmu__have_event(pmu, term->val.str)) { - free(term->config); + zfree(&term->config); term->config =3D term->val.str; term->type_val =3D PARSE_EVENTS__TERM_TYPE_NUM; term->type_term =3D PARSE_EVENTS__TERM_TYPE_USER; @@ -208,7 +208,7 @@ static void fix_raw(struct list_head *config_terms, str= uct perf_pmu *pmu) continue; } =20 - free(term->config); + zfree(&term->config); term->config =3D strdup("config"); errno =3D 0; num =3D strtoull(term->val.str + 1, NULL, 16); @@ -1416,7 +1416,7 @@ int parse_events_multi_pmu_add(struct parse_events_st= ate *parse_state, struct perf_pmu *pmu =3D NULL; YYLTYPE *loc =3D loc_; int ok =3D 0; - char *config; + const char *config; =20 *listp =3D NULL; =20 @@ -1435,7 +1435,7 @@ int parse_events_multi_pmu_add(struct parse_events_st= ate *parse_state, PARSE_EVENTS__TERM_TYPE_USER, config, 1, false, NULL, NULL) < 0) { - free(config); + zfree(&config); goto out_err; } list_add_tail(&term->list, head); @@ -2378,7 +2378,7 @@ static int new_term(struct parse_events_term **_term, } =20 int parse_events_term__num(struct parse_events_term **term, - int type_term, char *config, u64 num, + int type_term, const char *config, u64 num, bool no_value, void *loc_term_, void *loc_val_) { diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h index c4e8d8e94b28..6d75d853ce00 100644 --- a/tools/perf/util/parse-events.h +++ b/tools/perf/util/parse-events.h @@ -83,7 +83,7 @@ enum { }; =20 struct parse_events_term { - char *config; + const char *config; union { char *str; u64 num; @@ -138,7 +138,7 @@ bool parse_events__filter_pmu(const struct parse_events= _state *parse_state, void parse_events__shrink_config_terms(void); int parse_events__is_hardcoded_term(struct parse_events_term *term); int parse_events_term__num(struct parse_events_term **term, - int type_term, char *config, u64 num, + int type_term, const char *config, u64 num, bool novalue, void *loc_term, void *loc_val); int parse_events_term__str(struct parse_events_term **term, diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index a96ccc5c3b51..eb42f9830be7 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1418,7 +1418,7 @@ static struct perf_pmu_alias *pmu_find_alias(struct p= erf_pmu *pmu, struct parse_events_term *term) { struct perf_pmu_alias *alias; - char *name; + const char *name; =20 if (parse_events__is_hardcoded_term(term)) return NULL; --=20 2.42.0.rc2.253.gd59a3bf2b4-goog