lkml.org 
[lkml]   [2020]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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@intel.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@redhat.com>
:::::: CC: Steven Rostedt <rostedt@goodmis.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[unhandled content-type:application/gzip]
\
 
 \ /
  Last update: 2020-04-24 07:21    [W:0.083 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site