kernel/bpf/diagnostics.c:328:77: warning: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'diag_insn_print'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://github.com/intel-lab-lkp/linux/commits/Kumar-Kartikeya-Dwivedi/bpf-Add-verifier-diagnostics-report-helpers/20260713-235352
head:   481b092f62f3f331a53a188543b27495e7a1763c
commit: 680f28821329be1a104e6110eadde4658c51eab7 bpf: Add source and instruction diagnostic context
date:   13 hours ago
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260714/[email protected]/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260714/[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 warnings (new ones prefixed by >>):

   kernel/bpf/diagnostics.c:166:40: warning: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'diag_log' [-Wmissing-format-attribute]
     158 | static void diag_log(struct bpf_verifier_env *env, const char *fmt, ...)
         | __attribute__((format(printf, 2, 3))) 
     159 | {
     160 |         va_list args;
     161 | 
     162 |         if (!bpf_diag_enabled(env))
     163 |                 return;
     164 | 
     165 |         va_start(args, fmt);
     166 |         bpf_verifier_vlog(&env->log, fmt, args);
         |                                               ^
   kernel/bpf/diagnostics.c:158:13: note: 'diag_log' declared here
     158 | static void diag_log(struct bpf_verifier_env *env, const char *fmt, ...)
         |             ^
   kernel/bpf/diagnostics.c:217:48: warning: diagnostic behavior may be improved by adding the 'format(printf, 2, 0)' attribute to the declaration of 'diag_vprint_indented' [-Wmissing-format-attribute]
     210 | static void diag_vprint_indented(struct bpf_verifier_env *env, const char *fmt, va_list args)
         | __attribute__((format(printf, 2, 0))) 
     211 | {
     212 |         char *buf;
     213 | 
     214 |         if (!bpf_diag_enabled(env))
     215 |                 return;
     216 | 
     217 |         buf = kvasprintf(GFP_KERNEL_ACCOUNT, fmt, args);
         |                                                       ^
   kernel/bpf/diagnostics.c:210:13: note: 'diag_vprint_indented' declared here
     210 | static void diag_vprint_indented(struct bpf_verifier_env *env, const char *fmt, va_list args)
         |             ^
>> kernel/bpf/diagnostics.c:328:77: warning: diagnostic behavior may be improved by adding the 'format(printf, 2, 3)' attribute to the declaration of 'diag_insn_print' [-Wmissing-format-attribute]
     318 | static void diag_insn_print(void *private_data, const char *fmt, ...)
         | __attribute__((format(printf, 2, 3))) 
     319 | {
     320 |         struct bpf_diag_insn_ctx *ctx = private_data;
     321 |         struct bpf_diag_insn_buf *buf = &ctx->buf;
     322 |         va_list args;
     323 | 
     324 |         if (buf->len >= buf->size)
     325 |                 return;
     326 | 
     327 |         va_start(args, fmt);
     328 |         buf->len += vscnprintf(buf->buf + buf->len, buf->size - buf->len, fmt, args);
         |                                                                                    ^
   kernel/bpf/diagnostics.c:318:13: note: 'diag_insn_print' declared here
     318 | static void diag_insn_print(void *private_data, const char *fmt, ...)
         |             ^
   kernel/bpf/diagnostics.c:446:2: error: call to undeclared function 'diag_write'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     446 |         diag_write(env, "  %s\n", source_lane);
         |         ^
   kernel/bpf/diagnostics.c:446:2: note: did you mean 'down_write'?
   include/linux/rwsem.h:241:13: note: 'down_write' declared here
     241 | extern void down_write(struct rw_semaphore *sem) __acquires(sem);
         |             ^
   kernel/bpf/diagnostics.c:455:2: error: call to undeclared function 'diag_write'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     455 |         diag_write(env, "  %s%*d | %s\n", diag_insn->idx == focus_insn_idx ? ">>> " : "    ",
         |         ^
   kernel/bpf/diagnostics.c:531:3: error: call to undeclared function 'diag_write'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     531 |                 diag_write(env, "  %*s | %*s^-- %s: %s\n", line_width + 4, "", indent, "", label,
         |                 ^
   kernel/bpf/diagnostics.c:606:2: error: call to undeclared function 'diag_write'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     606 |         diag_write(env, "  Source context:\n");
         |         ^
   3 warnings and 4 errors generated.


vim +328 kernel/bpf/diagnostics.c

   317	
   318	static void diag_insn_print(void *private_data, const char *fmt, ...)
   319	{
   320		struct bpf_diag_insn_ctx *ctx = private_data;
   321		struct bpf_diag_insn_buf *buf = &ctx->buf;
   322		va_list args;
   323	
   324		if (buf->len >= buf->size)
   325			return;
   326	
   327		va_start(args, fmt);
 > 328		buf->len += vscnprintf(buf->buf + buf->len, buf->size - buf->len, fmt, args);
   329		va_end(args);
   330	}
   331	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.