提交 fd5f763c 编写于 作者: J Jiri Olsa 提交者: Zheng Zengkai

ftrace/samples: Add missing prototypes direct functions

stable inclusion
from stable-v5.10.91
commit 786a335fef1838077c9192878bc2e88f925abbef
bugzilla: 186187 https://gitee.com/openeuler/kernel/issues/I4SI2C

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

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

commit 0daf5cb2 upstream.

There's another compilation fail (first here [1]) reported by kernel
test robot for W=1 clang build:

  >> samples/ftrace/ftrace-direct-multi-modify.c:7:6: warning: no previous
  prototype for function 'my_direct_func1' [-Wmissing-prototypes]
     void my_direct_func1(unsigned long ip)

Direct functions in ftrace direct sample modules need to have prototypes
defined. They are already global in order to be visible for the inline
assembly, so there's no problem.

The kernel test robot reported just error for ftrace-direct-multi-modify,
but I got same errors also for the rest of the modules touched by this patch.

[1] 67d4f6e3 ftrace/samples: Add missing prototype for my_direct_func

Link: https://lkml.kernel.org/r/20211219135317.212430-1-jolsa@kernel.orgReported-by: Nkernel test robot <lkp@intel.com>
Fixes: e1067a07 ("ftrace/samples: Add module to test multi direct modify interface")
Fixes: ae0cc3b7 ("ftrace/samples: Add a sample module that implements modify_ftrace_direct()")
Fixes: 156473a0 ("ftrace: Add another example of register_ftrace_direct() use case")
Fixes: b06457c8 ("ftrace: Add sample module that uses register_ftrace_direct()")
Signed-off-by: NJiri Olsa <jolsa@kernel.org>
Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 5d7db98a
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/ftrace.h> #include <linux/ftrace.h>
extern void my_direct_func1(void);
extern void my_direct_func2(void);
void my_direct_func1(void) void my_direct_func1(void)
{ {
trace_printk("my direct func1\n"); trace_printk("my direct func1\n");
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
#include <linux/mm.h> /* for handle_mm_fault() */ #include <linux/mm.h> /* for handle_mm_fault() */
#include <linux/ftrace.h> #include <linux/ftrace.h>
extern void my_direct_func(struct vm_area_struct *vma,
unsigned long address, unsigned int flags);
void my_direct_func(struct vm_area_struct *vma, void my_direct_func(struct vm_area_struct *vma,
unsigned long address, unsigned int flags) unsigned long address, unsigned int flags)
{ {
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include <linux/sched.h> /* for wake_up_process() */ #include <linux/sched.h> /* for wake_up_process() */
#include <linux/ftrace.h> #include <linux/ftrace.h>
extern void my_direct_func(struct task_struct *p);
void my_direct_func(struct task_struct *p) void my_direct_func(struct task_struct *p)
{ {
trace_printk("waking up %s-%d\n", p->comm, p->pid); trace_printk("waking up %s-%d\n", p->comm, p->pid);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册