lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6a86e452-d24d-b371-f343-7e77faeed7ca@bytedance.com>
Date:   Sat, 30 Apr 2022 14:12:23 +0800
From:   Chengming Zhou <zhouchengming@...edance.com>
To:     kernel test robot <lkp@...el.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Mark Rutland <mark.rutland@....com>
Subject: Re: [External] [mark:arm64/ftrace/per-callsite-ops 1/6]
 kernel/trace/fgraph.c:37:12: warning: no previous prototype for
 'ftrace_enable_ftrace_graph_caller'

On 2022/4/30 07:56, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/ftrace/per-callsite-ops
> head:   2aaba224d039a36f7eca5ad68c77686d3546e4fa
> commit: 718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c [1/6] ftrace: cleanup ftrace_graph_caller enable and disable
> config: sh-buildonly-randconfig-r002-20220428 (https://download.01.org/0day-ci/archive/20220430/202204300758.ces9aD6G-lkp@intel.com/config)
> compiler: sh4-linux-gcc (GCC) 11.3.0
> reproduce (this is a W=1 build):
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?id=718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c
>         git remote add mark https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
>         git fetch --no-tags mark arm64/ftrace/per-callsite-ops
>         git checkout 718b0fd1ccf6f04340cb3ad48b667ca05bb7a31c
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash kernel/trace/
> 

Thanks for the report.

BTW, there are so many "-Wmissing-prototypes" warnings if build kernel with "W=1"...

I can't reproduce this warning on x86_64 because the declarations in <linux/ftrace.h>

#ifdef CONFIG_DYNAMIC_FTRACE
...
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
extern void ftrace_graph_caller(void);
extern int ftrace_enable_ftrace_graph_caller(void);
extern int ftrace_disable_ftrace_graph_caller(void);
#else
static inline int ftrace_enable_ftrace_graph_caller(void) { return 0; }
static inline int ftrace_disable_ftrace_graph_caller(void) { return 0; }
#endif
...
#endif

Since x86_64 select HAVE_FUNCTION_GRAPH_TRACER only when DYNAMIC_FTRACE,
so these declarations can be seen by fgraph.c

But on ARCH=sh, HAVE_FUNCTION_GRAPH_TRACER can be selected when !DYNAMIC_FTRACE,
so these declarations can't be seen by fgraph.c. But in this case, these
functions are not used anywhere. So there are no real problems exist.

Maybe it's better to put ftrace_[enable,disable]_ftrace_graph_caller definitions
in "#ifdef CONFIG_DYNAMIC_FTRACE" in fgraph.c, to suppress this warning.

Thanks.

> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
> 
> All warnings (new ones prefixed by >>):
> 
>>> kernel/trace/fgraph.c:37:12: warning: no previous prototype for 'ftrace_enable_ftrace_graph_caller' [-Wmissing-prototypes]
>       37 | int __weak ftrace_enable_ftrace_graph_caller(void)
>          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> kernel/trace/fgraph.c:46:12: warning: no previous prototype for 'ftrace_disable_ftrace_graph_caller' [-Wmissing-prototypes]
>       46 | int __weak ftrace_disable_ftrace_graph_caller(void)
>          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/fgraph.c:241:15: warning: no previous prototype for 'ftrace_return_to_handler' [-Wmissing-prototypes]
>      241 | unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
>          |               ^~~~~~~~~~~~~~~~~~~~~~~~
>    kernel/trace/fgraph.c:356:6: warning: no previous prototype for 'ftrace_graph_sleep_time_control' [-Wmissing-prototypes]
>      356 | void ftrace_graph_sleep_time_control(bool enable)
>          |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> vim +/ftrace_enable_ftrace_graph_caller +37 kernel/trace/fgraph.c
> 
>     32	
>     33	/*
>     34	 * archs can override this function if they must do something
>     35	 * to enable hook for graph tracer.
>     36	 */
>   > 37	int __weak ftrace_enable_ftrace_graph_caller(void)
>     38	{
>     39		return 0;
>     40	}
>     41	
>     42	/*
>     43	 * archs can override this function if they must do something
>     44	 * to disable hook for graph tracer.
>     45	 */
>   > 46	int __weak ftrace_disable_ftrace_graph_caller(void)
>     47	{
>     48		return 0;
>     49	}
>     50	
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ