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@devbox Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
45408c4f92
commit
d899926f55
|
@ -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 @@
|
||||||
#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);
|
||||||
|
|
||||||
|
|
||||||
#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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
// 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;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
/* 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);
|
Loading…
Reference in New Issue