Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: 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

authored by

Andrii Nakryiko and committed by
Alexei Starovoitov
bd9bedf8 05aca6da

+4 -4
+4 -4
tools/lib/bpf/bpf_core_read.h
··· 217 217 */ 218 218 #define BPF_CORE_READ_INTO(dst, src, a, ...) \ 219 219 ({ \ 220 - ___core_read(bpf_core_read, dst, src, a, ##__VA_ARGS__) \ 220 + ___core_read(bpf_core_read, dst, (src), a, ##__VA_ARGS__) \ 221 221 }) 222 222 223 223 /* ··· 227 227 */ 228 228 #define BPF_CORE_READ_STR_INTO(dst, src, a, ...) \ 229 229 ({ \ 230 - ___core_read(bpf_core_read_str, dst, src, a, ##__VA_ARGS__) \ 230 + ___core_read(bpf_core_read_str, dst, (src), a, ##__VA_ARGS__)\ 231 231 }) 232 232 233 233 /* ··· 254 254 */ 255 255 #define BPF_CORE_READ(src, a, ...) \ 256 256 ({ \ 257 - ___type(src, a, ##__VA_ARGS__) __r; \ 258 - BPF_CORE_READ_INTO(&__r, src, a, ##__VA_ARGS__); \ 257 + ___type((src), a, ##__VA_ARGS__) __r; \ 258 + BPF_CORE_READ_INTO(&__r, (src), a, ##__VA_ARGS__); \ 259 259 __r; \ 260 260 }) 261 261