devmap: Use bpf_map_area_alloc() for allocating hash buckets
authorToke Høiland-Jørgensen <toke@redhat.com>
Tue, 16 Jun 2020 14:28:29 +0000 (16:28 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 17 Jun 2020 17:01:19 +0000 (10:01 -0700)
commit99c51064fb06146b3d494b745c947e438a10aaa7
treeca1db0445778ac64e06f13568d245bd060950915
parent3ff2351651a2ecb73ec9d29119793bde190b2850
devmap: Use bpf_map_area_alloc() for allocating hash buckets

Syzkaller discovered that creating a hash of type devmap_hash with a large
number of entries can hit the memory allocator limit for allocating
contiguous memory regions. There's really no reason to use kmalloc_array()
directly in the devmap code, so just switch it to the existing
bpf_map_area_alloc() function that is used elsewhere.

Fixes: 6f9d451ab1a3 ("xdp: Add devmap_hash map type for looking up devices by hashed index")
Reported-by: Xiumei Mu <xmu@redhat.com>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20200616142829.114173-1-toke@redhat.com
kernel/bpf/devmap.c