2021-08-29 06:05:07

by Zhang, Qiang

[permalink] [raw]
Subject: [PATCH] trace/osnoise: fix missed cpus_read_unlock()

From: "Qiang.zhang" <[email protected]>

When start_kthread() return error, the cpus_read_unlock() need
to be called.

Signed-off-by: Qiang.zhang <[email protected]>
---
kernel/trace/trace_osnoise.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
index 65b08b8e5bf8..45d22d6f3acb 100644
--- a/kernel/trace/trace_osnoise.c
+++ b/kernel/trace/trace_osnoise.c
@@ -1568,6 +1568,7 @@ static int start_per_cpu_kthreads(struct trace_array *tr)
retval = start_kthread(cpu);
if (retval) {
stop_per_cpu_kthreads();
+ cpus_read_unlock();
return retval;
}
}
--
2.25.1


Subject: Re: [PATCH] trace/osnoise: fix missed cpus_read_unlock()

Hi Qiang,

On 8/29/21 7:52 AM, [email protected] wrote:
> From: "Qiang.zhang" <[email protected]>
set the Subject to:

trace/osnoise: Fix missed cpus_read_unlock() in start_per_cpu_kthreads()

>
> When start_kthread() return error, the cpus_read_unlock() need
> to be called.
>
> Signed-off-by: Qiang.zhang <[email protected]>

Add:

Fixes: c8895e271f79 ("trace/osnoise: Support hotplug operations")
Cc: <[email protected]> # v5.14+

> ---
> kernel/trace/trace_osnoise.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
> index 65b08b8e5bf8..45d22d6f3acb 100644
> --- a/kernel/trace/trace_osnoise.c
> +++ b/kernel/trace/trace_osnoise.c
> @@ -1568,6 +1568,7 @@ static int start_per_cpu_kthreads(struct trace_array *tr)
> retval = start_kthread(cpu);
> if (retval) {
> stop_per_cpu_kthreads();
> + cpus_read_unlock();
> return retval;
> }
> }

Why not initialize retval = 0, and then remove the "return retval" from this if,
returning rteval at the end of the function?

-- Daniel

2021-08-31 01:48:30

by Zhang, Qiang

[permalink] [raw]
Subject: Re: [PATCH] trace/osnoise: fix missed cpus_read_unlock()



________________________________________
From: Daniel Bristot de Oliveira <[email protected]>
Sent: Tuesday, 31 August 2021 01:26
To: Zhang, Qiang; [email protected]; [email protected]; [email protected]
Cc: [email protected]
Subject: Re: [PATCH] trace/osnoise: fix missed cpus_read_unlock()

[Please note: This e-mail is from an EXTERNAL e-mail address]

>Hi Qiang,
>
>On 8/29/21 7:52 AM, [email protected] wrote:
> From: "Qiang.zhang" <[email protected]>
>set the Subject to:

>trace/osnoise: Fix missed cpus_read_unlock() in start_per_cpu_kthreads()
>
>
> When start_kthread() return error, the cpus_read_unlock() need
> to be called.
>
> Signed-off-by: Qiang.zhang <[email protected]>

>Add:
>
>Fixes: c8895e271f79 ("trace/osnoise: Support hotplug operations")
>Cc: <[email protected]> # v5.14+
>
> ---
> kernel/trace/trace_osnoise.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
> index 65b08b8e5bf8..45d22d6f3acb 100644
> --- a/kernel/trace/trace_osnoise.c
> +++ b/kernel/trace/trace_osnoise.c
> @@ -1568,6 +1568,7 @@ static int start_per_cpu_kthreads(struct trace_array *tr)
> retval = start_kthread(cpu);
> if (retval) {
> stop_per_cpu_kthreads();
> + cpus_read_unlock();
> return retval;
> }
> }
>
>Why not initialize retval = 0, and then remove the "return retval" from this if,
>returning rteval at the end of the function?
>

Thank you for your suggestion. I'll modify it and resend it.

Qiang.zhang

>-- Daniel