summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDave Marchevsky <davemarchevsky@fb.com>2023-10-31 14:56:25 -0700
committerAlexei Starovoitov <ast@kernel.org>2023-11-01 22:33:53 -0700
commit15fb6f2b6c4c3c129adc2412ae12ec15e60a6adb (patch)
tree03f6aca296ff77a4608cbb68663a7415b72f29b1 /net
parent391145ba2accc48b596f3d438af1a6255b62a555 (diff)
downloadlinux-stable-15fb6f2b6c4c3c129adc2412ae12ec15e60a6adb.tar.gz
linux-stable-15fb6f2b6c4c3c129adc2412ae12ec15e60a6adb.tar.bz2
linux-stable-15fb6f2b6c4c3c129adc2412ae12ec15e60a6adb.zip
bpf: Add __bpf_hook_{start,end} macros
Not all uses of __diag_ignore_all(...) in BPF-related code in order to suppress warnings are wrapping kfunc definitions. Some "hook point" definitions - small functions meant to be used as attach points for fentry and similar BPF progs - need to suppress -Wmissing-declarations. We could use __bpf_kfunc_{start,end}_defs added in the previous patch in such cases, but this might be confusing to someone unfamiliar with BPF internals. Instead, this patch adds __bpf_hook_{start,end} macros, currently having the same effect as __bpf_kfunc_{start,end}_defs, then uses them to suppress warnings for two hook points in the kernel itself and some bpf_testmod hook points as well. Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com> Cc: Yafang Shao <laoar.shao@gmail.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Acked-by: Yafang Shao <laoar.shao@gmail.com> Link: https://lore.kernel.org/r/20231031215625.2343848-2-davemarchevsky@fb.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/socket.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/net/socket.c b/net/socket.c
index 0d1c4e78fc7f..3379c64217a4 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1685,20 +1685,16 @@ struct file *__sys_socket_file(int family, int type, int protocol)
* Therefore, __weak is needed to ensure that the call is still
* emitted, by telling the compiler that we don't know what the
* function might eventually be.
- *
- * __diag_* below are needed to dismiss the missing prototype warning.
*/
-__diag_push();
-__diag_ignore_all("-Wmissing-prototypes",
- "A fmod_ret entry point for BPF programs");
+__bpf_hook_start();
__weak noinline int update_socket_protocol(int family, int type, int protocol)
{
return protocol;
}
-__diag_pop();
+__bpf_hook_end();
int __sys_socket(int family, int type, int protocol)
{