From: Tejun Heo Date: Wed, 27 May 2026 19:26:32 +0000 (-1000) Subject: bpf: Fix bpf_arena_handle_page_fault() redefinition without CONFIG_BPF_SYSCALL X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=e42e53ae23b7d41df22ccd7788192bf578f24da2;p=thirdparty%2Flinux.git bpf: Fix bpf_arena_handle_page_fault() redefinition without CONFIG_BPF_SYSCALL On configs with CONFIG_BPF=y but CONFIG_BPF_SYSCALL=n (e.g. arm multi_v7_defconfig), kernel/bpf/core.c defines a __weak bpf_arena_handle_page_fault() while bpf_defs.h already supplies a static inline stub for it, causing a redefinition error. Build the __weak definition only under CONFIG_BPF_SYSCALL, matching the bpf_defs.h declaration and the CONFIG_BPF_SYSCALL-gated strong definition in arena.c. Fixes: dc11a4dba246 ("bpf: Recover arena kernel faults with scratch page") Reported-by: Mark Brown Signed-off-by: Tejun Heo Acked-by: Song Liu Link: https://lore.kernel.org/r/20260527192632.2109419-1-tj@kernel.org Signed-off-by: Alexei Starovoitov --- diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 8ecba2989d88..a656a8572bdb 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -3376,13 +3376,14 @@ __weak u64 bpf_arena_get_kern_vm_start(struct bpf_arena *arena) { return 0; } + +#ifdef CONFIG_BPF_SYSCALL __weak bool bpf_arena_handle_page_fault(unsigned long addr, bool is_write, unsigned long fault_ip) { return false; } -#ifdef CONFIG_BPF_SYSCALL static int __init bpf_global_ma_init(void) { int ret;