This commit relocates the BPF tracepoint definitions for XDP and sockmap from the kernel directory to net/bpf.
This ensures that these tracepoints are controlled by the CONFIG_NET, avoiding unnecessary function definitions when the CONFIG_NET is disabled. Additionally, it prevents build failures caused by the use of net module functions when CONFIG_NET is not enabled. Signed-off-by: Jiayuan Chen <jiayuan.c...@linux.dev> --- kernel/bpf/core.c | 7 ------- net/bpf/Makefile | 1 + net/bpf/bpf_net_trace.c | 8 ++++++++ 3 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 net/bpf/bpf_net_trace.c diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index ba6b6118cf50..54e570f62606 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -3180,10 +3180,3 @@ late_initcall(bpf_global_ma_init); DEFINE_STATIC_KEY_FALSE(bpf_stats_enabled_key); EXPORT_SYMBOL(bpf_stats_enabled_key); - -/* All definitions of tracepoints related to BPF. */ -#define CREATE_TRACE_POINTS -#include <linux/bpf_trace.h> - -EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_exception); -EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_bulk_tx); diff --git a/net/bpf/Makefile b/net/bpf/Makefile index 1ebe270bde23..e95453053159 100644 --- a/net/bpf/Makefile +++ b/net/bpf/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_BPF_SYSCALL) := test_run.o +obj-$(CONFIG_BPF_SYSCALL) += bpf_net_trace.o ifeq ($(CONFIG_BPF_JIT),y) obj-$(CONFIG_BPF_SYSCALL) += bpf_dummy_struct_ops.o endif diff --git a/net/bpf/bpf_net_trace.c b/net/bpf/bpf_net_trace.c new file mode 100644 index 000000000000..e7c0537dbffd --- /dev/null +++ b/net/bpf/bpf_net_trace.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0 + +/* All definitions of net tracepoints related to BPF. */ +#define CREATE_TRACE_POINTS +#include <linux/bpf_trace.h> + +EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_exception); +EXPORT_TRACEPOINT_SYMBOL_GPL(xdp_bulk_tx); -- 2.47.1