tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 234cb065ad82915ff8d06ce01e01c3e640b674d2 commit: df3ec5da6a1e7f6e142680d7c5266d3af187170b [3313/3594] function_graph: Add pid tracing back to function graph tracer config: riscv-randconfig-001-20240605 (https://download.01.org/0day-ci/archive/20240605/202406051855.9VIYXbTB-lkp@xxxxxxxxx/config) compiler: riscv64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240605/202406051855.9VIYXbTB-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406051855.9VIYXbTB-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from include/linux/kernel.h:22, from include/linux/cpumask.h:11, from arch/riscv/include/asm/processor.h:71, from arch/riscv/include/asm/thread_info.h:36, from include/linux/thread_info.h:60, from include/asm-generic/preempt.h:5, from ./arch/riscv/include/generated/asm/preempt.h:1, from include/linux/preempt.h:79, from include/linux/spinlock.h:56, from include/linux/swap.h:5, from include/linux/suspend.h:5, from kernel/trace/fgraph.c:12: kernel/trace/fgraph.c: In function 'fgraph_update_pid_func': >> kernel/trace/fgraph.c:883:43: error: 'struct ftrace_ops' has no member named 'subop_list' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ include/linux/container_of.h:19:33: note: in definition of macro 'container_of' 19 | void *__mptr = (void *)(ptr); \ | ^~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/bits.h:22, from kernel/trace/fgraph.c:10: >> kernel/trace/fgraph.c:883:43: error: 'struct ftrace_ops' has no member named 'subop_list' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ >> include/linux/container_of.h:20:54: error: 'struct ftrace_ops' has no member named 'list' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/fgraph.c:883:43: error: 'struct ftrace_ops' has no member named 'subop_list' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:21:23: note: in expansion of macro '__same_type' 21 | __same_type(*(ptr), void), \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:428:27: error: expression in static assertion is not an integer 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ In file included from include/uapi/linux/posix_types.h:5, from include/uapi/linux/types.h:14, from include/linux/types.h:6, from include/linux/kasan-checks.h:5, from include/asm-generic/rwonce.h:26, from ./arch/riscv/include/generated/asm/rwonce.h:1, from include/linux/compiler.h:299, from include/linux/build_bug.h:5: >> include/linux/stddef.h:16:33: error: 'struct ftrace_ops' has no member named 'list' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:23:28: note: in expansion of macro 'offsetof' 23 | ((type *)(__mptr - offsetof(type, member))); }) | ^~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:612:9: note: in expansion of macro 'list_entry' 612 | list_entry((ptr)->next, type, member) | ^~~~~~~~~~ include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ In file included from include/linux/smp.h:12, from include/linux/lockdep.h:14, from include/linux/spinlock.h:63: >> include/linux/list.h:769:26: error: 'struct ftrace_ops' has no member named 'list' 769 | list_is_head(&pos->member, (head)) | ^~ include/linux/list.h:779:15: note: in expansion of macro 'list_entry_is_head' 779 | !list_entry_is_head(pos, head, member); \ | ^~~~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ >> kernel/trace/fgraph.c:883:43: error: 'struct ftrace_ops' has no member named 'subop_list' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ include/linux/list.h:769:37: note: in definition of macro 'list_entry_is_head' 769 | list_is_head(&pos->member, (head)) | ^~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ include/linux/list.h:645:25: error: 'struct ftrace_ops' has no member named 'list' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/container_of.h:19:33: note: in definition of macro 'container_of' 19 | void *__mptr = (void *)(ptr); \ | ^~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ include/linux/list.h:645:25: error: 'struct ftrace_ops' has no member named 'list' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ >> include/linux/container_of.h:20:54: error: 'struct ftrace_ops' has no member named 'list' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ include/linux/list.h:645:25: error: 'struct ftrace_ops' has no member named 'list' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:21:23: note: in expansion of macro '__same_type' 21 | __same_type(*(ptr), void), \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:428:27: error: expression in static assertion is not an integer 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~~~ include/linux/container_of.h:20:23: note: in expansion of macro '__same_type' 20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \ | ^~~~~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ >> include/linux/stddef.h:16:33: error: 'struct ftrace_ops' has no member named 'list' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:23:28: note: in expansion of macro 'offsetof' 23 | ((type *)(__mptr - offsetof(type, member))); }) | ^~~~~~~~ include/linux/list.h:601:9: note: in expansion of macro 'container_of' 601 | container_of(ptr, type, member) | ^~~~~~~~~~~~ include/linux/list.h:645:9: note: in expansion of macro 'list_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^~~~~~~~~~ include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry' 780 | pos = list_next_entry(pos, member)) | ^~~~~~~~~~~~~~~ kernel/trace/fgraph.c:883:9: note: in expansion of macro 'list_for_each_entry' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~ kernel/trace/fgraph.c: In function 'register_ftrace_graph': kernel/trace/fgraph.c:972:15: error: implicit declaration of function 'ftrace_startup_subops'; did you mean 'ftrace_startup'? [-Werror=implicit-function-declaration] 972 | ret = ftrace_startup_subops(&graph_ops, &gops->ops, command); | ^~~~~~~~~~~~~~~~~~~~~ | ftrace_startup kernel/trace/fgraph.c: In function 'unregister_ftrace_graph': kernel/trace/fgraph.c:1012:9: error: implicit declaration of function 'ftrace_shutdown_subops'; did you mean 'ftrace_shutdown'? [-Werror=implicit-function-declaration] 1012 | ftrace_shutdown_subops(&graph_ops, &gops->ops, command); | ^~~~~~~~~~~~~~~~~~~~~~ | ftrace_shutdown cc1: some warnings being treated as errors vim +883 kernel/trace/fgraph.c 874 875 void fgraph_update_pid_func(void) 876 { 877 struct fgraph_ops *gops; 878 struct ftrace_ops *op; 879 880 if (!(graph_ops.flags & FTRACE_OPS_FL_INITIALIZED)) 881 return; 882 > 883 list_for_each_entry(op, &graph_ops.subop_list, list) { 884 if (op->flags & FTRACE_OPS_FL_PID) { 885 gops = container_of(op, struct fgraph_ops, ops); 886 gops->entryfunc = ftrace_pids_enabled(op) ? 887 fgraph_pid_func : gops->saved_func; 888 } 889 } 890 } 891 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki