libbpf: fix ptr to u64 conversion warning on 32-bit platforms
authorAndrii Nakryiko <andriin@fb.com>
Tue, 9 Jul 2019 04:00:07 +0000 (21:00 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 12 Jul 2019 12:51:03 +0000 (14:51 +0200)
On 32-bit platforms compiler complains about conversion:

libbpf.c: In function ‘perf_event_open_probe’:
libbpf.c:4112:17: error: cast from pointer to integer of different
size [-Werror=pointer-to-int-cast]
  attr.config1 = (uint64_t)(void *)name; /* kprobe_func or uprobe_path */
                 ^

Reported-by: Matt Hart <matthew.hart@linaro.org>
Fixes: b26500274767 ("libbpf: add kprobe/uprobe attach API")
Tested-by: Matt Hart <matthew.hart@linaro.org>
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/lib/bpf/libbpf.c

index ed07789b3e62307d46a3cb7d5862170a850eb259..794dd5064ae8a01d9628c3baade0605a24fa4f44 100644 (file)
@@ -4126,8 +4126,8 @@ static int perf_event_open_probe(bool uprobe, bool retprobe, const char *name,
        }
        attr.size = sizeof(attr);
        attr.type = type;
-       attr.config1 = (uint64_t)(void *)name; /* kprobe_func or uprobe_path */
-       attr.config2 = offset;                 /* kprobe_addr or probe_offset */
+       attr.config1 = ptr_to_u64(name); /* kprobe_func or uprobe_path */
+       attr.config2 = offset;           /* kprobe_addr or probe_offset */
 
        /* pid filter is meaningful only for uprobes */
        pfd = syscall(__NR_perf_event_open, &attr,