From nobody Tue Jun 30 03:34:18 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 8D126C433F5 for ; Thu, 27 Jan 2022 21:44:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344461AbiA0Vod (ORCPT ); Thu, 27 Jan 2022 16:44:33 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:41238 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230026AbiA0Vob (ORCPT ); Thu, 27 Jan 2022 16:44:31 -0500 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 ams.source.kernel.org (Postfix) with ESMTPS id 60566B821D8 for ; Thu, 27 Jan 2022 21:44:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C973BC340E4; Thu, 27 Jan 2022 21:44:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319869; bh=sH+39cd6xOPiTG6eQ87wYHsVaBLX1flJYwtR+6Idmw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=PJS5CxoaajTpPjxoXR30qHAn4GAzqsgoBQyY8FKGuJGofhu0+3uf+wDq4ljOIBcd3 HPVOTd/WJV1+R6FEXYja+ueo8rYedsFy+aO0L6bFXuc3oR8Z3c9tq9vcS67SQi2kGi 3lv/Nh6NE6qPqUan2D0ZB/pWZ+irDXbqUcoFNwtw6wLfWpVau+7TnBR/cfmXUHkLbk 9yJN00/04uYl/Tqb6J6MGcXZH7mUO9WRiQrkgjPDXOo36040SYla8ZXvGFGo8MOWTt HtoAGhZJ7W8B/7hwgZdOdEOophcB2YTkGETKgvH+KReUAgdh4dGa6Suvg2qL6yIgOP P3JeBz+nPUbOw== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 1/7] tracing: Fix smatch warning for null glob in event_hist_trigger_parse() Date: Thu, 27 Jan 2022 15:44:15 -0600 Message-Id: <96925e5c1f116654ada7ea0613d930b1266b5e1c.1643319703.git.zanussi@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The recent rename of event_hist_trigger_parse() caused smatch re-evaluation of trace_events_hist.c and as a result an old warning was found: kernel/trace/trace_events_hist.c:6174 event_hist_trigger_parse() error: we previously assumed 'glob' could be null (see line 6166) glob should never be null (and apparently smatch can also figure that out and skip the warning when using the cross-function DB (but which can't be used with a 0day build as it takes too much time to generate)). Nonetheless for clarity, remove the test but add a WARN_ON() in case the code ever changes. Reported-by: kernel test robot Reported-by: Dan Carpenter Signed-off-by: Tom Zanussi --- kernel/trace/trace_events_hist.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index cd9610688ddc..e0860146dd39 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -6164,7 +6164,9 @@ static int event_hist_trigger_parse(struct event_comm= and *cmd_ops, =20 lockdep_assert_held(&event_mutex); =20 - if (glob && strlen(glob)) { + WARN_ON(!glob); + + if (strlen(glob)) { hist_err_clear(); last_cmd_set(file, param); } --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 DBB81C433EF for ; Thu, 27 Jan 2022 21:44:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344468AbiA0Vof (ORCPT ); Thu, 27 Jan 2022 16:44:35 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:41256 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344445AbiA0Voc (ORCPT ); Thu, 27 Jan 2022 16:44:32 -0500 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 ams.source.kernel.org (Postfix) with ESMTPS id D652BB823BC for ; Thu, 27 Jan 2022 21:44:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47EFCC36AE5; Thu, 27 Jan 2022 21:44:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319870; bh=dXyvj+UOzqsnuv2jFkIooa+KgNI/r1Unhz4tJnUXJuo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=PuiV9uH6NEYXCZlVxiAH1G3gBs51PNIuYNUOU/0Ci2GQ2tgrQk+WCpKWoGupUpvMB uv7rVKbVJKNaGyevTnNgk7zxyIIRuIUl8cSj/sLcNqUVSdkt6dP4qu5BW5JYdPM607 3OXikBpP2ZkSAcAubBQGExvJgXb1xrQGbHmXZGlMKrThzOulUwqkZguxtwuNzo4NHw JzTE5S//dG+nncQyOIqV4bFXyVSd2CtynnHtFi//p5Z7y3huklcRg7DTiT6AGK9VSQ UPhGqRZ58kFKUmJLSse0BqN40+BqmXy9OQwWb1Co8WT72lXbxsGV3vG2petdauMl/y uZM7abVi1xvSQ== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 2/7] tracing: Fix smatch warning for do while check in event_hist_trigger_parse() Date: Thu, 27 Jan 2022 15:44:16 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The patch ec5ce0987541: "tracing: Allow whitespace to surround hist trigger filter" from Jan 15, 2018, leads to the following Smatch static checker warning: kernel/trace/trace_events_hist.c:6199 event_hist_trigger_parse() warn: 'p' can't be NULL. Since p is always checked for a NULL value at the top of loop and nothing in the rest of the loop will set it to NULL, the warning is correct and might as well be 1 to silence the warning. Reported-by: kernel test robot Reported-by: Dan Carpenter Signed-off-by: Tom Zanussi --- kernel/trace/trace_events_hist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index e0860146dd39..b894d68082ea 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -6199,7 +6199,7 @@ static int event_hist_trigger_parse(struct event_comm= and *cmd_ops, continue; } break; - } while (p); + } while (1); =20 if (!p) param =3D NULL; --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 24E63C433EF for ; Thu, 27 Jan 2022 21:44:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344474AbiA0Voj (ORCPT ); Thu, 27 Jan 2022 16:44:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344463AbiA0Voe (ORCPT ); Thu, 27 Jan 2022 16:44:34 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 601AAC061714 for ; Thu, 27 Jan 2022 13:44:34 -0800 (PST) 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 ams.source.kernel.org (Postfix) with ESMTPS id 2A21EB821D8 for ; Thu, 27 Jan 2022 21:44:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8DD29C340E4; Thu, 27 Jan 2022 21:44:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319872; bh=eqIY/p2JsHWz+a3b8tVHnFVm3Fi/G+8oFQo0afV+PmE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=XTSllgX2C96iME5mnaMGWx3yvsDhJSpXQDY7tR7aDiVd01tXrdCXRXI50qp0V88r6 1dfmLR5TVhV4McRGVPLVcIKldW5WSBr0oWuDIco/pPcnh92WFZGwh8sHVQ86MB96+A TmIBrsVWwlE4LzlJ8hAA+mGV1Vgvd9VyXnKaEBRWlteBHOFYVdmQXL8yYmP3rlDo5h 5bMx/4S+y4KYDwDziD99Ki5HoW1dn1fDzjH2FlUTV0FS0Rgz6+40e9R1LrRFKgNAia GL5NwqOeM0LByjaHS57dXud9wp4q4wQRpUwA2VY/lPQ1xx33QUheQ2i7Khy0jICb+I xNY3jm4ERIBLw== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 3/7] tracing: Propagate is_signed to expression Date: Thu, 27 Jan 2022 15:44:17 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" During expression parsing, a new expression field is created which should inherit the properties of the operands, such as size and is_signed. is_signed propagation was missing, causing spurious errors with signed operands. Add it in parse_expr() and parse_unary() to fix the problem. Reported-by: Yordan Karadzhov BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=3D215513 Signed-off-by: Tom Zanussi --- kernel/trace/trace_events_hist.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index b894d68082ea..ada87bfb5bb8 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -2503,6 +2503,8 @@ static struct hist_field *parse_unary(struct hist_tri= gger_data *hist_data, (HIST_FIELD_FL_TIMESTAMP | HIST_FIELD_FL_TIMESTAMP_USECS); expr->fn =3D hist_field_unary_minus; expr->operands[0] =3D operand1; + expr->size =3D operand1->size; + expr->is_signed =3D operand1->is_signed; expr->operator =3D FIELD_OP_UNARY_MINUS; expr->name =3D expr_str(expr, 0); expr->type =3D kstrdup_const(operand1->type, GFP_KERNEL); @@ -2719,6 +2721,7 @@ static struct hist_field *parse_expr(struct hist_trig= ger_data *hist_data, =20 /* The operand sizes should be the same, so just pick one */ expr->size =3D operand1->size; + expr->is_signed =3D operand1->is_signed; =20 expr->operator =3D field_op; expr->type =3D kstrdup_const(operand1->type, GFP_KERNEL); --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 29E45C433F5 for ; Thu, 27 Jan 2022 21:44:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344471AbiA0Vok (ORCPT ); Thu, 27 Jan 2022 16:44:40 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:47392 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344454AbiA0Vof (ORCPT ); Thu, 27 Jan 2022 16:44:35 -0500 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 dfw.source.kernel.org (Postfix) with ESMTPS id 01B3261B1F for ; Thu, 27 Jan 2022 21:44:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10803C340E4; Thu, 27 Jan 2022 21:44:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319874; bh=TY2/eIey3Ob7eTs/QussZy9ldJo+Y1IYYRhYib8jcMw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=QY2Xc54siv4n688VwfapexPI28URXmmZqPHEHaqmKDDBjoFOkrJf6EFTCbBSTrCK4 ZLL4XEPAG+enXJJtPiGD4SnlVSoWh3cG2y/0q5Ci3d/n020iVN8/YGvbmr28riXzSf t0V5cFXKSGCNu2aoTVh63u1fBEun3iTJrU+H8ARLDUIDLERBPN+H9TWSGEFgv4rdwN lN/sakSXakVhhwGVwURUAEjwnLDIxGvwxrKpl9n5Nif+NqjlDPsSb1HM5/7Wyi9QbP iFLYcdtmregOcVH+7C/L3AKRinfx4qO2cAsrUCUKpRq8HJGqc7pDWSnyJJBqlqngsK ixFbHEeAF7iJg== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 4/7] tracing: Don't inc err_log entry count if entry allocation fails Date: Thu, 27 Jan 2022 15:44:18 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" tr->n_err_log_entries should only be increased if entry allocation succeeds. Doing it when it fails won't cause any problems other than wasting an entry, but should be fixed anyway. Signed-off-by: Tom Zanussi --- kernel/trace/trace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index a73d78dcda2c..addd8297874e 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7740,7 +7740,8 @@ static struct tracing_log_err *get_tracing_log_err(st= ruct trace_array *tr) err =3D kzalloc(sizeof(*err), GFP_KERNEL); if (!err) err =3D ERR_PTR(-ENOMEM); - tr->n_err_log_entries++; + else + tr->n_err_log_entries++; =20 return err; } --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 6FD68C433F5 for ; Thu, 27 Jan 2022 21:44:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344528AbiA0Voo (ORCPT ); Thu, 27 Jan 2022 16:44:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344477AbiA0Vog (ORCPT ); Thu, 27 Jan 2022 16:44:36 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0A9EC061749 for ; Thu, 27 Jan 2022 13:44:36 -0800 (PST) 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 dfw.source.kernel.org (Postfix) with ESMTPS id 5AABB61B27 for ; Thu, 27 Jan 2022 21:44:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62DD3C340E6; Thu, 27 Jan 2022 21:44:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319875; bh=Q0y5wn24YklDkvVHK1u0viX9OsYVps/VGAHxFf/1zJ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=GgvIvXKkU/lSPvW76QwvF03bSrXvlOutfcPM9Zae5Qg0LwQVBTVvx3KIw5gzF2BC2 JYj40fwos8BKPLo7bp5uQ1FHe3Q439U/sEcU7i9wHql2THNYRsAe1KeqfVy17bwem8 b4xmm66dWXf5AM62HkCuZSZ9HFtcBDK1bXljs8tAPl9Sn50uZv9OQb7j9BK0+cL2vA +30a6jeZWN8GZQ/Cc/3v9Rzjv4WF88RHTMfSkJ590gZNQfzIx+W8oqbobIQm/rzeEl Md9P6mC3Fkt2WoUb2cbc7msZ8dABBIrVNPa+aen5roKPUL3J2ItRBi2eqRmozljSh2 90mknU9s0g46g== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 5/7] tracing: Remove size restriction on tracing_log_err cmd strings Date: Thu, 27 Jan 2022 15:44:19 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently, tracing_log_err.cmd strings are restricted to a length of MAX_FILTER_STR_VAL (256), which is too short for some commands already seen in the wild (with cmd strings longer than that showing up truncated). Remove the restriction so that no command string is ever truncated. Signed-off-by: Tom Zanussi --- kernel/trace/trace.c | 55 +++++++++++++++++++++++++++++++++----------- kernel/trace/trace.h | 2 +- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index addd8297874e..ba62607f9957 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7719,7 +7719,7 @@ const struct file_operations trace_min_max_fops =3D { struct err_info { const char **errs; /* ptr to loc-specific array of err strings */ u8 type; /* index into errs -> specific err string */ - u8 pos; /* MAX_FILTER_STR_VAL =3D 256 */ + u16 pos; /* caret position */ u64 ts; }; =20 @@ -7727,26 +7727,52 @@ struct tracing_log_err { struct list_head list; struct err_info info; char loc[TRACING_LOG_LOC_MAX]; /* err location */ - char cmd[MAX_FILTER_STR_VAL]; /* what caused err */ + char *cmd; /* what caused err */ }; =20 static DEFINE_MUTEX(tracing_err_log_lock); =20 -static struct tracing_log_err *get_tracing_log_err(struct trace_array *tr) +static struct tracing_log_err *alloc_tracing_log_err(int len) +{ + struct tracing_log_err *err; + + err =3D kzalloc(sizeof(*err), GFP_KERNEL); + if (!err) + return ERR_PTR(-ENOMEM); + + err->cmd =3D kzalloc(len, GFP_KERNEL); + if (!err->cmd) { + kfree(err); + return ERR_PTR(-ENOMEM); + } + + return err; +} + +static void free_tracing_log_err(struct tracing_log_err *err) +{ + kfree(err->cmd); + kfree(err); +} + +static struct tracing_log_err *get_tracing_log_err(struct trace_array *tr, + int len) { struct tracing_log_err *err; =20 if (tr->n_err_log_entries < TRACING_LOG_ERRS_MAX) { - err =3D kzalloc(sizeof(*err), GFP_KERNEL); - if (!err) - err =3D ERR_PTR(-ENOMEM); - else + err =3D alloc_tracing_log_err(len); + if (PTR_ERR(err) !=3D -ENOMEM) tr->n_err_log_entries++; =20 return err; } =20 err =3D list_first_entry(&tr->err_log, struct tracing_log_err, list); + kfree(err->cmd); + err->cmd =3D kzalloc(len, GFP_KERNEL); + if (!err->cmd) + return ERR_PTR(-ENOMEM); list_del(&err->list); =20 return err; @@ -7807,22 +7833,25 @@ unsigned int err_pos(char *cmd, const char *str) */ void tracing_log_err(struct trace_array *tr, const char *loc, const char *cmd, - const char **errs, u8 type, u8 pos) + const char **errs, u8 type, u16 pos) { struct tracing_log_err *err; + int len =3D 0; =20 if (!tr) tr =3D &global_trace; =20 + len +=3D sizeof(CMD_PREFIX) + 2 * sizeof("\n") + strlen(cmd) + 1; + mutex_lock(&tracing_err_log_lock); - err =3D get_tracing_log_err(tr); + err =3D get_tracing_log_err(tr, len); if (PTR_ERR(err) =3D=3D -ENOMEM) { mutex_unlock(&tracing_err_log_lock); return; } =20 snprintf(err->loc, TRACING_LOG_LOC_MAX, "%s: error: ", loc); - snprintf(err->cmd, MAX_FILTER_STR_VAL,"\n" CMD_PREFIX "%s\n", cmd); + snprintf(err->cmd, len, "\n" CMD_PREFIX "%s\n", cmd); =20 err->info.errs =3D errs; err->info.type =3D type; @@ -7840,7 +7869,7 @@ static void clear_tracing_err_log(struct trace_array = *tr) mutex_lock(&tracing_err_log_lock); list_for_each_entry_safe(err, next, &tr->err_log, list) { list_del(&err->list); - kfree(err); + free_tracing_log_err(err); } =20 tr->n_err_log_entries =3D 0; @@ -7868,9 +7897,9 @@ static void tracing_err_log_seq_stop(struct seq_file = *m, void *v) mutex_unlock(&tracing_err_log_lock); } =20 -static void tracing_err_log_show_pos(struct seq_file *m, u8 pos) +static void tracing_err_log_show_pos(struct seq_file *m, u16 pos) { - u8 i; + u16 i; =20 for (i =3D 0; i < sizeof(CMD_PREFIX) - 1; i++) seq_putc(m, ' '); diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index d038ddbf1bea..0f5e22238cd2 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -1878,7 +1878,7 @@ extern ssize_t trace_parse_run_command(struct file *f= ile, extern unsigned int err_pos(char *cmd, const char *str); extern void tracing_log_err(struct trace_array *tr, const char *loc, const char *cmd, - const char **errs, u8 type, u8 pos); + const char **errs, u8 type, u16 pos); =20 /* * Normal trace_printk() and friends allocates special buffers --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 ECBEFC433FE for ; Thu, 27 Jan 2022 21:44:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344493AbiA0Vol (ORCPT ); Thu, 27 Jan 2022 16:44:41 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:41322 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344472AbiA0Voj (ORCPT ); Thu, 27 Jan 2022 16:44:39 -0500 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 ams.source.kernel.org (Postfix) with ESMTPS id 5C3ECB823BB for ; Thu, 27 Jan 2022 21:44:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADE7BC340E8; Thu, 27 Jan 2022 21:44:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319877; bh=fSfNtuEYBnQ5rN5RWlV3wSy9TdJ6HHjYxnrKyJcSkRU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=pM3VFquEj6AE3vDc/OZR4i9bCkjiCWq9nTk6zv8CGiy1NsDK5XPTy7vzq5ioqT2eY 7uPeFaWzJ0h4qBUw4X5Gx06VzhfO5zFds9/1nG2e9mBUe9Q7QrwF9inlLza02CpByp BAnPkjLKpQ782YbU6OkMzpD+YBb0N+5yoYV6BtxQtqHzfIit7LmmygrnrdQEVBel52 J/wNYfY0npd4eocatJtPmwGqtJ4r12woXatq4Fg1neiqWS9E0NfhnIEWIyftPDt/ps kBqPLNXngrKx/5MT7ampyppCYIWgIozRyEsjcuQ2DK46kW3ey18gJiaHy+Tuy7EvPH nmXaCNWhwxmHQ== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 6/7] tracing: Remove size restriction on hist trigger cmd error logging Date: Thu, 27 Jan 2022 15:44:20 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently, hist trigger command error strings are restricted to a length of MAX_FILTER_STR_VAL (256), which is too short for some commands already seen in the wild (with cmd strings longer than that showing up truncated in err_log). Remove the restriction so that no hist trigger command error string is ever truncated. Signed-off-by: Tom Zanussi --- kernel/trace/trace_events_hist.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index ada87bfb5bb8..be4a001a607f 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -727,11 +727,16 @@ static struct track_data *track_data_alloc(unsigned i= nt key_len, return data; } =20 -static char last_cmd[MAX_FILTER_STR_VAL]; +#define HIST_PREFIX "hist:" + +static char *last_cmd; static char last_cmd_loc[MAX_FILTER_STR_VAL]; =20 static int errpos(char *str) { + if (!str || !last_cmd) + return 0; + return err_pos(last_cmd, str); } =20 @@ -739,12 +744,19 @@ static void last_cmd_set(struct trace_event_file *fil= e, char *str) { const char *system =3D NULL, *name =3D NULL; struct trace_event_call *call; + int len =3D 0; =20 if (!str) return; =20 - strcpy(last_cmd, "hist:"); - strncat(last_cmd, str, MAX_FILTER_STR_VAL - 1 - sizeof("hist:")); + len +=3D sizeof(HIST_PREFIX) + strlen(str) + 1; + kfree(last_cmd); + last_cmd =3D kzalloc(len, GFP_KERNEL); + if (!last_cmd) + return; + + strcpy(last_cmd, HIST_PREFIX); + strncat(last_cmd, str, len - 1 - sizeof(HIST_PREFIX)); =20 if (file) { call =3D file->event_call; @@ -757,18 +769,22 @@ static void last_cmd_set(struct trace_event_file *fil= e, char *str) } =20 if (system) - snprintf(last_cmd_loc, MAX_FILTER_STR_VAL, "hist:%s:%s", system, name); + snprintf(last_cmd_loc, MAX_FILTER_STR_VAL, HIST_PREFIX "%s:%s", system, = name); } =20 -static void hist_err(struct trace_array *tr, u8 err_type, u8 err_pos) +static void hist_err(struct trace_array *tr, u8 err_type, u16 err_pos) { + if (!last_cmd) + return; + tracing_log_err(tr, last_cmd_loc, last_cmd, err_text, err_type, err_pos); } =20 static void hist_err_clear(void) { - last_cmd[0] =3D '\0'; + if (last_cmd) + last_cmd[0] =3D '\0'; last_cmd_loc[0] =3D '\0'; } =20 @@ -5610,7 +5626,7 @@ static int event_hist_trigger_print(struct seq_file *= m, bool have_var =3D false; unsigned int i; =20 - seq_puts(m, "hist:"); + seq_puts(m, HIST_PREFIX); =20 if (data->name) seq_printf(m, "%s:", data->name); --=20 2.17.1 From nobody Tue Jun 30 03:34:18 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 5CDD7C4332F for ; Thu, 27 Jan 2022 21:44:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344505AbiA0Vom (ORCPT ); Thu, 27 Jan 2022 16:44:42 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:47490 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344490AbiA0Voj (ORCPT ); Thu, 27 Jan 2022 16:44:39 -0500 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 dfw.source.kernel.org (Postfix) with ESMTPS id 1D94A61B36 for ; Thu, 27 Jan 2022 21:44:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22192C340E4; Thu, 27 Jan 2022 21:44:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1643319878; bh=FZjygqRcorIfdOsGqxbFJ4YYvK2FTppWojlh7N45qsw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:In-Reply-To: References:From; b=k5lgidlHXq4zbyC7DDUYoCpCS53/+42Bvt0N/1mNf9bi/48hfqOMGd9evo01ZB8oa p0KT2Ay+BfNFiPwpuou1ko4PejvwZGiwPZPtAlWEPIlAqtev+kJWAHk+HnAguijd7X HFZHqZz1ua/eiTPM4UJ2WKO3xvyrQoF5zMmatxjAFh8zI7LYOOfdEoav5OjsfjPSK8 AUs8BOmDGxQ6pVkx8zPed4i3XfLqwxWmyYxBY2R2LKSVjSCc9phI0olJNHD3L3+IQj BSpM9HjoDX9wPKJZKamejnNJjsCo/lOpu81E+k83oX28ZVWXOUr7VupLnzpJ/jcJvt 5TN0Mc/VzPoJg== From: Tom Zanussi To: rostedt@goodmis.org Cc: mhiramat@kernel.org, linux-kernel@vger.kernel.org, Tom Zanussi Subject: [PATCH 7/7] tracing: Remove size restriction on synthetic event cmd error logging Date: Thu, 27 Jan 2022 15:44:21 -0600 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently, synthetic event command error strings are restricted to a length of MAX_FILTER_STR_VAL (256), which is too short for some commands already seen in the wild (with cmd strings longer than that showing up truncated in err_log). Remove the restriction so that no synthetic event command error string is ever truncated. Signed-off-by: Tom Zanussi --- kernel/trace/trace_events_synth.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_= synth.c index 149011e34ad9..7d50b4251c60 100644 --- a/kernel/trace/trace_events_synth.c +++ b/kernel/trace/trace_events_synth.c @@ -42,10 +42,13 @@ enum { ERRORS }; =20 static const char *err_text[] =3D { ERRORS }; =20 -static char last_cmd[MAX_FILTER_STR_VAL]; +static char *last_cmd; =20 static int errpos(const char *str) { + if (!str || !last_cmd) + return 0; + return err_pos(last_cmd, str); } =20 @@ -54,11 +57,19 @@ static void last_cmd_set(const char *str) if (!str) return; =20 - strncpy(last_cmd, str, MAX_FILTER_STR_VAL - 1); + kfree(last_cmd); + last_cmd =3D kzalloc(strlen(str) + 1, GFP_KERNEL); + if (!last_cmd) + return; + + strncpy(last_cmd, str, strlen(str)); } =20 -static void synth_err(u8 err_type, u8 err_pos) +static void synth_err(u8 err_type, u16 err_pos) { + if (!last_cmd) + return; + tracing_log_err(NULL, "synthetic_events", last_cmd, err_text, err_type, err_pos); } --=20 2.17.1