Hi Steven, kernel test robot noticed the following build errors:
[auto build test ERROR on trace/for-next] [cannot apply to linus/master v6.18-rc4 next-20251106] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Steven-Rostedt/tracing-Remove-dummy-options-and-flags/20251106-010511 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/20251105161935.545400234%40kernel.org patch subject: [PATCH 3/5] tracing: Have tracer option be instance specific config: i386-buildonly-randconfig-003-20251106 (https://download.01.org/0day-ci/archive/20251106/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251106/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All error/warnings (new ones prefixed by >>): kernel/trace/trace.c: In function 'run_tracer_selftest': >> kernel/trace/trace.c:2174:30: error: 'type' redeclared as different kind of >> symbol 2174 | struct trace_tracer *type = tracers->trace; | ^~~~ kernel/trace/trace.c:2171:47: note: previous definition of 'type' with type 'struct tracer *' 2171 | static int run_tracer_selftest(struct tracer *type) | ~~~~~~~~~~~~~~~^~~~ >> kernel/trace/trace.c:2174:37: error: 'tracers' undeclared (first use in this >> function) 2174 | struct trace_tracer *type = tracers->trace; | ^~~~~~~ kernel/trace/trace.c:2174:37: note: each undeclared identifier is reported only once for each function it appears in >> kernel/trace/trace.c:2180:18: error: invalid use of undefined type 'struct >> trace_tracer' 2180 | if (!type->selftest || tracing_selftest_disabled) | ^~ >> kernel/trace/trace.c:2189:38: error: passing argument 1 of 'save_selftest' >> from incompatible pointer type [-Wincompatible-pointer-types] 2189 | return save_selftest(type); | ^~~~ | | | struct trace_tracer * kernel/trace/trace.c:2158:41: note: expected 'struct tracer *' but argument is of type 'struct trace_tracer *' 2158 | static int save_selftest(struct tracer *type) | ~~~~~~~~~~~~~~~^~~~ In file included from include/asm-generic/bug.h:22, from arch/x86/include/asm/bug.h:108, from include/linux/bug.h:5, from include/linux/mmdebug.h:5, from include/linux/mm.h:6, from include/linux/ring_buffer.h:5, from kernel/trace/trace.c:15: kernel/trace/trace.c:2193:29: error: invalid use of undefined type 'struct trace_tracer' 2193 | type->name); | ^~ include/linux/printk.h:484:33: note: in definition of macro 'printk_index_wrap' 484 | _p_func(_fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/linux/printk.h:565:9: note: in expansion of macro 'printk' 565 | printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) | ^~~~~~ kernel/trace/trace.c:2192:17: note: in expansion of macro 'pr_warn' 2192 | pr_warn("Selftest for tracer %s skipped due to tracing disabled\n", | ^~~~~~~ >> kernel/trace/trace.c:2206:27: error: assignment to 'struct tracer *' from >> incompatible pointer type 'struct trace_tracer *' >> [-Wincompatible-pointer-types] 2206 | tr->current_trace = type; | ^ kernel/trace/trace.c:2207:39: error: invalid use of undefined type 'struct trace_tracer' 2207 | tr->current_trace_flags = type->flags ? : type->default_flags; | ^~ kernel/trace/trace.c:2207:55: error: invalid use of undefined type 'struct trace_tracer' 2207 | tr->current_trace_flags = type->flags ? : type->default_flags; | ^~ kernel/trace/trace.c:2210:17: error: invalid use of undefined type 'struct trace_tracer' 2210 | if (type->use_max_tr) { | ^~ kernel/trace/trace.c:2220:44: error: invalid use of undefined type 'struct trace_tracer' 2220 | pr_info("Testing tracer %s: ", type->name); | ^~ include/linux/printk.h:484:33: note: in definition of macro 'printk_index_wrap' 484 | _p_func(_fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/linux/printk.h:585:9: note: in expansion of macro 'printk' 585 | printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) | ^~~~~~ kernel/trace/trace.c:2220:9: note: in expansion of macro 'pr_info' 2220 | pr_info("Testing tracer %s: ", type->name); | ^~~~~~~ kernel/trace/trace.c:2221:19: error: invalid use of undefined type 'struct trace_tracer' 2221 | ret = type->selftest(type, tr); | ^~ kernel/trace/trace.c:2235:17: error: invalid use of undefined type 'struct trace_tracer' 2235 | if (type->use_max_tr) { | ^~ >> kernel/trace/trace.c:2176:30: warning: unused variable 'flags' >> [-Wunused-variable] 2176 | struct tracer_flags *flags; | ^~~~~ kernel/trace/trace.c: In function 'tracing_trace_options_show': kernel/trace/trace.c:5172:24: warning: variable 'trace' set but not used [-Wunused-but-set-variable] 5172 | struct tracer *trace; | ^~~~~ vim +/type +2174 kernel/trace/trace.c 2170 > 2171 static int run_tracer_selftest(struct tracer *type) 2172 { 2173 struct trace_array *tr = &global_trace; > 2174 struct trace_tracer *type = tracers->trace; 2175 struct tracer_flags *saved_flags = tr->current_trace_flags; > 2176 struct tracer_flags *flags; 2177 struct tracer *saved_tracer = tr->current_trace; 2178 int ret; 2179 > 2180 if (!type->selftest || tracing_selftest_disabled) 2181 return 0; 2182 2183 /* 2184 * If a tracer registers early in boot up (before scheduling is 2185 * initialized and such), then do not run its selftests yet. 2186 * Instead, run it a little later in the boot process. 2187 */ 2188 if (!selftests_can_run) > 2189 return save_selftest(type); 2190 2191 if (!tracing_is_on()) { > 2192 pr_warn("Selftest for tracer %s skipped due to tracing > disabled\n", 2193 type->name); 2194 return 0; 2195 } 2196 2197 /* 2198 * Run a selftest on this tracer. 2199 * Here we reset the trace buffer, and set the current 2200 * tracer to be this tracer. The tracer can then run some 2201 * internal tracing to verify that everything is in order. 2202 * If we fail, we do not register this tracer. 2203 */ 2204 tracing_reset_online_cpus(&tr->array_buffer); 2205 > 2206 tr->current_trace = type; 2207 tr->current_trace_flags = type->flags ? : type->default_flags; 2208 2209 #ifdef CONFIG_TRACER_MAX_TRACE 2210 if (type->use_max_tr) { 2211 /* If we expanded the buffers, make sure the max is expanded too */ 2212 if (tr->ring_buffer_expanded) 2213 ring_buffer_resize(tr->max_buffer.buffer, trace_buf_size, 2214 RING_BUFFER_ALL_CPUS); 2215 tr->allocated_snapshot = true; 2216 } 2217 #endif 2218 2219 /* the test is responsible for initializing and enabling */ > 2220 pr_info("Testing tracer %s: ", type->name); 2221 ret = type->selftest(type, tr); 2222 /* the test is responsible for resetting too */ 2223 tr->current_trace = saved_tracer; 2224 tr->current_trace_flags = saved_flags; 2225 if (ret) { 2226 printk(KERN_CONT "FAILED!\n"); 2227 /* Add the warning after printing 'FAILED' */ 2228 WARN_ON(1); 2229 return -1; 2230 } 2231 /* Only reset on passing, to avoid touching corrupted buffers */ 2232 tracing_reset_online_cpus(&tr->array_buffer); 2233 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
