2022-09-17 02:21:43

by Li Zhong

[permalink] [raw]
Subject: [PATCH v1] kernel/trace/trace: check the return value of tracing_update_buffers()

Check the return value of tracing_update_buffers() in case it fails.

Signed-off-by: Li Zhong <[email protected]>
---
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 d3005279165d..0e367e326147 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3305,7 +3305,8 @@ void trace_printk_init_buffers(void)
pr_warn("**********************************************************\n");

/* Expand the buffers to set size */
- tracing_update_buffers();
+ if (tracing_update_buffers() < 0)
+ return;

buffers_allocated = 1;

--
2.25.1


2022-09-26 19:03:36

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v1] kernel/trace/trace: check the return value of tracing_update_buffers()

On Fri, 16 Sep 2022 19:03:53 -0700
Li Zhong <[email protected]> wrote:

> Check the return value of tracing_update_buffers() in case it fails.

FYI, the subject should be:

tracing: Check the return value of tracing_update_buffers()

>
> Signed-off-by: Li Zhong <[email protected]>
> ---
> 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 d3005279165d..0e367e326147 100644
> --- a/kernel/trace/trace.c
> +++ b/kernel/trace/trace.c
> @@ -3305,7 +3305,8 @@ void trace_printk_init_buffers(void)
> pr_warn("**********************************************************\n");
>
> /* Expand the buffers to set size */
> - tracing_update_buffers();
> + if (tracing_update_buffers() < 0)
> + return;

Even if the buffers are not expanded, tracing can still work. This should
not return here. But instead we should have something like:

/* Allocation really should not fail here at boot up or module load */
if (tracing_update_buffers() < 0)
pr_err("Failed to expand tracing buffers for trace_printk() calls\n");
else
buffers_allocate = 1;

As we still want the cmdline action done late in the code.

-- Steve


>
> buffers_allocated = 1;
>