Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp977332pxb; Wed, 6 Apr 2022 05:51:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwYlVwOhCmNmeEjeazirrz/LOqzc5XaK44jNZHF8K+sNiemgmAnRzvKMhqUafZiOrEmKlGa X-Received: by 2002:a17:90a:560a:b0:1bc:72e7:3c13 with SMTP id r10-20020a17090a560a00b001bc72e73c13mr9708480pjf.246.1649249514384; Wed, 06 Apr 2022 05:51:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649249514; cv=none; d=google.com; s=arc-20160816; b=gHNb9QqbVEx6Ws6HHBH15dkDhZzydM/lo5gONGEA5PxRbNnsgwHIQj59rFN84wlNmw loizU77AKYsF0Uya2329M3iQakJzMSo0xsnz8UmZxfqdJwMaze6hvhDEKDOUnnSQ6wxQ N9Sfao6KejlCwkqACrdsAqkPbPEYbtyaX4VbfAND6eua8llP8//0eFLbfwM2Pc/0eL8m u6WV7Jm6eY97/PZ1VNPvxWdCdijkdilp5lFAbFV8whIyjbfZ7rM/V6set/tZ876/omMj +2Qre7YfMaLJ1tDp/kf7qQL2qoBKWruvubm3dsvZues2zhXKJJa6TiMi9CzoKDZG/LIh kaeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xsCYfCP1zl+MP+yxjVcWgy/RUWTxfA6FDV8Q+USNy28=; b=zws0zcGsD/h+6dWfY6K7tfcCvLD3VVc4K3VO24GII9Yup4UQL3/ONdfbRQmYVcqVSu ggw4fuC4HhTOF6ic4xERnSou3+bUStQwtfKxWqWGHRzfWiMr/xwBoDjTsRcHN1hzUC9E m++sIrijkFiB6jdgzEDZ6MeAxibqb9rURVxdBk1JwZLFQoA1nLN7mmeFCFJuNJzrJuLu lag5rjzleQiGOufLkNpCvkvBjuotnnR54wU3nUQ65mauCuDhLGtjn39Glypa1Bx+COxV 23I0TIaGgq8eA0Mnb7YZxp6BA/wTDGHvfLLeyiZMOZsEI2Q8/WzHErRGF4J6vJyoGNGl 9XEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=yyi5nl84; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id z6-20020aa79586000000b004fa95dfe8f7si14399149pfj.174.2022.04.06.05.51.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 05:51:54 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=yyi5nl84; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7179D1CEA66; Wed, 6 Apr 2022 02:47:41 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1451761AbiDEWam (ORCPT + 99 others); Tue, 5 Apr 2022 18:30:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244608AbiDEKjC (ORCPT ); Tue, 5 Apr 2022 06:39:02 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A50C8CCCE; Tue, 5 Apr 2022 03:24:02 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id DDFB5CE1B5F; Tue, 5 Apr 2022 10:24:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0625BC385A2; Tue, 5 Apr 2022 10:23:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649154239; bh=vKmHDYIwdqH95tQq1Mx9F4Wf1YCePv0Duk6YZ99qoJ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yyi5nl84xpsIzFOOfGdKxLphQK4roYeoo7+tYDYFNyhlfOx9/Wl10Gj/NdeO2B32L nHOqDXVfxqnTNoMWwzOy+TFomB+dDOy8N9nqCdG595aApd21MZcjkrGyQ9v7BDmTt4 HapKtqPA9+6ATAd/zVSKiokExHiJTucv/Pl8aJCk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ritesh Harjani , "Steven Rostedt (Google)" , Sasha Levin Subject: [PATCH 5.10 508/599] tracing: Have TRACE_DEFINE_ENUM affect trace event types as well Date: Tue, 5 Apr 2022 09:33:22 +0200 Message-Id: <20220405070313.946159616@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Steven Rostedt (Google) [ Upstream commit b3bc8547d3be60898818885f5bf22d0a62e2eb48 ] The macro TRACE_DEFINE_ENUM is used to convert enums in the kernel to their actual value when they are exported to user space via the trace event format file. Currently only the enums in the "print fmt" (TP_printk in the TRACE_EVENT macro) have the enums converted. But the enums can be used to denote array size: field:unsigned int fc_ineligible_rc[EXT4_FC_REASON_MAX]; offset:12; size:36; signed:0; The EXT4_FC_REASON_MAX has no meaning to userspace but it needs to know that information to know how to parse the array. Have the array indexes also be parsed as well. Link: https://lore.kernel.org/all/cover.1646922487.git.riteshh@linux.ibm.com/ Reported-by: Ritesh Harjani Tested-by: Ritesh Harjani Signed-off-by: Steven Rostedt (Google) Signed-off-by: Sasha Levin --- kernel/trace/trace_events.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 7cc5f0a77c3c..bbafea929008 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -2417,6 +2417,33 @@ static void update_event_printk(struct trace_event_call *call, } } +static void update_event_fields(struct trace_event_call *call, + struct trace_eval_map *map) +{ + struct ftrace_event_field *field; + struct list_head *head; + char *ptr; + int len = strlen(map->eval_string); + + head = trace_get_fields(call); + list_for_each_entry(field, head, link) { + ptr = strchr(field->type, '['); + if (!ptr) + continue; + ptr++; + + if (!isalpha(*ptr) && *ptr != '_') + continue; + + if (strncmp(map->eval_string, ptr, len) != 0) + continue; + + ptr = eval_replace(ptr, map, len); + /* enum/sizeof string smaller than value */ + WARN_ON_ONCE(!ptr); + } +} + void trace_event_eval_update(struct trace_eval_map **map, int len) { struct trace_event_call *call, *p; @@ -2452,6 +2479,7 @@ void trace_event_eval_update(struct trace_eval_map **map, int len) first = false; } update_event_printk(call, map[i]); + update_event_fields(call, map[i]); } } } -- 2.34.1