* [mhiramat:topic/fprobe-ftrace-regs 5/8] include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'?
@ 2023-08-11 10:01 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-08-11 10:01 UTC (permalink / raw)
To: Masami Hiramatsu (Google); +Cc: oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git topic/fprobe-ftrace-regs
head: dfb22a7e201fa419633cc5ce757d6bffb000666a
commit: 81a0320aea7fac0e4209f7570aac3f2183eb2a98 [5/8] tracing/fprobe: Enable fprobe events with CONFIG_DYNAMIC_FTRACE_WITH_ARGS
config: um-defconfig (https://download.01.org/0day-ci/archive/20230811/202308111717.h6pPiOmD-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111717.h6pPiOmD-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308111717.h6pPiOmD-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
In file included from include/linux/perf_event.h:52,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:90,
from init/main.c:21:
include/linux/ftrace.h: In function 'ftrace_regs_get_kernel_stack_nth':
>> include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? [-Werror=implicit-function-declaration]
138 | kernel_stack_pointer(ftrace_get_regs(fregs))
| ^~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h:175:35: note: in expansion of macro 'ftrace_regs_get_stack_pointer'
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/ftrace.h:175:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^
cc1: some warnings being treated as errors
--
In file included from include/linux/perf_event.h:52,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:90,
from arch/x86/um/syscalls_64.c:10:
include/linux/ftrace.h: In function 'ftrace_regs_get_kernel_stack_nth':
>> include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? [-Werror=implicit-function-declaration]
138 | kernel_stack_pointer(ftrace_get_regs(fregs))
| ^~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h:175:35: note: in expansion of macro 'ftrace_regs_get_stack_pointer'
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/ftrace.h:175:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^
arch/x86/um/syscalls_64.c: At top level:
arch/x86/um/syscalls_64.c:84:6: warning: no previous prototype for 'arch_switch_to' [-Wmissing-prototypes]
84 | void arch_switch_to(struct task_struct *to)
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/kprobes.h:28,
from include/linux/kgdb.h:19,
from kernel/panic.c:15:
include/linux/ftrace.h: In function 'ftrace_regs_get_kernel_stack_nth':
>> include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? [-Werror=implicit-function-declaration]
138 | kernel_stack_pointer(ftrace_get_regs(fregs))
| ^~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h:175:35: note: in expansion of macro 'ftrace_regs_get_stack_pointer'
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/ftrace.h:175:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^
kernel/panic.c: In function '__warn':
kernel/panic.c:666:17: warning: function '__warn' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
666 | vprintk(args->fmt, args->args);
| ^~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/perf_event.h:52,
from include/linux/trace_events.h:10,
from include/trace/syscall.h:7,
from include/linux/syscalls.h:90,
from kernel/time/hrtimer.c:30:
include/linux/ftrace.h: In function 'ftrace_regs_get_kernel_stack_nth':
>> include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? [-Werror=implicit-function-declaration]
138 | kernel_stack_pointer(ftrace_get_regs(fregs))
| ^~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h:175:35: note: in expansion of macro 'ftrace_regs_get_stack_pointer'
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/ftrace.h:175:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^
kernel/time/hrtimer.c: At top level:
kernel/time/hrtimer.c:120:35: warning: initialized field overwritten [-Woverride-init]
120 | [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:120:35: note: (near initialization for 'hrtimer_clock_to_base_table[0]')
kernel/time/hrtimer.c:121:35: warning: initialized field overwritten [-Woverride-init]
121 | [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:121:35: note: (near initialization for 'hrtimer_clock_to_base_table[1]')
kernel/time/hrtimer.c:122:35: warning: initialized field overwritten [-Woverride-init]
122 | [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:122:35: note: (near initialization for 'hrtimer_clock_to_base_table[7]')
kernel/time/hrtimer.c:123:35: warning: initialized field overwritten [-Woverride-init]
123 | [CLOCK_TAI] = HRTIMER_BASE_TAI,
| ^~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:123:35: note: (near initialization for 'hrtimer_clock_to_base_table[11]')
kernel/time/hrtimer.c: In function '__run_hrtimer':
kernel/time/hrtimer.c:1651:14: warning: variable 'expires_in_hardirq' set but not used [-Wunused-but-set-variable]
1651 | bool expires_in_hardirq;
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from include/linux/perf_event.h:52,
from kernel/bpf/core.c:32:
include/linux/ftrace.h: In function 'ftrace_regs_get_kernel_stack_nth':
>> include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? [-Werror=implicit-function-declaration]
138 | kernel_stack_pointer(ftrace_get_regs(fregs))
| ^~~~~~~~~~~~~~~~~~~~
include/linux/ftrace.h:175:35: note: in expansion of macro 'ftrace_regs_get_stack_pointer'
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/ftrace.h:175:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
175 | stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
| ^
kernel/bpf/core.c: At top level:
kernel/bpf/core.c:1638:12: warning: no previous prototype for 'bpf_probe_read_kernel' [-Wmissing-prototypes]
1638 | u64 __weak bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +138 include/linux/ftrace.h
a94617495342de Masami Hiramatsu (Google 2023-08-09 132)
a94617495342de Masami Hiramatsu (Google 2023-08-09 133) #define ftrace_regs_get_instruction_pointer(fregs) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 134) instruction_pointer(ftrace_get_regs(fregs))
a94617495342de Masami Hiramatsu (Google 2023-08-09 135) #define ftrace_regs_get_argument(fregs, n) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 136) regs_get_kernel_argument(ftrace_get_regs(fregs), n)
a94617495342de Masami Hiramatsu (Google 2023-08-09 137) #define ftrace_regs_get_stack_pointer(fregs) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 @138) kernel_stack_pointer(ftrace_get_regs(fregs))
a94617495342de Masami Hiramatsu (Google 2023-08-09 139) #define ftrace_regs_return_value(fregs) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 140) regs_return_value(ftrace_get_regs(fregs))
a94617495342de Masami Hiramatsu (Google 2023-08-09 141) #define ftrace_regs_set_return_value(fregs, ret) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 142) regs_set_return_value(ftrace_get_regs(fregs), ret)
a94617495342de Masami Hiramatsu (Google 2023-08-09 143) #define ftrace_override_function_with_return(fregs) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 144) override_function_with_return(ftrace_get_regs(fregs))
a94617495342de Masami Hiramatsu (Google 2023-08-09 145) #define ftrace_regs_query_register_offset(name) \
a94617495342de Masami Hiramatsu (Google 2023-08-09 146) regs_query_register_offset(name)
a94617495342de Masami Hiramatsu (Google 2023-08-09 147)
a94617495342de Masami Hiramatsu (Google 2023-08-09 148) #endif /* !CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS || !CONFIG_FUNCTION_TRACER */
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 149)
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 150) static __always_inline struct pt_regs *ftrace_get_regs(struct ftrace_regs *fregs)
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 151) {
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 152) if (!fregs)
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 153) return NULL;
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 154)
02a474ca266a47 Steven Rostedt (VMware 2020-10-27 155) return arch_ftrace_get_regs(fregs);
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 156) }
d19ad0775dcd64 Steven Rostedt (VMware 2020-10-28 157)
94d095ffa0e16b Mark Rutland 2022-11-03 158 /*
94d095ffa0e16b Mark Rutland 2022-11-03 159 * When true, the ftrace_regs_{get,set}_*() functions may be used on fregs.
94d095ffa0e16b Mark Rutland 2022-11-03 160 * Note: this can be true even when ftrace_get_regs() cannot provide a pt_regs.
94d095ffa0e16b Mark Rutland 2022-11-03 161 */
94d095ffa0e16b Mark Rutland 2022-11-03 162 static __always_inline bool ftrace_regs_has_args(struct ftrace_regs *fregs)
94d095ffa0e16b Mark Rutland 2022-11-03 163 {
94d095ffa0e16b Mark Rutland 2022-11-03 164 if (IS_ENABLED(CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS))
94d095ffa0e16b Mark Rutland 2022-11-03 165 return true;
94d095ffa0e16b Mark Rutland 2022-11-03 166
94d095ffa0e16b Mark Rutland 2022-11-03 167 return ftrace_get_regs(fregs) != NULL;
94d095ffa0e16b Mark Rutland 2022-11-03 168 }
94d095ffa0e16b Mark Rutland 2022-11-03 169
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 170) static __always_inline unsigned long
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 171) ftrace_regs_get_kernel_stack_nth(struct ftrace_regs *fregs, unsigned int nth)
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 172) {
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 173) unsigned long *stackp;
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 174)
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 @175) stackp = (unsigned long *)ftrace_regs_get_stack_pointer(fregs);
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 176) if (((unsigned long)(stackp + nth) & ~(THREAD_SIZE - 1)) ==
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 177) ((unsigned long)stackp & ~(THREAD_SIZE - 1)))
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 178) return *(stackp + nth);
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 179)
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 180) return 0;
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 181) }
81a0320aea7fac Masami Hiramatsu (Google 2023-08-09 182)
:::::: The code at line 138 was first introduced by commit
:::::: a94617495342def61638903b49feba1627ab071e tracing: Expose ftrace_regs regardless of CONFIG_FUNCTION_TRACER
:::::: TO: Masami Hiramatsu (Google) <mhiramat@kernel.org>
:::::: CC: Masami Hiramatsu (Google) <mhiramat@kernel.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-08-11 10:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-11 10:01 [mhiramat:topic/fprobe-ftrace-regs 5/8] include/linux/ftrace.h:138:9: error: implicit declaration of function 'kernel_stack_pointer'; did you mean 'user_stack_pointer'? kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).