Commit d899926f authored by Francis Deslauriers's avatar Francis Deslauriers Committed by Steven Rostedt (VMware)

selftest/ftrace: Move kprobe selftest function to separate compile unit

Move selftest function to its own compile unit so it can be compiled
with the ftrace cflags (CC_FLAGS_FTRACE) allowing it to be probed
during the ftrace startup tests.

Link: http://lkml.kernel.org/r/153294604271.32740.16490677128630177030.stgit@devboxSigned-off-by: default avatarFrancis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
parent 45408c4f
...@@ -13,6 +13,11 @@ obj-y += trace_selftest_dynamic.o ...@@ -13,6 +13,11 @@ obj-y += trace_selftest_dynamic.o
endif endif
endif endif
ifdef CONFIG_FTRACE_STARTUP_TEST
CFLAGS_trace_kprobe_selftest.o = $(CC_FLAGS_FTRACE)
obj-$(CONFIG_KPROBE_EVENTS) += trace_kprobe_selftest.o
endif
# If unlikely tracing is enabled, do not trace these files # If unlikely tracing is enabled, do not trace these files
ifdef CONFIG_TRACING_BRANCHES ifdef CONFIG_TRACING_BRANCHES
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/rculist.h> #include <linux/rculist.h>
#include <linux/error-injection.h> #include <linux/error-injection.h>
#include "trace_kprobe_selftest.h"
#include "trace_probe.h" #include "trace_probe.h"
#define KPROBE_EVENT_SYSTEM "kprobes" #define KPROBE_EVENT_SYSTEM "kprobes"
...@@ -1587,17 +1588,6 @@ fs_initcall(init_kprobe_trace); ...@@ -1587,17 +1588,6 @@ fs_initcall(init_kprobe_trace);
#ifdef CONFIG_FTRACE_STARTUP_TEST #ifdef CONFIG_FTRACE_STARTUP_TEST
/*
* The "__used" keeps gcc from removing the function symbol
* from the kallsyms table. 'noinline' makes sure that there
* isn't an inlined version used by the test method below
*/
static __used __init noinline int
kprobe_trace_selftest_target(int a1, int a2, int a3, int a4, int a5, int a6)
{
return a1 + a2 + a3 + a4 + a5 + a6;
}
static __init struct trace_event_file * static __init struct trace_event_file *
find_trace_probe_file(struct trace_kprobe *tk, struct trace_array *tr) find_trace_probe_file(struct trace_kprobe *tk, struct trace_array *tr)
{ {
......
// SPDX-License-Identifier: GPL-2.0
/*
* Function used during the kprobe self test. This function is in a separate
* compile unit so it can be compile with CC_FLAGS_FTRACE to ensure that it
* can be probed by the selftests.
*/
int kprobe_trace_selftest_target(int a1, int a2, int a3, int a4, int a5, int a6)
{
return a1 + a2 + a3 + a4 + a5 + a6;
}
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Function used during the kprobe self test. This function is in a separate
* compile unit so it can be compile with CC_FLAGS_FTRACE to ensure that it
* can be probed by the selftests.
*/
int kprobe_trace_selftest_target(int a1, int a2, int a3, int a4, int a5, int a6);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment