Re: [saeed:net-next 154/185] net/smc/smc_sysctl.h:23:16: warning: no previous prototype for 'smc_sysctl_net_init'

From: dust.li
Date: Tue Mar 08 2022 - 00:17:06 EST


On Tue, Mar 08, 2022 at 10:43:56AM +0800, kernel test robot wrote:
>tree: https://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git net-next
>head: 03200f4a126b1a08c0f16dea7f67e6bff9c83c90
>commit: 7de8eb0d9039f16e1122d7aa524a1502a160c4ff [154/185] net/smc: fix compile warning for smc_sysctl
>config: arc-randconfig-r016-20220308 (https://download.01.org/0day-ci/archive/20220308/202203081012.KgONXWsS-lkp@xxxxxxxxx/config)
>compiler: arceb-elf-gcc (GCC) 11.2.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/saeed/linux.git/commit/?id=7de8eb0d9039f16e1122d7aa524a1502a160c4ff
> git remote add saeed https://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git
> git fetch --no-tags saeed net-next
> git checkout 7de8eb0d9039f16e1122d7aa524a1502a160c4ff
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash net/
>
>If you fix the issue, kindly add following tag as appropriate
>Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
>All warnings (new ones prefixed by >>):
>
> In file included from net/smc/af_smc.c:54:
>>> net/smc/smc_sysctl.h:23:16: warning: no previous prototype for 'smc_sysctl_net_init' [-Wmissing-prototypes]
> 23 | int __net_init smc_sysctl_net_init(struct net *net)
> | ^~~~~~~~~~~~~~~~~~~
>>> net/smc/smc_sysctl.h:29:17: warning: no previous prototype for 'smc_sysctl_net_exit' [-Wmissing-prototypes]
> 29 | void __net_exit smc_sysctl_net_exit(struct net *net) { }
> | ^~~~~~~~~~~~~~~~~~~

I found this -Wmissing-prototypes is added to the compiler if W=1 is set.
I didn't check W=1 before because I found there are lots of warnings with
the current code.

I will add this W=1 to my checking script and make sure no warnings introduced
by my patch next time.

>
>
>vim +/smc_sysctl_net_init +23 net/smc/smc_sysctl.h
>
> 22
> > 23 int __net_init smc_sysctl_net_init(struct net *net)
> 24 {
> 25 net->smc.sysctl_autocorking_size = SMC_AUTOCORKING_DEFAULT_SIZE;
> 26 return 0;
> 27 }
> 28
> > 29 void __net_exit smc_sysctl_net_exit(struct net *net) { }
> 30

Hi Jakub:

Sorry to bother again on this !
Looks like we still need to add 'static inline' or add an extra
declaration for these 2 functions if we want to get rid of these warnings.
What do you think ?

Thanks

>
>---
>0-DAY CI Kernel Test Service, Intel Corporation
>https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx