Message ID | 20191125234103.1699950-2-jhubbard@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | bpf: fix a no-mmu build failure by providing a stub allocator | expand |
On 11/25/19 3:43 PM, Daniel Borkmann wrote: > On 11/26/19 12:41 AM, John Hubbard wrote: >> 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@intel.com >> >> 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@intel.com> >> Cc: Andrii Nakryiko <andriin@fb.com> >> Cc: Daniel Borkmann <daniel@iogearbox.net> >> Cc: Song Liu <songliubraving@fb.com> >> Cc: John Fastabend <john.fastabend@gmail.com> >> Cc: Johannes Weiner <hannes@cmpxchg.org> >> Signed-off-by: John Hubbard <jhubbard@nvidia.com> > > Thanks for the patch, already fixed via: > > https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=ed81745a4c96841937f1da35c0eb66ac312e1480 OK, good, that's a better fix, too. Appreciate the quick answers! thanks,
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) {
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@intel.com 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@intel.com> Cc: Andrii Nakryiko <andriin@fb.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Song Liu <songliubraving@fb.com> Cc: John Fastabend <john.fastabend@gmail.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: John Hubbard <jhubbard@nvidia.com> --- kernel/bpf/syscall.c | 7 +++++++ 1 file changed, 7 insertions(+)