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  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 24 Apr 2020 13:18:55 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Mao Wenan <maowenan@...wei.com>, ast@...nel.org,
        daniel@...earbox.net, kafai@...com, songliubraving@...com,
        yhs@...com, andriin@...com, john.fastabend@...il.com,
        kpsingh@...omium.org
Cc:     kbuild-all@...ts.01.org, netdev@...r.kernel.org,
        bpf@...r.kernel.org, linux-kernel@...r.kernel.org,
        kernel-janitors@...r.kernel.org
Subject: Re: [PATCH bpf-next 1/2] bpf: Change error code when ops is NULL

Hi Mao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on bpf-next/master]
[also build test ERROR on bpf/master net/master net-next/master v5.7-rc2 next-20200423]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Mao-Wenan/Change-return-code-if-failed-to-load-object/20200424-025339
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@...el.com>

All error/warnings (new ones prefixed by >>):

    2452 | static const struct bpf_link_ops bpf_raw_tp_lops = {
         |                                  ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2256:34: note: previous declaration of 'bpf_raw_tp_lops' was here
    2256 | static const struct bpf_link_ops bpf_raw_tp_lops;
         |                                  ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2453:13: error: initializer element is not constant
    2453 |  .release = bpf_raw_tp_link_release,
         |             ^~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2453:13: note: (near initialization for 'bpf_raw_tp_lops.release')
   kernel/bpf/syscall.c:2454:13: error: initializer element is not constant
    2454 |  .dealloc = bpf_raw_tp_link_dealloc,
         |             ^~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2454:13: note: (near initialization for 'bpf_raw_tp_lops.dealloc')
   kernel/bpf/syscall.c:2459:12: error: invalid storage class for function 'bpf_raw_tracepoint_open'
    2459 | static int bpf_raw_tracepoint_open(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2546:12: error: invalid storage class for function 'bpf_prog_attach_check_attach_type'
    2546 | static int bpf_prog_attach_check_attach_type(const struct bpf_prog *prog,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2564:1: error: invalid storage class for function 'attach_type_to_prog_type'
    2564 | attach_type_to_prog_type(enum bpf_attach_type attach_type)
         | ^~~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2612:12: error: invalid storage class for function 'bpf_prog_attach'
    2612 | static int bpf_prog_attach(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2671:12: error: invalid storage class for function 'bpf_prog_detach'
    2671 | static int bpf_prog_detach(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2706:12: error: invalid storage class for function 'bpf_prog_query'
    2706 | static int bpf_prog_query(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2747:12: error: invalid storage class for function 'bpf_prog_test_run'
    2747 | static int bpf_prog_test_run(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2779:12: error: invalid storage class for function 'bpf_obj_get_next_id'
    2779 | static int bpf_obj_get_next_id(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2824:12: error: invalid storage class for function 'bpf_prog_get_fd_by_id'
    2824 | static int bpf_prog_get_fd_by_id(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2849:12: error: invalid storage class for function 'bpf_map_get_fd_by_id'
    2849 | static int bpf_map_get_fd_by_id(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c: In function 'bpf_map_get_fd_by_id':
   kernel/bpf/syscall.c:2870:9: error: implicit declaration of function '__bpf_map_inc_not_zero'; did you mean 'bpf_map_inc_not_zero'? [-Werror=implicit-function-declaration]
    2870 |   map = __bpf_map_inc_not_zero(map, true);
         |         ^~~~~~~~~~~~~~~~~~~~~~
         |         bpf_map_inc_not_zero
   kernel/bpf/syscall.c:2870:7: warning: assignment to 'struct bpf_map *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    2870 |   map = __bpf_map_inc_not_zero(map, true);
         |       ^
   kernel/bpf/syscall.c: In function 'find_and_alloc_map':
   kernel/bpf/syscall.c:2885:30: error: invalid storage class for function 'bpf_map_from_imm'
    2885 | static const struct bpf_map *bpf_map_from_imm(const struct bpf_prog *prog,
         |                              ^~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2909:25: error: invalid storage class for function 'bpf_insn_prepare_dump'
    2909 | static struct bpf_insn *bpf_insn_prepare_dump(const struct bpf_prog *prog)
         |                         ^~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2953:12: error: invalid storage class for function 'set_info_rec_size'
    2953 | static int set_info_rec_size(struct bpf_prog_info *info)
         |            ^~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:2984:12: error: invalid storage class for function 'bpf_prog_get_info_by_fd'
    2984 | static int bpf_prog_get_info_by_fd(struct bpf_prog *prog,
         |            ^~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3260:12: error: invalid storage class for function 'bpf_map_get_info_by_fd'
    3260 | static int bpf_map_get_info_by_fd(struct bpf_map *map,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3303:12: error: invalid storage class for function 'bpf_btf_get_info_by_fd'
    3303 | static int bpf_btf_get_info_by_fd(struct btf *btf,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3320:12: error: invalid storage class for function 'bpf_obj_get_info_by_fd'
    3320 | static int bpf_obj_get_info_by_fd(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3351:12: error: invalid storage class for function 'bpf_btf_load'
    3351 | static int bpf_btf_load(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~
   kernel/bpf/syscall.c:3364:12: error: invalid storage class for function 'bpf_btf_get_fd_by_id'
    3364 | static int bpf_btf_get_fd_by_id(const union bpf_attr *attr)
         |            ^~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3375:12: error: invalid storage class for function 'bpf_task_fd_query_copy'
    3375 | static int bpf_task_fd_query_copy(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3424:12: error: invalid storage class for function 'bpf_task_fd_query'
    3424 | static int bpf_task_fd_query(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3519:12: error: invalid storage class for function 'bpf_map_do_batch'
    3519 | static int bpf_map_do_batch(const union bpf_attr *attr,
         |            ^~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c: In function 'bpf_map_do_batch':
   kernel/bpf/syscall.c:3538:8: error: implicit declaration of function 'map_get_sys_perms' [-Werror=implicit-function-declaration]
    3538 |      !(map_get_sys_perms(map, f) & FMODE_CAN_READ)) {
         |        ^~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c: In function 'find_and_alloc_map':
   kernel/bpf/syscall.c:3564:12: error: invalid storage class for function 'link_create'
    3564 | static int link_create(union bpf_attr *attr)
         |            ^~~~~~~~~~~
   kernel/bpf/syscall.c:3611:12: error: invalid storage class for function 'link_update'
    3611 | static int link_update(union bpf_attr *attr)
         |            ^~~~~~~~~~~
   In file included from kernel/bpf/syscall.c:8:
>> include/linux/syscalls.h:152:33: error: redeclaration of '__syscall_meta__bpf' with no linkage
     152 |  static struct syscall_metadata __syscall_meta_##sname;  \
         |                                 ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:175:2: note: in expansion of macro 'SYSCALL_TRACE_EXIT_EVENT'
     175 |  SYSCALL_TRACE_EXIT_EVENT(sname);   \
         |  ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:136:33: note: previous declaration of '__syscall_meta__bpf' was here
     136 |  static struct syscall_metadata __syscall_meta_##sname;  \
         |                                 ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:174:2: note: in expansion of macro 'SYSCALL_TRACE_ENTER_EVENT'
     174 |  SYSCALL_TRACE_ENTER_EVENT(sname);   \
         |  ^~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:152:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     152 |  static struct syscall_metadata __syscall_meta_##sname;  \
         |  ^~~~~~
>> include/linux/syscalls.h:175:2: note: in expansion of macro 'SYSCALL_TRACE_EXIT_EVENT'
     175 |  SYSCALL_TRACE_EXIT_EVENT(sname);   \
         |  ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:177:4: error: redeclaration of '__syscall_meta__bpf' with no linkage
     177 |    __syscall_meta_##sname = {    \
         |    ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:152:33: note: previous declaration of '__syscall_meta__bpf' was here
     152 |  static struct syscall_metadata __syscall_meta_##sname;  \
         |                                 ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:175:2: note: in expansion of macro 'SYSCALL_TRACE_EXIT_EVENT'
     175 |  SYSCALL_TRACE_EXIT_EVENT(sname);   \
         |  ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:176:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     176 |  static struct syscall_metadata __used   \
         |  ^~~~~~
>> include/linux/syscalls.h:224:2: note: in expansion of macro 'SYSCALL_METADATA'
     224 |  SYSCALL_METADATA(sname, x, __VA_ARGS__)   \
         |  ^~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:38: warning: 'alias' attribute ignored [-Wattributes]
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         |                                      ^~~~~~~~
   include/linux/syscalls.h:116:25: note: in definition of macro '__SC_DECL'
     116 | #define __SC_DECL(t, a) t a
         |                         ^
   include/linux/syscalls.h:110:35: note: in expansion of macro '__MAP2'
     110 | #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__)
         |                                   ^~~~~~
   include/linux/syscalls.h:114:22: note: in expansion of macro '__MAP3'
     114 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
         |                      ^~~~~
   include/linux/syscalls.h:239:28: note: in expansion of macro '__MAP'
     239 |  asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
         |                            ^~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:239:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     239 |  asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
         |             ^~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:242:21: error: invalid storage class for function '__do_sys_bpf'
     242 |  static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
         |                     ^~~~~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:242:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     242 |  static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
         |  ^~~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:244:18: error: static declaration of '__se_sys_bpf' follows non-static declaration
     244 |  asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
         |                  ^~~~~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   include/linux/syscalls.h:243:18: note: previous declaration of '__se_sys_bpf' was here
     243 |  asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
         |                  ^~~~~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
     216 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
         |                                    ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3661:1: note: in expansion of macro 'SYSCALL_DEFINE3'
    3661 | SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
         | ^~~~~~~~~~~~~~~
   kernel/bpf/syscall.c: In function '__se_sys_bpf':
   include/linux/syscalls.h:246:14: error: implicit declaration of function '__do_sys_bpf'; did you mean '__se_sys_bpf'? [-Werror=implicit-function-declaration]
     246 |   long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
         |              ^~~~~~~~
   include/linux/syscalls.h:225:2: note: in expansion of macro '__SYSCALL_DEFINEx'
     225 |  __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'

vim +/__syscall_meta__bpf +152 include/linux/syscalls.h

8f0820183056ad2 Steven Rostedt           2010-04-20  134  
fb34a08c3469b2b Jason Baron              2009-08-10  135  #define SYSCALL_TRACE_ENTER_EVENT(sname)				\
3d56e331b653767 Steven Rostedt           2011-02-02  136  	static struct syscall_metadata __syscall_meta_##sname;		\
2425bcb9240f8c9 Steven Rostedt (Red Hat  2015-05-05  137) 	static struct trace_event_call __used				\
fb34a08c3469b2b Jason Baron              2009-08-10  138  	  event_enter_##sname = {					\
2239291aeb0379f Steven Rostedt           2010-04-21  139  		.class			= &event_class_syscall_enter,	\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  140  		{							\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  141  			.name                   = "sys_enter"#sname,	\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  142  		},							\
80decc70afc57c8 Steven Rostedt           2010-04-23  143  		.event.funcs            = &enter_syscall_print_funcs,	\
31c16b13349970b Lai Jiangshan            2009-12-01  144  		.data			= (void *)&__syscall_meta_##sname,\
f4d5c029bd6731b Lai Jiangshan            2011-01-26  145  		.flags                  = TRACE_EVENT_FL_CAP_ANY,	\
53cf810b1934f08 Frederic Weisbecker      2010-11-18  146  	};								\
2425bcb9240f8c9 Steven Rostedt (Red Hat  2015-05-05  147) 	static struct trace_event_call __used				\
e4a9ea5ee7c8812 Steven Rostedt           2011-01-27  148  	  __attribute__((section("_ftrace_events")))			\
f4d5c029bd6731b Lai Jiangshan            2011-01-26  149  	 *__event_enter_##sname = &event_enter_##sname;
fb34a08c3469b2b Jason Baron              2009-08-10  150  
fb34a08c3469b2b Jason Baron              2009-08-10  151  #define SYSCALL_TRACE_EXIT_EVENT(sname)					\
3d56e331b653767 Steven Rostedt           2011-02-02 @152  	static struct syscall_metadata __syscall_meta_##sname;		\
2425bcb9240f8c9 Steven Rostedt (Red Hat  2015-05-05  153) 	static struct trace_event_call __used				\
fb34a08c3469b2b Jason Baron              2009-08-10  154  	  event_exit_##sname = {					\
2239291aeb0379f Steven Rostedt           2010-04-21  155  		.class			= &event_class_syscall_exit,	\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  156  		{							\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  157  			.name                   = "sys_exit"#sname,	\
abb43f6998eb646 Mathieu Desnoyers        2014-04-09  158  		},							\
80decc70afc57c8 Steven Rostedt           2010-04-23  159  		.event.funcs		= &exit_syscall_print_funcs,	\
31c16b13349970b Lai Jiangshan            2009-12-01  160  		.data			= (void *)&__syscall_meta_##sname,\
f4d5c029bd6731b Lai Jiangshan            2011-01-26  161  		.flags                  = TRACE_EVENT_FL_CAP_ANY,	\
53cf810b1934f08 Frederic Weisbecker      2010-11-18  162  	};								\
2425bcb9240f8c9 Steven Rostedt (Red Hat  2015-05-05  163) 	static struct trace_event_call __used				\
e4a9ea5ee7c8812 Steven Rostedt           2011-01-27  164  	  __attribute__((section("_ftrace_events")))			\
f4d5c029bd6731b Lai Jiangshan            2011-01-26  165  	*__event_exit_##sname = &event_exit_##sname;
fb34a08c3469b2b Jason Baron              2009-08-10  166  
99e621f796d7f03 Al Viro                  2013-03-05  167  #define SYSCALL_METADATA(sname, nb, ...)			\
99e621f796d7f03 Al Viro                  2013-03-05  168  	static const char *types_##sname[] = {			\
99e621f796d7f03 Al Viro                  2013-03-05  169  		__MAP(nb,__SC_STR_TDECL,__VA_ARGS__)		\
99e621f796d7f03 Al Viro                  2013-03-05  170  	};							\
99e621f796d7f03 Al Viro                  2013-03-05  171  	static const char *args_##sname[] = {			\
99e621f796d7f03 Al Viro                  2013-03-05  172  		__MAP(nb,__SC_STR_ADECL,__VA_ARGS__)		\
99e621f796d7f03 Al Viro                  2013-03-05  173  	};							\
540b7b8d65575c8 Li Zefan                 2009-08-19 @174  	SYSCALL_TRACE_ENTER_EVENT(sname);			\
540b7b8d65575c8 Li Zefan                 2009-08-19 @175  	SYSCALL_TRACE_EXIT_EVENT(sname);			\
2e33af029556cb8 Steven Rostedt           2010-04-22  176  	static struct syscall_metadata __used			\
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  177  	  __syscall_meta_##sname = {				\
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  178  		.name 		= "sys"#sname,			\
ba976970c79fd2f Ian Munsie               2011-02-03  179  		.syscall_nr	= -1,	/* Filled in at boot */	\
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  180  		.nb_args 	= nb,				\
99e621f796d7f03 Al Viro                  2013-03-05  181  		.types		= nb ? types_##sname : NULL,	\
99e621f796d7f03 Al Viro                  2013-03-05  182  		.args		= nb ? args_##sname : NULL,	\
540b7b8d65575c8 Li Zefan                 2009-08-19  183  		.enter_event	= &event_enter_##sname,		\
540b7b8d65575c8 Li Zefan                 2009-08-19  184  		.exit_event	= &event_exit_##sname,		\
2e33af029556cb8 Steven Rostedt           2010-04-22  185  		.enter_fields	= LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \
3d56e331b653767 Steven Rostedt           2011-02-02  186  	};							\
3d56e331b653767 Steven Rostedt           2011-02-02  187  	static struct syscall_metadata __used			\
3d56e331b653767 Steven Rostedt           2011-02-02  188  	  __attribute__((section("__syscalls_metadata")))	\
3d56e331b653767 Steven Rostedt           2011-02-02  189  	 *__p_syscall_meta_##sname = &__syscall_meta_##sname;
cf5f5cea270655d Yonghong Song            2017-08-04  190  
cf5f5cea270655d Yonghong Song            2017-08-04  191  static inline int is_syscall_trace_event(struct trace_event_call *tp_event)
cf5f5cea270655d Yonghong Song            2017-08-04  192  {
cf5f5cea270655d Yonghong Song            2017-08-04  193  	return tp_event->class == &event_class_syscall_enter ||
cf5f5cea270655d Yonghong Song            2017-08-04  194  	       tp_event->class == &event_class_syscall_exit;
cf5f5cea270655d Yonghong Song            2017-08-04  195  }
cf5f5cea270655d Yonghong Song            2017-08-04  196  
99e621f796d7f03 Al Viro                  2013-03-05  197  #else
99e621f796d7f03 Al Viro                  2013-03-05  198  #define SYSCALL_METADATA(sname, nb, ...)
cf5f5cea270655d Yonghong Song            2017-08-04  199  
cf5f5cea270655d Yonghong Song            2017-08-04  200  static inline int is_syscall_trace_event(struct trace_event_call *tp_event)
cf5f5cea270655d Yonghong Song            2017-08-04  201  {
cf5f5cea270655d Yonghong Song            2017-08-04  202  	return 0;
cf5f5cea270655d Yonghong Song            2017-08-04  203  }
99e621f796d7f03 Al Viro                  2013-03-05  204  #endif
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  205  
1bd21c6c21e8489 Dominik Brodowski        2018-04-05  206  #ifndef SYSCALL_DEFINE0
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  207  #define SYSCALL_DEFINE0(sname)					\
99e621f796d7f03 Al Viro                  2013-03-05  208  	SYSCALL_METADATA(_##sname, 0);				\
c9a211951c7c79c Howard McLauchlan        2018-03-21  209  	asmlinkage long sys_##sname(void);			\
c9a211951c7c79c Howard McLauchlan        2018-03-21  210  	ALLOW_ERROR_INJECTION(sys_##sname, ERRNO);		\
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  211  	asmlinkage long sys_##sname(void)
1bd21c6c21e8489 Dominik Brodowski        2018-04-05  212  #endif /* SYSCALL_DEFINE0 */
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  213  
6c5979631b4b03c Heiko Carstens           2009-02-11  214  #define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
6c5979631b4b03c Heiko Carstens           2009-02-11  215  #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
6c5979631b4b03c Heiko Carstens           2009-02-11  216  #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
6c5979631b4b03c Heiko Carstens           2009-02-11  217  #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
6c5979631b4b03c Heiko Carstens           2009-02-11  218  #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
6c5979631b4b03c Heiko Carstens           2009-02-11  219  #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
1a94bc34768e463 Heiko Carstens           2009-01-14  220  
609320c8a22715b Yonghong Song            2017-09-07  221  #define SYSCALL_DEFINE_MAXARGS	6
609320c8a22715b Yonghong Song            2017-09-07  222  
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  223  #define SYSCALL_DEFINEx(x, sname, ...)				\
99e621f796d7f03 Al Viro                  2013-03-05 @224  	SYSCALL_METADATA(sname, x, __VA_ARGS__)			\
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  225  	__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
bed1ffca022cc87 Frederic Weisbecker      2009-03-13  226  

:::::: The code at line 152 was first introduced by commit
:::::: 3d56e331b6537671c66f1b510bed0f1e0331dfc8 tracing: Replace syscall_meta_data struct array with pointer array

:::::: TO: Steven Rostedt <srostedt@...hat.com>
:::::: CC: Steven Rostedt <rostedt@...dmis.org>

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

Download attachment ".config.gz" of type "application/gzip" (54689 bytes)

Powered by blists - more mailing lists