bpftool: Silence build warning about calloc()
authorTiezhu Yang <yangtiezhu@loongson.cn>
Tue, 16 Jan 2024 06:19:20 +0000 (14:19 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Jan 2024 22:40:23 +0000 (14:40 -0800)
There exists the following warning when building bpftool:

  CC      prog.o
prog.c: In function ‘profile_open_perf_events’:
prog.c:2301:24: warning: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
 2301 |                 sizeof(int), obj->rodata->num_cpu * obj->rodata->num_metric);
      |                        ^~~
prog.c:2301:24: note: earlier argument should specify number of elements, later size of each element

Tested with the latest upstream GCC which contains a new warning option
-Wcalloc-transposed-args. The first argument to calloc is documented to
be number of elements in array, while the second argument is size of each
element, just switch the first and second arguments of calloc() to silence
the build warning, compile tested only.

Fixes: 47c09d6a9f67 ("bpftool: Introduce "prog profile" command")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Quentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/bpf/20240116061920.31172-1-yangtiezhu@loongson.cn
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/bpf/bpftool/prog.c

index feb8e305804fc700ee9f908bf8f4f13864904f4a..9cb42a3366c07c9c702e6e8fa873cdc3ab3d07f7 100644 (file)
@@ -2298,7 +2298,7 @@ static int profile_open_perf_events(struct profiler_bpf *obj)
        int map_fd;
 
        profile_perf_events = calloc(
-               sizeof(int), obj->rodata->num_cpu * obj->rodata->num_metric);
+               obj->rodata->num_cpu * obj->rodata->num_metric, sizeof(int));
        if (!profile_perf_events) {
                p_err("failed to allocate memory for perf_event array: %s",
                      strerror(errno));