bpf: Replace callers of BPF_CAST_CALL with proper function typedef
authorKees Cook <keescook@chromium.org>
Tue, 28 Sep 2021 23:09:46 +0000 (16:09 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 28 Sep 2021 23:27:18 +0000 (16:27 -0700)
commit102acbacfd9a96d101abd96d1a7a5bf92b7c3e8e
tree18cfa723e40dbe24928faf0299bf0b90e8df9f43
parent3d717fad5081b8e3bda76d86907fad95398cbde8
bpf: Replace callers of BPF_CAST_CALL with proper function typedef

In order to keep ahead of cases in the kernel where Control Flow
Integrity (CFI) may trip over function call casts, enabling
-Wcast-function-type is helpful. To that end, BPF_CAST_CALL causes
various warnings and is one of the last places in the kernel
triggering this warning.

For actual function calls, replace BPF_CAST_CALL() with a typedef, which
captures the same details about the given function pointers.

This change results in no object code difference.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://github.com/KSPP/linux/issues/20
Link: https://lore.kernel.org/lkml/CAEf4Bzb46=-J5Fxc3mMZ8JQPtK1uoE0q6+g6WPz53Cvx=CBEhw@mail.gmail.com
Link: https://lore.kernel.org/bpf/20210928230946.4062144-3-keescook@chromium.org
include/linux/bpf.h
include/linux/filter.h
kernel/bpf/arraymap.c
kernel/bpf/hashtab.c
kernel/bpf/helpers.c