tree:
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
rostedt_ftrace/core
head: 4c704bce795d69a9db9d2d21d11612bc78b3e54a
commit: ab1b08b2eb044cc90aba1f2732442214433cd1ed [2/3] ftrace/x86: Allow for arguments to
be passed in to ftrace_regs by default
config: x86_64-randconfig-a006-20201029 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
#
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id...
git remote add jolsa-perf
https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf rostedt_ftrace/core
git checkout ab1b08b2eb044cc90aba1f2732442214433cd1ed
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from include/linux/perf_event.h:49,
from include/linux/trace_events.h:10,
from kernel/trace/synth_event_gen_test.c:9:
> include/linux/ftrace.h:102:63: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
102 | static __always_inline struct pt_regs
*ftrace_get_regs(struct ftrace_regs *fregs)
| ^~~~~~~~~~~
include/linux/ftrace.h: In function 'ftrace_get_regs':
> include/linux/ftrace.h:107:9: error: implicit declaration of
function 'arch_ftrace_get_regs'; did you mean 'ftrace_get_regs'?
[-Werror=implicit-function-declaration]
107 | return
arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~
| ftrace_get_regs
> include/linux/ftrace.h:107:9: warning: returning 'int'
from a function with return type 'struct pt_regs *' makes pointer from integer
without a cast [-Wint-conversion]
107 | return arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h: At top level:
include/linux/ftrace.h:111:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
111 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
include/linux/ftrace.h:279:34: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
279 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from kernel/trace/ftrace.c:29:
> include/linux/ftrace.h:102:63: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
102 | static __always_inline struct pt_regs
*ftrace_get_regs(struct ftrace_regs *fregs)
| ^~~~~~~~~~~
include/linux/ftrace.h: In function 'ftrace_get_regs':
> include/linux/ftrace.h:107:9: error: implicit declaration of
function 'arch_ftrace_get_regs'; did you mean 'ftrace_get_regs'?
[-Werror=implicit-function-declaration]
107 | return
arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~
| ftrace_get_regs
> include/linux/ftrace.h:107:9: warning: returning 'int'
from a function with return type 'struct pt_regs *' makes pointer from integer
without a cast [-Wint-conversion]
107 | return arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h: At top level:
include/linux/ftrace.h:111:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
111 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
include/linux/ftrace.h:279:34: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
279 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
> kernel/trace/ftrace.c:82:11: error: initialization of 'void
(*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs
*)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned
int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types]
82 | .func = ftrace_stub,
| ^~~~~~~~~~~
kernel/trace/ftrace.c:82:11: note: (near initialization for
'ftrace_list_end.func')
> kernel/trace/ftrace.c:119:53: error: initialization of
'ftrace_func_t' {aka 'void (*)(long unsigned int, long unsigned int, struct
ftrace_ops *, struct ftrace_regs *)'} from incompatible pointer type 'void
(*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs
*)' [-Werror=incompatible-pointer-types]
119 | ftrace_func_t
ftrace_trace_function __read_mostly = ftrace_stub;
| ^~~~~~~~~~~
> kernel/trace/ftrace.c:143:38: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
143 | struct ftrace_ops *op, struct
ftrace_regs *fregs)
| ^~~~~~~~~~~
kernel/trace/ftrace.c: In function 'ftrace_pid_func':
> kernel/trace/ftrace.c:157:36: error: passing argument 4 of
'op->saved_func' from incompatible pointer type
[-Werror=incompatible-pointer-types]
157 | op->saved_func(ip, parent_ip,
op, fregs);
| ^~~~~
| |
| struct ftrace_regs *
kernel/trace/ftrace.c:157:36: note: expected 'struct ftrace_regs *' but
argument is of type 'struct ftrace_regs *'
kernel/trace/ftrace.c: In function 'ftrace_ops_get_list_func':
kernel/trace/ftrace.c:128:31: warning: cast between incompatible function types from
'void (*)(long unsigned int, long unsigned int)' to 'void (*)(long unsigned
int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Wcast-function-type]
128 | #define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
| ^
kernel/trace/ftrace.c:174:10: note: in expansion of macro
'ftrace_ops_list_func'
174 | return ftrace_ops_list_func;
| ^~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c: In function 'update_ftrace_function':
> kernel/trace/ftrace.c:193:8: error: assignment to
'ftrace_func_t' {aka 'void (*)(long unsigned int, long unsigned int, struct
ftrace_ops *, struct ftrace_regs *)'} from incompatible pointer type 'void
(*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs
*)' [-Werror=incompatible-pointer-types]
193 | func = ftrace_stub;
| ^
kernel/trace/ftrace.c:128:31: warning: cast between incompatible function types from
'void (*)(long unsigned int, long unsigned int)' to 'void (*)(long unsigned
int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Wcast-function-type]
128 | #define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
| ^
kernel/trace/ftrace.c:207:10: note: in expansion of macro
'ftrace_ops_list_func'
207 | func = ftrace_ops_list_func;
| ^~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:128:31: warning: cast between incompatible function types from
'void (*)(long unsigned int, long unsigned int)' to 'void (*)(long unsigned
int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Wcast-function-type]
128 | #define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
| ^
kernel/trace/ftrace.c:220:14: note: in expansion of macro
'ftrace_ops_list_func'
220 | if (func == ftrace_ops_list_func) {
| ^~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:128:31: warning: cast between incompatible function types from
'void (*)(long unsigned int, long unsigned int)' to 'void (*)(long unsigned
int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Wcast-function-type]
128 | #define ftrace_ops_list_func ((ftrace_func_t)ftrace_ops_no_ops)
| ^
kernel/trace/ftrace.c:240:26: note: in expansion of macro
'ftrace_ops_list_func'
240 | ftrace_trace_function = ftrace_ops_list_func;
| ^~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c: In function '__register_ftrace_function':
kernel/trace/ftrace.c:335:13: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
335 | ops->func = ftrace_pid_func;
| ^
kernel/trace/ftrace.c: In function 'ftrace_update_pid_func':
> kernel/trace/ftrace.c:370:28: warning: comparison of distinct
pointer types lacks a cast
370 | if (ftrace_trace_function == ftrace_stub)
| ^~
> kernel/trace/ftrace.c:376:21: warning: pointer type mismatch in
conditional expression
376 | ftrace_pid_func : op->saved_func;
| ^
kernel/trace/ftrace.c: At top level:
kernel/trace/ftrace.c:584:5: warning: no previous prototype for
'ftrace_profile_pages_init' [-Wmissing-prototypes]
584 | int ftrace_profile_pages_init(struct ftrace_profile_stat *stat)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:757:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
757 | struct ftrace_ops *ops, struct ftrace_regs *fregs)
| ^~~~~~~~~~~
kernel/trace/ftrace.c:6867:12: error: initialization of 'void (*)(long unsigned
int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' from
incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct
ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types]
6867 | .func = ftrace_stub,
| ^~~~~~~~~~~
kernel/trace/ftrace.c:6867:12: note: (near initialization for
'global_ops.func')
In file included from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/jump_label.h:250,
from include/linux/static_key.h:1,
from arch/x86/include/asm/nospec-branch.h:6,
from arch/x86/include/asm/irqflags.h:9,
from include/linux/irqflags.h:16,
from include/linux/rcupdate.h:26,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from include/linux/stop_machine.h:5,
from kernel/trace/ftrace.c:17:
kernel/trace/ftrace.c: In function 'ftrace_init_array_ops':
kernel/trace/ftrace.c:6903:29: warning: comparison of distinct pointer types lacks a
cast
6903 | if (WARN_ON(tr->ops->func != ftrace_stub))
| ^~
include/asm-generic/bug.h:119:25: note: in definition of macro 'WARN_ON'
119 | int __ret_warn_on = !!(condition); \
| ^~~~~~~~~
kernel/trace/ftrace.c: In function 'ftrace_reset_array_ops':
kernel/trace/ftrace.c:6913:16: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
6913 | tr->ops->func = ftrace_stub;
| ^
kernel/trace/ftrace.c: At top level:
kernel/trace/ftrace.c:6918:45: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
6918 | struct ftrace_ops *ignored, struct ftrace_regs *fregs)
| ^~~~~~~~~~~
kernel/trace/ftrace.c: In function '__ftrace_ops_list_func':
> kernel/trace/ftrace.c:6920:41: error: passing argument 1 of
'ftrace_get_regs' from incompatible pointer type
[-Werror=incompatible-pointer-types]
6920 | struct pt_regs *regs =
ftrace_get_regs(fregs);
| ^~~~~
| |
| struct ftrace_regs *
In file included from kernel/trace/ftrace.c:29:
include/linux/ftrace.h:102:76: note: expected 'struct ftrace_regs *' but
argument is of type 'struct ftrace_regs *'
102 | static __always_inline struct pt_regs *ftrace_get_regs(struct ftrace_regs
*fregs)
|
~~~~~~~~~~~~~~~~~~~~^~~~~
> kernel/trace/ftrace.c:6953:32: error: passing argument 4 of
'op->func' from incompatible pointer type [-Werror=incompatible-pointer-types]
6953 | op->func(ip, parent_ip, op, fregs);
| ^~~~~
| |
| struct ftrace_regs *
kernel/trace/ftrace.c:6953:32: note: expected 'struct ftrace_regs *' but
argument is of type 'struct ftrace_regs *'
kernel/trace/ftrace.c: At top level:
kernel/trace/ftrace.c:6995:38: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
6995 | struct ftrace_ops *op, struct ftrace_regs *fregs)
| ^~~~~~~~~~~
kernel/trace/ftrace.c: In function 'ftrace_ops_assist_func':
kernel/trace/ftrace.c:7008:30: error: passing argument 4 of 'op->func' from
incompatible pointer type [-Werror=incompatible-pointer-types]
7008 | op->func(ip, parent_ip, op, fregs);
| ^~~~~
| |
| struct ftrace_regs *
kernel/trace/ftrace.c:7008:30: note: expected 'struct ftrace_regs *' but
argument is of type 'struct ftrace_regs *'
kernel/trace/ftrace.c: In function 'ftrace_ops_get_func':
> kernel/trace/ftrace.c:7034:10: error: returning 'void
(*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs
*)' from a function with incompatible return type 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} [-Werror=incompatible-pointer-types]
7034 | return
ftrace_ops_assist_func;
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c: In function 'ftrace_kill':
kernel/trace/ftrace.c:7470:24: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
7470 | ftrace_trace_function = ftrace_stub;
| ^
kernel/trace/ftrace.c: In function 'ftrace_enable_sysctl':
kernel/trace/ftrace.c:7571:25: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
7571 | ftrace_trace_function = ftrace_stub;
| ^
cc1: some warnings being treated as errors
--
In file included from kernel/trace/trace_output.c:10:
> include/linux/ftrace.h:102:63: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
102 | static __always_inline struct pt_regs
*ftrace_get_regs(struct ftrace_regs *fregs)
| ^~~~~~~~~~~
include/linux/ftrace.h: In function 'ftrace_get_regs':
> include/linux/ftrace.h:107:9: error: implicit declaration of
function 'arch_ftrace_get_regs'; did you mean 'ftrace_get_regs'?
[-Werror=implicit-function-declaration]
107 | return
arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~
| ftrace_get_regs
> include/linux/ftrace.h:107:9: warning: returning 'int'
from a function with return type 'struct pt_regs *' makes pointer from integer
without a cast [-Wint-conversion]
107 | return arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h: At top level:
include/linux/ftrace.h:111:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
111 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
include/linux/ftrace.h:279:34: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
279 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace_output.c: In function 'trace_output_raw':
kernel/trace/trace_output.c:321:2: warning: function 'trace_output_raw' might
be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
321 | trace_seq_vprintf(s, fmt, ap);
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from kernel/trace/trace_functions.c:16:
> include/linux/ftrace.h:102:63: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
102 | static __always_inline struct pt_regs
*ftrace_get_regs(struct ftrace_regs *fregs)
| ^~~~~~~~~~~
include/linux/ftrace.h: In function 'ftrace_get_regs':
> include/linux/ftrace.h:107:9: error: implicit declaration of
function 'arch_ftrace_get_regs'; did you mean 'ftrace_get_regs'?
[-Werror=implicit-function-declaration]
107 | return
arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~
| ftrace_get_regs
> include/linux/ftrace.h:107:9: warning: returning 'int'
from a function with return type 'struct pt_regs *' makes pointer from integer
without a cast [-Wint-conversion]
107 | return arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h: At top level:
include/linux/ftrace.h:111:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
111 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
include/linux/ftrace.h:279:34: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
279 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
> kernel/trace/trace_functions.c:26:37: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
26 | struct ftrace_ops *op, struct ftrace_regs
*fregs);
| ^~~~~~~~~~~
kernel/trace/trace_functions.c:29:36: warning: 'struct ftrace_regs' declared
inside parameter list will not be visible outside of this definition or declaration
29 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace_functions.c: In function 'ftrace_allocate_ftrace_ops':
> kernel/trace/trace_functions.c:50:12: error: assignment to
'ftrace_func_t' {aka 'void (*)(long unsigned int, long unsigned int, struct
ftrace_ops *, struct ftrace_regs *)'} from incompatible pointer type 'void
(*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs
*)' [-Werror=incompatible-pointer-types]
50 | ops->func =
function_trace_call;
| ^
kernel/trace/trace_functions.c: In function 'function_trace_init':
kernel/trace/trace_functions.c:103:8: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
103 | func = function_stack_trace_call;
| ^
kernel/trace/trace_functions.c:105:8: error: assignment to 'ftrace_func_t' {aka
'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
105 | func = function_trace_call;
| ^
kernel/trace/trace_functions.c: At top level:
kernel/trace/trace_functions.c:131:37: warning: 'struct ftrace_regs' declared
inside parameter list will not be visible outside of this definition or declaration
131 | struct ftrace_ops *op, struct ftrace_regs *fregs)
| ^~~~~~~~~~~
> kernel/trace/trace_functions.c:130:1: error: conflicting types
for 'function_trace_call'
130 | function_trace_call(unsigned long ip,
unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~
kernel/trace/trace_functions.c:25:1: note: previous declaration of
'function_trace_call' was here
25 | function_trace_call(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~
kernel/trace/trace_functions.c:180:36: warning: 'struct ftrace_regs' declared
inside parameter list will not be visible outside of this definition or declaration
180 | struct ftrace_ops *op, struct ftrace_regs *fregs)
| ^~~~~~~~~~~
> kernel/trace/trace_functions.c:179:1: error: conflicting types
for 'function_stack_trace_call'
179 |
function_stack_trace_call(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace_functions.c:28:1: note: previous declaration of
'function_stack_trace_call' was here
28 | function_stack_trace_call(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace_functions.c: In function 'func_set_flag':
kernel/trace/trace_functions.c:254:18: error: assignment to 'ftrace_func_t'
{aka 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
254 | tr->ops->func = function_stack_trace_call;
| ^
kernel/trace/trace_functions.c:257:18: error: assignment to 'ftrace_func_t'
{aka 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct
ftrace_regs *)'} from incompatible pointer type 'void (*)(long unsigned int, long
unsigned int, struct ftrace_ops *, struct ftrace_regs *)'
[-Werror=incompatible-pointer-types]
257 | tr->ops->func = function_trace_call;
| ^
kernel/trace/trace_functions.c: At top level:
> kernel/trace/trace_functions.c:25:1: warning:
'function_trace_call' used but never defined
25 |
function_trace_call(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~
> kernel/trace/trace_functions.c:28:1: warning:
'function_stack_trace_call' used but never defined
28 |
function_stack_trace_call(unsigned long ip, unsigned long parent_ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from kernel/trace/trace_preemptirq.c:11:
> include/linux/ftrace.h:102:63: warning: 'struct
ftrace_regs' declared inside parameter list will not be visible outside of this
definition or declaration
102 | static __always_inline struct pt_regs
*ftrace_get_regs(struct ftrace_regs *fregs)
| ^~~~~~~~~~~
include/linux/ftrace.h: In function 'ftrace_get_regs':
> include/linux/ftrace.h:107:9: error: implicit declaration of
function 'arch_ftrace_get_regs'; did you mean 'ftrace_get_regs'?
[-Werror=implicit-function-declaration]
107 | return
arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~
| ftrace_get_regs
> include/linux/ftrace.h:107:9: warning: returning 'int'
from a function with return type 'struct pt_regs *' makes pointer from integer
without a cast [-Wint-conversion]
107 | return arch_ftrace_get_regs(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h: At top level:
include/linux/ftrace.h:111:40: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
111 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
include/linux/ftrace.h:279:34: warning: 'struct ftrace_regs' declared inside
parameter list will not be visible outside of this definition or declaration
279 | struct ftrace_ops *op, struct ftrace_regs *fregs);
| ^~~~~~~~~~~
kernel/trace/trace_preemptirq.c:88:16: warning: no previous prototype for
'trace_hardirqs_on_caller' [-Wmissing-prototypes]
88 | __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace_preemptirq.c:103:16: warning: no previous prototype for
'trace_hardirqs_off_caller' [-Wmissing-prototypes]
103 | __visible void trace_hardirqs_off_caller(unsigned long caller_addr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
..
vim +107 include/linux/ftrace.h
101
102 static __always_inline struct pt_regs *ftrace_get_regs(struct
ftrace_regs *fregs)
103 {
104 if (!fregs)
105 return NULL;
106
107 return arch_ftrace_get_regs(fregs);
108 }
109
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org