From patchwork Thu Feb 15 21:39:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 201759 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp137376dyb; Thu, 15 Feb 2024 13:39:00 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVbQU2FPzGwNuJHG/tVstmvqIq036pk5VPlQRwwG/2gRXs2MDNL70rF2qyoWWpSLmx+yPA+xer7rgJedBkC+5h/3c0ABQ== X-Google-Smtp-Source: AGHT+IFtP6xQyvuhZLw1FUvYsgI6H1vmJOgIS6SQqCl8DLc5e+7zzPngKmbGkGmbR0N43dDVwd64 X-Received: by 2002:ac2:4c8a:0:b0:511:2f76:e093 with SMTP id d10-20020ac24c8a000000b005112f76e093mr2267611lfl.58.1708033139993; Thu, 15 Feb 2024 13:38:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708033139; cv=pass; d=google.com; s=arc-20160816; b=Y/Xn4mYzh8URA/TGuBFjvxRe8otrWhQxzAk5kgFhJWQm/cPqMAGGU/OzOH+E32xgzV 83ofWzN6jHuDGiKP9AIu9i1vswpqt4FPlR9KuwBT3OxYbuhDw29I1VkSxcNUWPDnzEfB 8EaIQ6FCEo+IMLmZfVZYlvgFnefP9HeLCLCxmUOs2gseqEf3zBc6AQPyAtq1WECvL1A7 frsM8bbHQl9LoCC8nLBD3HNU4qHUHV5ZBem0nxJdd2I4p5/n49fpY4ujLEc8nFH4oQj9 +m1VuvG2x5LdySyg5qMvkKdtDb0uB+JOn6LqSEmM9yfuViuqSVy/bVPfOVc5f/mo8ptR +FvQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:subject:cc:to:from:date:user-agent:message-id; bh=vsL229uv7J8wYTJybIoRmiFL6ttE9zhn+jnKFTgl3Ec=; fh=fOPa3ptxm2XaLUIe5lkhj5fc/4F7cXZTeHZnvWcmUdU=; b=j7fRYLVXxytUbiCXWHgZ7Y5ty1y3TmaDHw8DpQ2jHMF9b/9BPybnyyal0FvHRTuNGH BwZ/UbAXBALBO3zQK2+jmj0TnaOaO2nNTlRVE/ZNiwMOmEfk1hP2Qpp2pKcvb0UqYeCT 1hppYIN4UFoejGFbYN9gsqL2wmwLMDHL2cTb+L38W4aWvsYpC0phLf8ekzoKU3qlGbA5 WxcxsaC1js4a14r1fbYlfgQYKs9Iqt2/YIoF2QCCf1Q+C/iuqFEviYVcuenZpPa+/s15 gNdlr/arcBkldNdxuruAHBhGQP6g9qxVPczyxKCB+ACe5GrhlaMd+TlgLlXOiFXWOEx+ zmng==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67704-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67704-ouuuleilei=gmail.com@vger.kernel.org" Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id w22-20020a1709064a1600b00a3d23300f77si961451eju.909.2024.02.15.13.38.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 13:38:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-67704-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67704-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67704-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 9528D1F22302 for ; Thu, 15 Feb 2024 21:38:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D7C01145B0C; Thu, 15 Feb 2024 21:38:11 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42D0178B67 for ; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; cv=none; b=XqAZXecsxZurXe2mAgHFW/JRiGe/Og+gs1N34Qh3wESaoaeHTf8eb27fK5cTkCvIq2ap5aHJ6d5uV4whkBPUn2Dj6FIoKIOU+w52TldobU8+h3Z0gQdxMqjWnNoW5ger10GITKV90NpkUQLfI/DDAFAV9rdJeisGQBxdawHKf34= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; c=relaxed/simple; bh=7CiiHSVOUXcrGH/JJmVwslHSn8uV127w5zLLdzyghM4=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=PEmsGcops3v84L7sL6wNiT/KbYopwy8sEH9vlv1r+SbKsGIyQcDLHwwvKpz7GUui8aOpjPYiXpyJsP2ToB/9VjX8py0fKSuQLEOravQAmM8QSocuGZtWJH/1N7wEukPe4FpX0oDmr/OrdTB5nx4WEd65PUn4UQ1ZSCV9L2F0y0w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id D51B0C43394; Thu, 15 Feb 2024 21:38:09 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rajSK-00000000edY-2j0P; Thu, 15 Feb 2024 16:39:44 -0500 Message-ID: <20240215213944.508142048@goodmis.org> User-Agent: quilt/0.67 Date: Thu, 15 Feb 2024 16:39:17 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Catalin Marinas , Kalle Valo Subject: [for-linus][PATCH 1/4] tracing: Inform kmemleak of saved_cmdlines allocation References: <20240215213916.385127578@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791002557721159437 X-GMAIL-MSGID: 1791002557721159437 From: "Steven Rostedt (Google)" The allocation of the struct saved_cmdlines_buffer structure changed from: s = kmalloc(sizeof(*s), GFP_KERNEL); s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL); to: orig_size = sizeof(*s) + val * TASK_COMM_LEN; order = get_order(orig_size); size = 1 << (order + PAGE_SHIFT); page = alloc_pages(GFP_KERNEL, order); if (!page) return NULL; s = page_address(page); memset(s, 0, sizeof(*s)); s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL); Where that s->saved_cmdlines allocation looks to be a dangling allocation to kmemleak. That's because kmemleak only keeps track of kmalloc() allocations. For allocations that use page_alloc() directly, the kmemleak needs to be explicitly informed about it. Add kmemleak_alloc() and kmemleak_free() around the page allocation so that it doesn't give the following false positive: unreferenced object 0xffff8881010c8000 (size 32760): comm "swapper", pid 0, jiffies 4294667296 hex dump (first 32 bytes): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................ backtrace (crc ae6ec1b9): [] kmemleak_alloc+0x45/0x80 [] __kmalloc_large_node+0x10d/0x190 [] __kmalloc+0x3b1/0x4c0 [] allocate_cmdlines_buffer+0x113/0x230 [] tracer_alloc_buffers.isra.0+0x124/0x460 [] early_trace_init+0x14/0xa0 [] start_kernel+0x12e/0x3c0 [] x86_64_start_reservations+0x18/0x30 [] x86_64_start_kernel+0x7b/0x80 [] secondary_startup_64_no_verify+0x15e/0x16b Link: https://lore.kernel.org/linux-trace-kernel/87r0hfnr9r.fsf@kernel.org/ Link: https://lore.kernel.org/linux-trace-kernel/20240214112046.09a322d6@gandalf.local.home Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Catalin Marinas Fixes: 44dc5c41b5b1 ("tracing: Fix wasted memory in saved_cmdlines logic") Reported-by: Kalle Valo Tested-by: Kalle Valo Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index aa54810e8b56..8198bfc54b58 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -2339,6 +2340,7 @@ static void free_saved_cmdlines_buffer(struct saved_cmdlines_buffer *s) int order = get_order(sizeof(*s) + s->cmdline_num * TASK_COMM_LEN); kfree(s->map_cmdline_to_pid); + kmemleak_free(s); free_pages((unsigned long)s, order); } @@ -2358,6 +2360,7 @@ static struct saved_cmdlines_buffer *allocate_cmdlines_buffer(unsigned int val) return NULL; s = page_address(page); + kmemleak_alloc(s, size, 1, GFP_KERNEL); memset(s, 0, sizeof(*s)); /* Round up to actual allocation */ From patchwork Thu Feb 15 21:39:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 201761 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp137388dyb; Thu, 15 Feb 2024 13:39:01 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXFAzgmxcV596fJEeCpYLSq3u8/7WN6VQztrNorukmJsQ5PubDzn3ZDooWpIVmAepVaff3EXHN/vVMe9gAnXFixgwh5WQ== X-Google-Smtp-Source: AGHT+IFQmh9d6/nNqXzQyMQDlA5RbCEeK4S12yI5XMBYV78hfxOKxeq8696gOZfwRXqkDj84DwWJ X-Received: by 2002:ac8:4f0f:0:b0:42d:d78f:8278 with SMTP id b15-20020ac84f0f000000b0042dd78f8278mr1315426qte.52.1708033140946; Thu, 15 Feb 2024 13:39:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708033140; cv=pass; d=google.com; s=arc-20160816; b=ycZwH8skMApTDuqPkU3Qhyv209xkpZIK6FpArGxL2nT9tqvBw5G0jsZb4uCgFXiF+Q VjEQibHFJSXC4X3+fARxC1TfY0N9V8LcZqOkbsMSKw1N+dqdB6iYi93Ce/vi4uw1Wee7 j1YQNFAJCHolmz6lUJ/r9AGcF3WttebS2jZyxoZkdnotPwWrySU9gXH4P1FdlNhs6BCN g8djYDFib2g+EelX1WSI9IDx1Sje+sQ6pbOXfHCdGqtN9TUaYVJq+bxRLoOuNdvOXLNt 6LQ2BciATXHM3a0XAz7UX9bDTmN9VvDj+Xw4mimmhNT2hVPIAlbXNAQW43NTYX2siCBf Ow1w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:subject:cc:to:from:date:user-agent:message-id; bh=g/vbEDcmvSRp0zqolWmABtagY3Z5kp7Gh+rxrtIo07s=; fh=0sVjrz5QfP9NgLxTP/vdiUBjJ5NChrEJDZd4HHpGvE0=; b=HNzLOsvOWV/O3ATJn7IAqKtwaS1DJd8yz/H9vUdWp02oResdm8NYVazSiBfpkVM9gA a8lzWkYAzHQdujsvyFuFZow+gYGYFOU5vy1m2mYA88S+grkbmc0/suImepEEbwj+2AyT iYyH5V2iLzpZc+pMaCBk6xdG9YwPLrXx/dv+fxYFDIXXX7faEsF6HgxvcCSpWA+EIA3D iRHxcPDLSm1VGQR892C8cCf8YB9SE/o8nxncORp1DhTR+TXt8qP/U/SUTWxXO577KO1G pyDAYC4/Y+H3KCjX/lGI9rPVZ/m4fYGHDjXIRsVJ4ks5BC/6LusMko88vD5jJ0NeLD73 3ygw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67705-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67705-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d6-20020ac851c6000000b0042c63b8d06csi2223225qtn.258.2024.02.15.13.39.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 13:39:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-67705-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67705-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67705-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id B60921C2132F for ; Thu, 15 Feb 2024 21:39:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EE3AC145B14; Thu, 15 Feb 2024 21:38:11 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5ADE313DB8A; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; cv=none; b=fzofpqFrCne97cb21cXFnr/hAmzjDz5HcRdt31N6qc/KH86vFrQc5QFvAznzDWIzZJ1ewMPzJ4m/nzULbl6NHwLjgi0gkyrIKkh+YmkpukWHY9VyR0dNzEJ8tMiv8/OKxnWJ/am6MEltpA3hKY/8b60VFFKHRmtLYogScuwWDwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; c=relaxed/simple; bh=g+k8dVIgHQp4F/ACveGtoBHKj0W/K4gDHR8e9oQTBSw=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=php4NzdkKEu5dE9+p24cXZa8IuKuEtsCNu6d/vyPGeh/tes0R74RIqPxRhpaS507vXtO1AXekF3oGlpN/H8s9HbYpdLn7t4gNT/Ekhw7LUH7SKy7+wS34f0AY4pUbvL4Nq7LCiVKaE7nCQ01hH8Yh2cW8YJbLhcE9GFnEtkUpuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB84BC43399; Thu, 15 Feb 2024 21:38:09 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rajSK-00000000ee2-3PlZ; Thu, 15 Feb 2024 16:39:44 -0500 Message-ID: <20240215213944.670781481@goodmis.org> User-Agent: quilt/0.67 Date: Thu, 15 Feb 2024 16:39:18 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , stable@vger.kernel.org, Thorsten Blum Subject: [for-linus][PATCH 2/4] tracing/synthetic: Fix trace_string() return value References: <20240215213916.385127578@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791002558788944250 X-GMAIL-MSGID: 1791002558788944250 From: Thorsten Blum Fix trace_string() by assigning the string length to the return variable which got lost in commit ddeea494a16f ("tracing/synthetic: Use union instead of casts") and caused trace_string() to always return 0. Link: https://lore.kernel.org/linux-trace-kernel/20240214220555.711598-1-thorsten.blum@toblux.com Cc: stable@vger.kernel.org Cc: Mathieu Desnoyers Fixes: ddeea494a16f ("tracing/synthetic: Use union instead of casts") Acked-by: Masami Hiramatsu (Google) Signed-off-by: Thorsten Blum Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_synth.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c index e7af286af4f1..c82b401a294d 100644 --- a/kernel/trace/trace_events_synth.c +++ b/kernel/trace/trace_events_synth.c @@ -441,8 +441,9 @@ static unsigned int trace_string(struct synth_trace_event *entry, if (is_dynamic) { union trace_synth_field *data = &entry->fields[*n_u64]; + len = fetch_store_strlen((unsigned long)str_val); data->as_dynamic.offset = struct_size(entry, fields, event->n_u64) + data_size; - data->as_dynamic.len = fetch_store_strlen((unsigned long)str_val); + data->as_dynamic.len = len; ret = fetch_store_string((unsigned long)str_val, &entry->fields[*n_u64], entry); From patchwork Thu Feb 15 21:39:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 201760 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp137426dyb; Thu, 15 Feb 2024 13:39:05 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWC+2/djb07qbKUVkad0bdjYKt7mn46ie0khLnIX01cXWhHDP19eYDgDa0tKL97wrelga+U+o5n8kGgetNZAjQsZ8ZuIg== X-Google-Smtp-Source: AGHT+IFSiszWcfeQmGJDIXxiIhI+XRGb62PAheunN2z3J/9tZX7iCE3m6OYmXmdfQ68T3iHpK+ZO X-Received: by 2002:a05:6a00:3d49:b0:6e0:46fc:c2f7 with SMTP id lp9-20020a056a003d4900b006e046fcc2f7mr4061366pfb.8.1708033144772; Thu, 15 Feb 2024 13:39:04 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708033144; cv=pass; d=google.com; s=arc-20160816; b=sVmWkLgWuRGNu9Lgg5mxXUD2F6sZzOLdxHSV2pbIPpTDvbCoj/QCDEzYxtYsOYESMu rt0AmOoOD3H04skRZXZDoAP7ee9M+KV/vFJBnmdS5X+JCTq96cHBY8H9Kie6KvlEbBIP fJWiUlGXTUD9PNitnGyCrTRBrW3gNZYbieW7jfHamP8nLQ7crHs9LkHr95rzSZbZ2Ewu yoOuxqm0Uu6M+1nwmwxSWpzIYMqD3O8uj3rHMKRrxz1crPYpGw6jxBaA4ljMev4JXZ/X mdelnPsBDVDMYmMGZMskvuqreghQM6jDTLzgtPAnDtj+yCr4ahhPX/fddVpOxK9Pk3Ab vyGg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:subject:cc:to:from:date:user-agent:message-id; bh=kwxeiB7Ks1bEJe3pedZbxLGhgxGyOcG2gPyGv0vcS+Q=; fh=trTMqtNy9bd+1wWJFdljKVjUfuPZahnyCaVIkRh/wZc=; b=jTPG7EipAFDl3/cuY8J0oG1fhU2xd3GzoVdJYcuJ4NeoqBJpRnZWCUCOIWkHhK143b aLB2e4/BxrLXHwC7o6ZXS0W3TyJOpH9od5UaF5J3gAaJtluMuTQ3jiT0OVM55vvrlVDR P3eb7QY3/TpKRjNzldST4+P695000zmSsrbfKg0ABldLWt1F26o87k5oGkqTImKDpsr1 938garhM+uoGDUmrQWJ1/4XBLkRsPJA8bPia+qG5WspbbAlDnE6SziS3BXb5ROe4xriE p8c6KjOihF/RX1twiUDZD2kYk5fLPN41DvB5/qX1xNCpepZQU4bmWxeB+Qer/LMOR16y X/xw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67706-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67706-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id k137-20020a636f8f000000b005dc927ee322si1656222pgc.683.2024.02.15.13.39.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 13:39:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-67706-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67706-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67706-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 8CB6C286FC9 for ; Thu, 15 Feb 2024 21:39:04 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1DBAE145B1F; Thu, 15 Feb 2024 21:38:12 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E35513EFE5 for ; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; cv=none; b=ce6B5Jp1QgJl0w8d23SZrqaJkm4TLdPlsJR+CYJ9uD4E+2NH77KP5mIbvK3ijZ1RX9VAXu85KUx5JmrVxUgxm7SYF9TDyQkkQR6EciqbTShNb7/vH4OF3aIBy2sRfnwtQ8HxJB8uzd1A7OpFIuNGKNVwb6znMNJAtRIWgn2gTMw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; c=relaxed/simple; bh=j9clN+6FLqBEVM98VPdidI4cfFXyGBOIbUyOq31qKj8=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=eo2OAdXpdxEMBNTO9lHvM1MA3PRMNbA6n+p/+cV86a9r3BeCOmdAdAMAtxpI/6OPuJAgVsobnYpw6cT8ka3lcM9KXmYruxGpMEMwv1FVREW/2+UW6kgaT0bULqvCtICv85vobxD3aAh5vg61ekdj7ndmEdPlGR51RQxHmRrygdA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AC7EC433B2; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rajSK-00000000eeW-45ky; Thu, 15 Feb 2024 16:39:44 -0500 Message-ID: <20240215213944.834660013@goodmis.org> User-Agent: quilt/0.67 Date: Thu, 15 Feb 2024 16:39:19 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , "Matthew Wilcox (Oracle)" , Andy Shevchenko Subject: [for-linus][PATCH 3/4] seq_buf: Dont use "proxy" headers References: <20240215213916.385127578@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791002562488832433 X-GMAIL-MSGID: 1791002562488832433 From: Andy Shevchenko Update header inclusions to follow IWYU (Include What You Use) principle. Link: https://lkml.kernel.org/r/20240215142255.400264-1-andriy.shevchenko@linux.intel.com Cc: "Matthew Wilcox (Oracle)" Cc: Andrew Morton Signed-off-by: Andy Shevchenko Signed-off-by: Steven Rostedt (Google) --- include/linux/seq_buf.h | 5 ++++- lib/seq_buf.c | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/linux/seq_buf.h b/include/linux/seq_buf.h index c44f4b47b945..07b26e751060 100644 --- a/include/linux/seq_buf.h +++ b/include/linux/seq_buf.h @@ -2,7 +2,10 @@ #ifndef _LINUX_SEQ_BUF_H #define _LINUX_SEQ_BUF_H -#include +#include +#include +#include +#include /* * Trace sequences are used to allow a function to call several other functions diff --git a/lib/seq_buf.c b/lib/seq_buf.c index 010c730ca7fc..dfbfdc497d85 100644 --- a/lib/seq_buf.c +++ b/lib/seq_buf.c @@ -13,9 +13,19 @@ * seq_buf_init() more than once to reset the seq_buf to start * from scratch. */ -#include -#include + +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include /** * seq_buf_can_fit - can the new data fit in the current buffer? From patchwork Thu Feb 15 21:39:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 201762 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:c619:b0:108:e6aa:91d0 with SMTP id hn25csp137503dyb; Thu, 15 Feb 2024 13:39:16 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVLzFGoHIAJomAZ0Ix6BzWDqyT8D/sNTzkb5rrbHiG5Uu7Zx5NQz44uKL4tr2w1NksDVzGCNmY40AVngSl5YhiEjOTdIA== X-Google-Smtp-Source: AGHT+IFykcpcc/QqMMQmtMBk6WB0Wi6uidciCbq9VhzbUP8+rxC9MKf7hCKPWEA5tJJQYk12dzXL X-Received: by 2002:a17:902:d58c:b0:1da:2216:f21a with SMTP id k12-20020a170902d58c00b001da2216f21amr3696674plh.1.1708033156056; Thu, 15 Feb 2024 13:39:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708033156; cv=pass; d=google.com; s=arc-20160816; b=GNg4jp1xLQ1F2nc0AWQ5HMl8ijdO3TRg/WZjkAmYkwXEKJJ9xzeDAv5mtYVrQ+SpCV hdsSSNBZkKL60yyBJMi2BNzkUcYnYJe6UWHlo4CGmG3a2RMhCWvqdUwNykXfJcAMKgzt Xau5wOelAcyXJvJHaKg0dRQ4CAFtmmrSgaic00Y1TAtQ/kqJgHffugz0uOEXXkSD0t/6 K4DyM3mx16Cv2KvPqPuZFBpYwOY4vKMh9jTD8NqoPBJ4CaMJLhclQzdTmJSf8Gxwca1Y HKemEoQnBnTntwYCfsNMaXDrfN9f4WfQ5wJnmYJCDff9QyYdblR1TL4ap5kmjG5xUp0P fWZg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:subject:cc:to:from:date:user-agent:message-id; bh=0ZSBYy27Sb5QS1ffsOxozujqo7/Gyzc7FNPUv060Y54=; fh=1Z7E41oAnUucxg0H1PDm9Eov8nnagP1HIkT2jzsZ5f0=; b=G2uRJKIQIIy6HYI07bx0CyqSXLI+BOyKVtpG47SqGmW9O3FYJ3RoBzENkTK+VhOirc f/EQobj2cDIpveHS/WIq+u8i115Rk4YtLlf7fMai6QlDbRgdip7juywOt4FQJHGiyS8D gUQ3hLRPm+M8/PImmz/5MSkrRK/V0ZoeutyMkIjfR4ER4J6HDfgR4HSzm3M6nE63Ncsq Edqs++VxzK70PYNWnMekA49U2VQshCzHgYwz0lChyyNtICUzskuZQRpdzrZjXu8rpFZp TneWJzzgdV3vAGkVB0H2bIpqrfgAvIRfYsjjQIVGe5T6F+7Poe7Q5ZZO/YE1zAvTSVVs 9oXQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67707-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67707-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id x5-20020a170902ec8500b001db78534cd4si1788662plg.256.2024.02.15.13.39.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 13:39:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-67707-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of linux-kernel+bounces-67707-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-67707-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D36DA287141 for ; Thu, 15 Feb 2024 21:39:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 29C28145FE0; Thu, 15 Feb 2024 21:38:13 +0000 (UTC) Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF1331419AA for ; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; cv=none; b=NDufL5YHPvdFdu3UPK3B3t5MqMZX1S1n9hOryG9rxOksZErzO6S8s+4ilhI1Dj/TJ5XxeBDchZ+xlV6dutvJDUUnN7NnQHikT0NRX6EOj4cqNb/DvsBciJyIkiYRA4I9wiklgp9UOCtJZ/L/aWgzTiP+7cS0YDAHXQkIYkTQ21c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708033090; c=relaxed/simple; bh=Rd3uZUtDcGif03vpp90H8EosR4hflWPyH8BYaOZzKUQ=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=q3kmZYJdO/A3qAypxMr6pVoE2n/r3/QoCBGL6DMN7Os/A1hVotKHMJN6IeU2d0TohRoi4M5l30FWMRHA5fXa+7cCnzCP3v0yJAFcc6J3Wvm6/pfenESe1xbjVNUKHFUBSGnleZH5/JTG+91P4/pCVvtJJ7ss1z2nBzZU4YjDlu4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5A6F7C433F1; Thu, 15 Feb 2024 21:38:10 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rajSL-00000000ef0-0a1O; Thu, 15 Feb 2024 16:39:45 -0500 Message-ID: <20240215213944.995797439@goodmis.org> User-Agent: quilt/0.67 Date: Thu, 15 Feb 2024 16:39:20 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , Andy Shevchenko , Randy Dunlap Subject: [for-linus][PATCH 4/4] seq_buf: Fix kernel documentation References: <20240215213916.385127578@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791002574237451481 X-GMAIL-MSGID: 1791002574237451481 From: Andy Shevchenko There are plenty of issues with the kernel documentation here: - misspelled word "sequence" - different style of returned value descriptions - missed Return sections - unaligned style of ASCII / NUL-terminated / etc - wrong function references Fix all these. Link: https://lkml.kernel.org/r/20240215152506.598340-1-andriy.shevchenko@linux.intel.com Cc: Andrew Morton Signed-off-by: Andy Shevchenko Reviewed-by: Randy Dunlap Signed-off-by: Steven Rostedt (Google) --- include/linux/seq_buf.h | 12 ++++++------ lib/seq_buf.c | 35 ++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/include/linux/seq_buf.h b/include/linux/seq_buf.h index 07b26e751060..fe41da005970 100644 --- a/include/linux/seq_buf.h +++ b/include/linux/seq_buf.h @@ -13,7 +13,7 @@ */ /** - * seq_buf - seq buffer structure + * struct seq_buf - seq buffer structure * @buffer: pointer to the buffer * @size: size of the buffer * @len: the amount of data inside the buffer @@ -80,10 +80,10 @@ static inline unsigned int seq_buf_used(struct seq_buf *s) } /** - * seq_buf_str - get %NUL-terminated C string from seq_buf + * seq_buf_str - get NUL-terminated C string from seq_buf * @s: the seq_buf handle * - * This makes sure that the buffer in @s is nul terminated and + * This makes sure that the buffer in @s is NUL-terminated and * safe to read as a string. * * Note, if this is called when the buffer has overflowed, then @@ -93,7 +93,7 @@ static inline unsigned int seq_buf_used(struct seq_buf *s) * After this function is called, s->buffer is safe to use * in string operations. * - * Returns @s->buf after making sure it is terminated. + * Returns: @s->buf after making sure it is terminated. */ static inline const char *seq_buf_str(struct seq_buf *s) { @@ -113,7 +113,7 @@ static inline const char *seq_buf_str(struct seq_buf *s) * @s: the seq_buf handle * @bufp: the beginning of the buffer is stored here * - * Return the number of bytes available in the buffer, or zero if + * Returns: the number of bytes available in the buffer, or zero if * there's no space. */ static inline size_t seq_buf_get_buf(struct seq_buf *s, char **bufp) @@ -135,7 +135,7 @@ static inline size_t seq_buf_get_buf(struct seq_buf *s, char **bufp) * @num: the number of bytes to commit * * Commit @num bytes of data written to a buffer previously acquired - * by seq_buf_get. To signal an error condition, or that the data + * by seq_buf_get_buf(). To signal an error condition, or that the data * didn't fit in the available space, pass a negative @num value. */ static inline void seq_buf_commit(struct seq_buf *s, int num) diff --git a/lib/seq_buf.c b/lib/seq_buf.c index dfbfdc497d85..f3f3436d60a9 100644 --- a/lib/seq_buf.c +++ b/lib/seq_buf.c @@ -32,7 +32,7 @@ * @s: the seq_buf descriptor * @len: The length to see if it can fit in the current buffer * - * Returns true if there's enough unused space in the seq_buf buffer + * Returns: true if there's enough unused space in the seq_buf buffer * to fit the amount of new data according to @len. */ static bool seq_buf_can_fit(struct seq_buf *s, size_t len) @@ -45,7 +45,7 @@ static bool seq_buf_can_fit(struct seq_buf *s, size_t len) * @m: the seq_file descriptor that is the destination * @s: the seq_buf descriptor that is the source. * - * Returns zero on success, non zero otherwise + * Returns: zero on success, non-zero otherwise. */ int seq_buf_print_seq(struct seq_file *m, struct seq_buf *s) { @@ -60,9 +60,9 @@ int seq_buf_print_seq(struct seq_file *m, struct seq_buf *s) * @fmt: printf format string * @args: va_list of arguments from a printf() type function * - * Writes a vnprintf() format into the sequencce buffer. + * Writes a vnprintf() format into the sequence buffer. * - * Returns zero on success, -1 on overflow. + * Returns: zero on success, -1 on overflow. */ int seq_buf_vprintf(struct seq_buf *s, const char *fmt, va_list args) { @@ -88,7 +88,7 @@ int seq_buf_vprintf(struct seq_buf *s, const char *fmt, va_list args) * * Writes a printf() format into the sequence buffer. * - * Returns zero on success, -1 on overflow. + * Returns: zero on success, -1 on overflow. */ int seq_buf_printf(struct seq_buf *s, const char *fmt, ...) { @@ -104,12 +104,12 @@ int seq_buf_printf(struct seq_buf *s, const char *fmt, ...) EXPORT_SYMBOL_GPL(seq_buf_printf); /** - * seq_buf_do_printk - printk seq_buf line by line + * seq_buf_do_printk - printk() seq_buf line by line * @s: seq_buf descriptor * @lvl: printk level * * printk()-s a multi-line sequential buffer line by line. The function - * makes sure that the buffer in @s is nul terminated and safe to read + * makes sure that the buffer in @s is NUL-terminated and safe to read * as a string. */ void seq_buf_do_printk(struct seq_buf *s, const char *lvl) @@ -149,7 +149,7 @@ EXPORT_SYMBOL_GPL(seq_buf_do_printk); * This function will take the format and the binary array and finish * the conversion into the ASCII string within the buffer. * - * Returns zero on success, -1 on overflow. + * Returns: zero on success, -1 on overflow. */ int seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary) { @@ -177,7 +177,7 @@ int seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary) * * Copy a simple string into the sequence buffer. * - * Returns zero on success, -1 on overflow + * Returns: zero on success, -1 on overflow. */ int seq_buf_puts(struct seq_buf *s, const char *str) { @@ -206,7 +206,7 @@ EXPORT_SYMBOL_GPL(seq_buf_puts); * * Copy a single character into the sequence buffer. * - * Returns zero on success, -1 on overflow + * Returns: zero on success, -1 on overflow. */ int seq_buf_putc(struct seq_buf *s, unsigned char c) { @@ -222,7 +222,7 @@ int seq_buf_putc(struct seq_buf *s, unsigned char c) EXPORT_SYMBOL_GPL(seq_buf_putc); /** - * seq_buf_putmem - write raw data into the sequenc buffer + * seq_buf_putmem - write raw data into the sequence buffer * @s: seq_buf descriptor * @mem: The raw memory to copy into the buffer * @len: The length of the raw memory to copy (in bytes) @@ -231,7 +231,7 @@ EXPORT_SYMBOL_GPL(seq_buf_putc); * buffer and a strcpy() would not work. Using this function allows * for such cases. * - * Returns zero on success, -1 on overflow + * Returns: zero on success, -1 on overflow. */ int seq_buf_putmem(struct seq_buf *s, const void *mem, unsigned int len) { @@ -259,7 +259,7 @@ int seq_buf_putmem(struct seq_buf *s, const void *mem, unsigned int len) * raw memory into the buffer it writes its ASCII representation of it * in hex characters. * - * Returns zero on success, -1 on overflow + * Returns: zero on success, -1 on overflow. */ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem, unsigned int len) @@ -307,7 +307,7 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem, * * Write a path name into the sequence buffer. * - * Returns the number of written bytes on success, -1 on overflow + * Returns: the number of written bytes on success, -1 on overflow. */ int seq_buf_path(struct seq_buf *s, const struct path *path, const char *esc) { @@ -342,6 +342,7 @@ int seq_buf_path(struct seq_buf *s, const struct path *path, const char *esc) * or until it reaches the end of the content in the buffer (@s->len), * whichever comes first. * + * Returns: * On success, it returns a positive number of the number of bytes * it copied. * @@ -392,11 +393,11 @@ int seq_buf_to_user(struct seq_buf *s, char __user *ubuf, size_t start, int cnt) * linebuf size is maximal length for one line. * 32 * 3 - maximum bytes per line, each printed into 2 chars + 1 for * separating space - * 2 - spaces separating hex dump and ascii representation - * 32 - ascii representation + * 2 - spaces separating hex dump and ASCII representation + * 32 - ASCII representation * 1 - terminating '\0' * - * Returns zero on success, -1 on overflow + * Returns: zero on success, -1 on overflow. */ int seq_buf_hex_dump(struct seq_buf *s, const char *prefix_str, int prefix_type, int rowsize, int groupsize,