tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:33:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_user_1'

From: kernel test robot
Date: Mon Apr 03 2023 - 19:57:02 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 148341f0a2f53b5e8808d093333d85170586a15d
commit: 696c39011538fe0124fcc0e81ebc44ff7f8623b4 selftests/bpf: add a selftest with __user tag
date: 1 year, 2 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=696c39011538fe0124fcc0e81ebc44ff7f8623b4
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 696c39011538fe0124fcc0e81ebc44ff7f8623b4
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/202304040710.NAEyrWKF-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:19:1: warning: no previous prototype for 'bpf_testmod_test_mod_kfunc' [-Wmissing-prototypes]
19 | bpf_testmod_test_mod_kfunc(int i)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:33:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_user_1' [-Wmissing-prototypes]
33 | 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:38:1: warning: no previous prototype for 'bpf_testmod_test_btf_type_tag_user_2' [-Wmissing-prototypes]
38 | 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:42:14: warning: no previous prototype for 'bpf_testmod_loop_test' [-Wmissing-prototypes]
42 | noinline int bpf_testmod_loop_test(int n)
| ^~~~~~~~~~~~~~~~~~~~~
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:54:30: warning: no previous prototype for 'bpf_testmod_return_ptr' [-Wmissing-prototypes]
54 | __weak noinline struct file *bpf_testmod_return_ptr(int arg)
| ^~~~~~~~~~~~~~~~~~~~~~
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:71:1: warning: no previous prototype for 'bpf_testmod_test_read' [-Wmissing-prototypes]
71 | bpf_testmod_test_read(struct file *file, struct kobject *kobj,
| ^~~~~~~~~~~~~~~~~~~~~
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c:107:1: warning: no previous prototype for 'bpf_testmod_test_write' [-Wmissing-prototypes]
107 | bpf_testmod_test_write(struct file *file, struct kobject *kobj,
| ^~~~~~~~~~~~~~~~~~~~~~
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.o: warning: objtool: bpf_testmod_return_ptr()+0x15: unreachable instruction


vim +/bpf_testmod_test_btf_type_tag_user_1 +33 tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c

17
18 noinline void
> 19 bpf_testmod_test_mod_kfunc(int i)
20 {
21 *(int *)this_cpu_ptr(&bpf_testmod_ksym_percpu) = i;
22 }
23
24 struct bpf_testmod_btf_type_tag_1 {
25 int a;
26 };
27
28 struct bpf_testmod_btf_type_tag_2 {
29 struct bpf_testmod_btf_type_tag_1 __user *p;
30 };
31
32 noinline int
> 33 bpf_testmod_test_btf_type_tag_user_1(struct bpf_testmod_btf_type_tag_1 __user *arg) {
34 return arg->a;
35 }
36
37 noinline int
> 38 bpf_testmod_test_btf_type_tag_user_2(struct bpf_testmod_btf_type_tag_2 *arg) {
39 return arg->p->a;
40 }
41

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests