Hello Masami Hiramatsu (Google),
Commit 25f00e40ce79 ("tracing/probes: Support $argN in return probe
(kprobe and fprobe)") from Mar 4, 2024 (linux-next), leads to the
following Smatch static checker warning:
kernel/trace/trace_probe.c:856 store_trace_entry_data()
error: uninitialized symbol 'val'.
kernel/trace/trace_probe.c
846 return;
847
848 for (i = 0; i < earg->size; i++) {
849 struct fetch_insn *code = &earg->code[i];
850
851 switch (code->op) {
852 case FETCH_OP_ARG:
853 val = regs_get_kernel_argument(regs,
code->param);
854 break;
855 case FETCH_OP_ST_EDATA:
--> 856 *(unsigned long *)((unsigned long)edata +
code->offset) = val;
Probably the earg->code[i] always has FETCH_OP_ARG before
FETCH_OP_ST_EDATA but Smatch isn't smart enough to figure that out...
857 break;
858 case FETCH_OP_END:
859 goto end;
860 default:
861 break;
862 }
863 }
864 end:
865 return;
866 }
regards,
dan carpenter