Re: tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:131:14: warning: no previous prototype for 'bpf_testmod_fentry_test1'

From: Jiri Olsa
Date: Thu Apr 06 2023 - 06:42:14 EST


On Thu, Apr 06, 2023 at 07:03:39AM +0800, kernel test robot wrote:
> Hi Jiri,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 99ddf2254febae9eab7fb0bcc02c5322243f5c49
> commit: fee356ede980b6c2c8db612e18b25738356d6744 selftests/bpf: Add bpf_testmod_fentry_* functions
> date: 5 months ago
> compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
> reproduce:
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fee356ede980b6c2c8db612e18b25738356d6744
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout fee356ede980b6c2c8db612e18b25738356d6744
> make O=/tmp/kselftest headers
> make O=/tmp/kselftest -C tools/testing/selftests
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Link: https://lore.kernel.org/oe-kbuild-all/202304060622.P2hBPE4g-lkp@xxxxxxxxx/
>
> All warnings (new ones prefixed by >>):

sry I can't reproduce

it looks like bpf_testmod is not compiled by default with -Wmissing-prototypes,
when I add it I can see those warnings, but it does not seem to be enabled by
default

jirka


>
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:32:1: warning: no previous prototype for 'bpf_testmod_test_struct_arg_1' [-Wmissing-prototypes]
> 32 | bpf_testmod_test_struct_arg_1(struct bpf_testmod_struct_arg_2 a, int b, int c) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:38:1: warning: no previous prototype for 'bpf_testmod_test_struct_arg_2' [-Wmissing-prototypes]
> 38 | bpf_testmod_test_struct_arg_2(int a, struct bpf_testmod_struct_arg_2 b, int c) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:44:1: warning: no previous prototype for 'bpf_testmod_test_struct_arg_3' [-Wmissing-prototypes]
> 44 | bpf_testmod_test_struct_arg_3(int a, int b, struct bpf_testmod_struct_arg_2 c) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:50:1: warning: no previous prototype for 'bpf_testmod_test_struct_arg_4' [-Wmissing-prototypes]
> 50 | bpf_testmod_test_struct_arg_4(struct bpf_testmod_struct_arg_1 a, int b,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:57:1: warning: no previous prototype for 'bpf_testmod_test_struct_arg_5' [-Wmissing-prototypes]
> 57 | bpf_testmod_test_struct_arg_5(void) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:63:1: warning: no previous prototype for 'bpf_testmod_test_mod_kfunc' [-Wmissing-prototypes]
> 63 | bpf_testmod_test_mod_kfunc(int i)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:81:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_user_1' [-Wmissing-prototypes]
> 81 | bpf_testmod_test_btf_type_tag_user_1(struct bpf_testmod_btf_type_tag_1 __user *arg) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:89:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_user_2' [-Wmissing-prototypes]
> 89 | bpf_testmod_test_btf_type_tag_user_2(struct bpf_testmod_btf_type_tag_2 *arg) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:94:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_percpu_1' [-Wmissing-prototypes]
> 94 | bpf_testmod_test_btf_type_tag_percpu_1(struct bpf_testmod_btf_type_tag_1 __percpu *arg) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:99:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_percpu_2' [-Wmissing-prototypes]
> 99 | bpf_testmod_test_btf_type_tag_percpu_2(struct bpf_testmod_btf_type_tag_3 *arg) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:103:14: warning: no previous prototype for 'bpf_testmod_loop_test' [-Wmissing-prototypes]
> 103 | noinline int bpf_testmod_loop_test(int n)
> | ^~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:115:30: warning: no previous prototype for 'bpf_testmod_return_ptr' [-Wmissing-prototypes]
> 115 | __weak noinline struct file *bpf_testmod_return_ptr(int arg)
> | ^~~~~~~~~~~~~~~~~~~~~~
> >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:131:14: warning: no previous prototype for 'bpf_testmod_fentry_test1' [-Wmissing-prototypes]
> 131 | noinline int bpf_testmod_fentry_test1(int a)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:136:14: warning: no previous prototype for 'bpf_testmod_fentry_test2' [-Wmissing-prototypes]
> 136 | noinline int bpf_testmod_fentry_test2(int a, u64 b)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> >> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:141:14: warning: no previous prototype for 'bpf_testmod_fentry_test3' [-Wmissing-prototypes]
> 141 | noinline int bpf_testmod_fentry_test3(char a, int b, u64 c)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:149:1: warning: no previous prototype for 'bpf_testmod_test_read' [-Wmissing-prototypes]
> 149 | bpf_testmod_test_read(struct file *file, struct kobject *kobj,
> | ^~~~~~~~~~~~~~~~~~~~~
> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:200:1: warning: no previous prototype for 'bpf_testmod_test_write' [-Wmissing-prototypes]
> 200 | bpf_testmod_test_write(struct file *file, struct kobject *kobj,
> | ^~~~~~~~~~~~~~~~~~~~~~
>
>
> vim +/bpf_testmod_fentry_test1 +131 tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c
>
> 130
> > 131 noinline int bpf_testmod_fentry_test1(int a)
> 132 {
> 133 return a + 1;
> 134 }
> 135
> > 136 noinline int bpf_testmod_fentry_test2(int a, u64 b)
> 137 {
> 138 return a + b;
> 139 }
> 140
> > 141 noinline int bpf_testmod_fentry_test3(char a, int b, u64 c)
> 142 {
> 143 return a + b + c;
> 144 }
> 145
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests