OSDN Git Service

libbpf: Wrap source argument of BPF_CORE_READ macro in parentheses
authorAndrii Nakryiko <andriin@fb.com>
Fri, 19 Jun 2020 23:17:01 +0000 (16:17 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Jun 2020 00:01:48 +0000 (17:01 -0700)
Wrap source argument of BPF_CORE_READ family of macros into parentheses to
allow uses like this:

BPF_CORE_READ((struct cast_struct *)src, a, b, c);

Fixes: 7db3822ab991 ("libbpf: Add BPF_CORE_READ/BPF_CORE_READ_INTO helpers")
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200619231703.738941-8-andriin@fb.com
tools/lib/bpf/bpf_core_read.h

index 7009dc9..eae5ccc 100644 (file)
@@ -217,7 +217,7 @@ enum bpf_field_info_kind {
  */
 #define BPF_CORE_READ_INTO(dst, src, a, ...)                               \
        ({                                                                  \
-               ___core_read(bpf_core_read, dst, src, a, ##__VA_ARGS__)     \
+               ___core_read(bpf_core_read, dst, (src), a, ##__VA_ARGS__)   \
        })
 
 /*
@@ -227,7 +227,7 @@ enum bpf_field_info_kind {
  */
 #define BPF_CORE_READ_STR_INTO(dst, src, a, ...)                           \
        ({                                                                  \
-               ___core_read(bpf_core_read_str, dst, src, a, ##__VA_ARGS__) \
+               ___core_read(bpf_core_read_str, dst, (src), a, ##__VA_ARGS__)\
        })
 
 /*
@@ -254,8 +254,8 @@ enum bpf_field_info_kind {
  */
 #define BPF_CORE_READ(src, a, ...)                                         \
        ({                                                                  \
-               ___type(src, a, ##__VA_ARGS__) __r;                         \
-               BPF_CORE_READ_INTO(&__r, src, a, ##__VA_ARGS__);            \
+               ___type((src), a, ##__VA_ARGS__) __r;                       \
+               BPF_CORE_READ_INTO(&__r, (src), a, ##__VA_ARGS__);          \
                __r;                                                        \
        })