kernel/trace/trace_snapshot.c:51:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations

From: kernel test robot

Date: Wed Oct 14 2026 - 18:50:16 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0fcb05b72344f40806cbe810de8872f1698bf053
commit: bade44fe546212e142befb69ba22f34944030a99 tracing: Move snapshot code out of trace.c and into trace_snapshot.c
date: 7 months ago
config: hexagon-randconfig-r2110-20261014 (https://download.01.org/0day-ci/archive/20261015/202610150045.WoETcMQu-lkp@xxxxxxxxx/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project e1354f31346666c78d758cee13692ea3b1fe3ec2)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261015/202610150045.WoETcMQu-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
| Fixes: bade44fe5462 ("tracing: Move snapshot code out of trace.c and into trace_snapshot.c")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610150045.WoETcMQu-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> kernel/trace/trace_snapshot.c:51:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
51 | trace_array_puts(tr, "*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n");
| ^
kernel/trace/trace_snapshot.c:51:3: note: did you mean 'trace_array_put'?
include/linux/trace.h:84:20: note: 'trace_array_put' declared here
84 | static inline void trace_array_put(struct trace_array *tr)
| ^
kernel/trace/trace_snapshot.c:57:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
57 | trace_array_puts(tr, "*** SNAPSHOT NOT ALLOCATED ***\n");
| ^
kernel/trace/trace_snapshot.c:64:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
64 | trace_array_puts(tr, "*** BUFFER MEMORY MAPPED ***\n");
| ^
kernel/trace/trace_snapshot.c:71:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
71 | trace_array_puts(tr, "*** LATENCY TRACER ACTIVE ***\n");
| ^
>> kernel/trace/trace_snapshot.c:251:6: error: redefinition of 'tracing_snapshot_alloc'
251 | void tracing_snapshot_alloc(void)
| ^
include/linux/trace_printk.h:188:20: note: previous definition is here
188 | static inline void tracing_snapshot_alloc(void) { }
| ^
kernel/trace/trace_snapshot.c:1065:3: error: call to undeclared function 'trace_array_puts'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1065 | trace_array_puts(tr, "** Boot snapshot taken **\n");
| ^
6 errors generated.


vim +/trace_array_puts +51 kernel/trace/trace_snapshot.c

36
37
38 static int __init boot_snapshot(char *str)
39 {
40 snapshot_at_boot = true;
41 boot_alloc_snapshot(str);
42 return 1;
43 }
44 __setup("ftrace_boot_snapshot", boot_snapshot);
45 static void tracing_snapshot_instance_cond(struct trace_array *tr,
46 void *cond_data)
47 {
48 unsigned long flags;
49
50 if (in_nmi()) {
> 51 trace_array_puts(tr, "*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n");
52 trace_array_puts(tr, "*** snapshot is being ignored ***\n");
53 return;
54 }
55
56 if (!tr->allocated_snapshot) {
57 trace_array_puts(tr, "*** SNAPSHOT NOT ALLOCATED ***\n");
58 trace_array_puts(tr, "*** stopping trace here! ***\n");
59 tracer_tracing_off(tr);
60 return;
61 }
62
63 if (tr->mapped) {
64 trace_array_puts(tr, "*** BUFFER MEMORY MAPPED ***\n");
65 trace_array_puts(tr, "*** Can not use snapshot (sorry) ***\n");
66 return;
67 }
68
69 /* Note, snapshot can not be used when the tracer uses it */
70 if (tracer_uses_snapshot(tr->current_trace)) {
71 trace_array_puts(tr, "*** LATENCY TRACER ACTIVE ***\n");
72 trace_array_puts(tr, "*** Can not use snapshot (sorry) ***\n");
73 return;
74 }
75
76 local_irq_save(flags);
77 update_max_tr(tr, current, smp_processor_id(), cond_data);
78 local_irq_restore(flags);
79 }
80

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