From nobody Sun Feb 8 01:33:59 2026 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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Steven Rostedt (Google)" The allocation of the struct saved_cmdlines_buffer structure changed from: s =3D kmalloc(sizeof(*s), GFP_KERNEL); s->saved_cmdlines =3D kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL); to: orig_size =3D sizeof(*s) + val * TASK_COMM_LEN; order =3D get_order(orig_size); size =3D 1 << (order + PAGE_SHIFT); page =3D alloc_pages(GFP_KERNEL, order); if (!page) return NULL; s =3D page_address(page); memset(s, 0, sizeof(*s)); s->saved_cmdlines =3D 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@ga= ndalf.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_c= mdlines_buffer *s) int order =3D get_order(sizeof(*s) + s->cmdline_num * TASK_COMM_LEN); =20 kfree(s->map_cmdline_to_pid); + kmemleak_free(s); free_pages((unsigned long)s, order); } =20 @@ -2358,6 +2360,7 @@ static struct saved_cmdlines_buffer *allocate_cmdline= s_buffer(unsigned int val) return NULL; =20 s =3D page_address(page); + kmemleak_alloc(s, size, 1, GFP_KERNEL); memset(s, 0, sizeof(*s)); =20 /* Round up to actual allocation */ --=20 2.43.0 From nobody Sun Feb 8 01:33:59 2026 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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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-th= orsten.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_eve= nt *entry, if (is_dynamic) { union trace_synth_field *data =3D &entry->fields[*n_u64]; =20 + len =3D fetch_store_strlen((unsigned long)str_val); data->as_dynamic.offset =3D struct_size(entry, fields, event->n_u64) + d= ata_size; - data->as_dynamic.len =3D fetch_store_strlen((unsigned long)str_val); + data->as_dynamic.len =3D len; =20 ret =3D fetch_store_string((unsigned long)str_val, &entry->fields[*n_u64= ], entry); =20 --=20 2.43.0 From nobody Sun Feb 8 01:33:59 2026 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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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@l= inux.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 =20 -#include +#include +#include +#include +#include =20 /* * Trace sequences are used to allow a function to call several other func= tions 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 =20 /** * seq_buf_can_fit - can the new data fit in the current buffer? --=20 2.43.0 From nobody Sun Feb 8 01:33:59 2026 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 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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@l= inux.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 @@ */ =20 /** - * 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) } =20 /** - * 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, v= a_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); =20 /** - * 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); =20 /** - * 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 *m= em, * * 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 *e= sc) { @@ -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 *u= buf, 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, --=20 2.43.0