Commit fc9702273e2e ("bpf: Add mmap() support for BPF_MAP_TYPE_ARRAY") added code that calls vmalloc_user_node_flags() and therefore requires mm/vmalloc.c. However, that file is not built for the !CONFIG_MMU case. This leads to a build failure when using ARM with the config provided by at least one particular kbuild test robot report [1]. [1] https://lore/kernel.org/r/201911251639.UWS3hE3Y%lkp@xxxxxxxxx Fix the build by providing a stub function for __bpf_map_area_alloc(). Fixes: fc9702273e2e ("bpf: Add mmap() support for BPF_MAP_TYPE_ARRAY") Reported-by: kbuild test robot <lkp@xxxxxxxxx> Cc: Andrii Nakryiko <andriin@xxxxxx> Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx> Cc: Song Liu <songliubraving@xxxxxx> Cc: John Fastabend <john.fastabend@xxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx> --- kernel/bpf/syscall.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index e3461ec59570..cb3e13ee4123 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -128,6 +128,7 @@ static struct bpf_map *find_and_alloc_map(union bpf_attr *attr) return map; } +#ifdef CONFIG_MMU static void *__bpf_map_area_alloc(u64 size, int numa_node, bool mmapable) { /* We really just want to fail instead of triggering OOM killer @@ -162,6 +163,12 @@ static void *__bpf_map_area_alloc(u64 size, int numa_node, bool mmapable) GFP_KERNEL | __GFP_RETRY_MAYFAIL | flags, __builtin_return_address(0)); } +#else /* CONFIG_MMU */ +static void *__bpf_map_area_alloc(u64 size, int numa_node, bool mmapable) +{ + return NULL; +} +#endif /* !CONFIG_MMU */ void *bpf_map_area_alloc(u64 size, int numa_node) { -- 2.24.0