[kkdwivedi:verifier/errors/v5 11/21] kernel/bpf/diagnostics.c:809:36: warning: diagnostic behavior may be improved by adding the 'format(printf, 4, 5)' attribute to the declaration of 'bpf_diag_source'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://github.com/kkdwivedi/linux verifier/errors/v5
head:   78d1e78c2d172fa18fd95fd189144b9a08332762
commit: ff77e445a19d72054f5fae24ab986d4753e0c117 [11/21] fixup! bpf: Report Register Type Safety errors
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20260815/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 844a18e753e822736c9805ab779144b647a2c186)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260815/[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:809:36: warning: diagnostic behavior may be improved by adding the 'format(printf, 4, 5)' attribute to the declaration of 'bpf_diag_source' [-Wmissing-format-attribute]
     780 |         msg = bpf_diag_vfmt(env, fmt, args);
         |                                           ^
   kernel/bpf/diagnostics.c:780:13: note: 'bpf_diag_source' declared here
     780 | static void bpf_diag_source(struct bpf_verifier_env *env, u32 insn_idx, const char *label,
         |             ^
   1 warning generated.


vim +809 kernel/bpf/diagnostics.c

845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  779  
ff77e445a19d72 Kumar Kartikeya Dwivedi 2026-08-14  780  static void bpf_diag_source(struct bpf_verifier_env *env, u32 insn_idx, const char *label,
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  781  			    const char *fmt, ...)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  782  {
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  783  	struct bpf_diag_scratch *scratch;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  784  	struct bpf_linfo_source *source_lines;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  785  	struct disasm_line *disasm_lines;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  786  	struct bpf_linfo_source src;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  787  	struct diag_fmt_mark mark;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  788  	const struct bpf_line_info *linfo;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  789  	const struct bpf_subprog_info *subprog;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  790  	struct btf *btf = env->prog->aux->btf;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  791  	char *source_lane;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  792  	const char *msg;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  793  	const char *func;
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  794  	int start_line, end_line, width, indent, subprogno, i;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  795  	va_list args;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  796  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  797  	if (!bpf_diag_enabled(env))
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  798  		return;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  799  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  800  	mark = diag_fmt_save(env);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  801  	label = label ?: "note";
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  802  	scratch = diag_scratch(env);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  803  	source_lines = scratch->source_lines;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  804  	disasm_lines = scratch->disasm_lines;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  805  	memset(source_lines, 0, sizeof(scratch->source_lines));
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  806  	memset(disasm_lines, 0, sizeof(scratch->disasm_lines));
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  807  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  808  	va_start(args, fmt);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13 @809  	msg = bpf_diag_vfmt(env, fmt, args);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  810  	va_end(args);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  811  	if (!*msg)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  812  		msg = "<failed to allocate diagnostic text>";
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  813  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  814  	linfo = bpf_find_linfo(env->prog, insn_idx);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  815  	if (!btf || !linfo) {
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  816  		diag_write(env, "  insn %u\n", insn_idx);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  817  		diag_print_source_annotation(env, 0, 0, label, msg);
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  818  		diag_print_insn_context(env, insn_idx, disasm_lines);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  819  		goto out_restore;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  820  	}
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  821  	bpf_get_linfo_source(btf, linfo, &src);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  822  	if (!src.file || !*src.file || !src.line || !*src.line) {
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  823  		diag_write(env, "  insn %u\n", insn_idx);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  824  		diag_print_source_annotation(env, 0, 0, label, msg);
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  825  		diag_print_insn_context(env, insn_idx, disasm_lines);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  826  		goto out_restore;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  827  	}
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  828  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  829  	subprog = bpf_find_containing_subprog(env, insn_idx);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  830  	subprogno = subprog ? bpf_find_subprog(env, subprog->start) : -ENOENT;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  831  	func = subprogno >= 0 ? bpf_subprog_name(env, subprogno) : NULL;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  832  	if (func && *func)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  833  		diag_write(env, "  %s @ %s:%d:%d\n", func, src.file, src.line_num, src.line_col);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  834  	else
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  835  		diag_write(env, "  %s:%d:%d\n", src.file, src.line_num, src.line_col);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  836  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  837  	start_line = src.line_num - BPF_DIAG_CONTEXT;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  838  	end_line = src.line_num + BPF_DIAG_CONTEXT;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  839  	width = diag_line_width(end_line);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  840  	indent = diag_line_indent(src.line);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  841  	for (i = 0; i < BPF_DIAG_CONTEXT_CNT; i++)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  842  		source_lines[i].line_num = start_line + i;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  843  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  844  	linfo = env->prog->aux->linfo;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  845  	for (i = 0; i < env->prog->aux->nr_linfo; i++) {
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  846  		struct bpf_linfo_source line_src;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  847  		int idx;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  848  
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  849  		bpf_get_linfo_source(btf, &linfo[i], &line_src);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  850  		if (line_src.file_name_off != src.file_name_off ||
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  851  		    line_src.line_num < start_line || line_src.line_num > end_line ||
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  852  		    !line_src.line || !*line_src.line)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  853  			continue;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  854  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  855  		idx = line_src.line_num - start_line;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  856  		if (!source_lines[idx].line)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  857  			source_lines[idx] = line_src;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  858  	}
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  859  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  860  	diag_write(env, "  Source context:\n");
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  861  	source_lane = bpf_diag_fmt_buf(env, BPF_DIAG_FMT_BUF_SIZE);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  862  	if (!source_lane)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  863  		goto out_restore;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  864  	for (i = 0; i < BPF_DIAG_CONTEXT_CNT; i++) {
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  865  		const char *source_prefix;
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  866  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  867  		source_prefix = source_lines[i].line_num == src.line_num ? ">>> " : "    ";
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  868  		diag_format_source_lane(source_lane, BPF_DIAG_FMT_BUF_SIZE, source_prefix, width,
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  869  					source_lines[i].line_num, source_lines[i].line);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  870  		diag_write(env, "  %s\n", source_lane);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  871  		if (source_lines[i].line_num == src.line_num)
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  872  			diag_print_source_annotation(env, width, indent, label, msg);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  873  	}
845093db76e594 Kumar Kartikeya Dwivedi 2026-08-14  874  	diag_print_insn_context(env, insn_idx, disasm_lines);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  875  
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  876  out_restore:
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  877  	diag_fmt_restore(env, mark);
85635593d0d7f2 Kumar Kartikeya Dwivedi 2026-07-13  878  }
93068acddf1e58 Kumar Kartikeya Dwivedi 2026-07-13  879  

:::::: The code at line 809 was first introduced by commit
:::::: 85635593d0d7f2ed239a245743676d9443e0c0a6 bpf: Add source and instruction diagnostic context

:::::: TO: Kumar Kartikeya Dwivedi <[email protected]>
:::::: CC: Kumar Kartikeya Dwivedi <[email protected]>

--
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.