libbpf: Wrap source argument of BPF_CORE_READ macro in parentheses

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: 7db3822ab9 ("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
This commit is contained in:
Andrii Nakryiko
2020-06-19 16:17:01 -07:00
committed by Alexei Starovoitov
parent 05aca6da3b
commit bd9bedf84b

View File

@@ -217,7 +217,7 @@ enum bpf_field_info_kind {
*/ */
#define BPF_CORE_READ_INTO(dst, src, a, ...) \ #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, ...) \ #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, ...) \ #define BPF_CORE_READ(src, a, ...) \
({ \ ({ \
___type(src, a, ##__VA_ARGS__) __r; \ ___type((src), a, ##__VA_ARGS__) __r; \
BPF_CORE_READ_INTO(&__r, src, a, ##__VA_ARGS__); \ BPF_CORE_READ_INTO(&__r, (src), a, ##__VA_ARGS__); \
__r; \ __r; \
}) })