Commit 0faf0257 authored by Steven Rostedt's avatar Steven Rostedt Committed by Zheng Yejian
Browse files

tracing/osnoise: Fix build when timerlat is not enabled

stable inclusion
from stable-v6.6.52
commit a8632ef4fc130ca0ce3829bfd7bb6f5188d2ce4f
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAU9OQ
CVE: CVE-2024-46845

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a8632ef4fc130ca0ce3829bfd7bb6f5188d2ce4f

--------------------------------

commit af178143343028fdec9d5960a22d17f5587fd3f5 upstream.

To fix some critical section races, the interface_lock was added to a few
locations. One of those locations was above where the interface_lock was
declared, so the declaration was moved up before that usage.
Unfortunately, where it was placed was inside a CONFIG_TIMERLAT_TRACER
ifdef block. As the interface_lock is used outside that config, this broke
the build when CONFIG_OSNOISE_TRACER was enabled but
CONFIG_TIMERLAT_TRACER was not.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: "Helena Anna" <helena.anna.dubel@intel.com>
Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
Cc: Tomas Glozar <tglozar@redhat.com>
Link: https://lore.kernel.org/20240909103231.23a289e2@gandalf.local.home


Fixes: e6a53481da29 ("tracing/timerlat: Only clear timer if a kthread exists")
Reported-by: default avatar"Bityutskiy, Artem" <artem.bityutskiy@intel.com>
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarZheng Yejian <zhengyejian1@huawei.com>
parent ba376f96
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -228,6 +228,11 @@ static inline struct osnoise_variables *this_cpu_osn_var(void)
	return this_cpu_ptr(&per_cpu_osnoise_var);
}

/*
 * Protect the interface.
 */
static struct mutex interface_lock;

#ifdef CONFIG_TIMERLAT_TRACER
/*
 * Runtime information for the timer mode.
@@ -252,11 +257,6 @@ static inline struct timerlat_variables *this_cpu_tmr_var(void)
	return this_cpu_ptr(&per_cpu_timerlat_var);
}

/*
 * Protect the interface.
 */
static struct mutex interface_lock;

/*
 * tlat_var_reset - Reset the values of the given timerlat_variables
 */