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
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
________________________________________
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