[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