Skip to content

Commit 7984c27

Browse files
Michal Hockotorvalds
authored andcommitted
bpf: do not use KMALLOC_SHIFT_MAX
Commit 01b3f52 ("bpf: fix allocation warnings in bpf maps and integer overflow") has added checks for the maximum allocateable size. It (ab)used KMALLOC_SHIFT_MAX for that purpose. While this is not incorrect it is not very clean because we already have KMALLOC_MAX_SIZE for this very reason so let's change both checks to use KMALLOC_MAX_SIZE instead. The original motivation for using KMALLOC_SHIFT_MAX was to work around an incorrect KMALLOC_MAX_SIZE which could lead to allocation warnings but it is no longer needed since "slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER". Link: http://lkml.kernel.org/r/20161220130659.16461-3-mhocko@kernel.org Signed-off-by: Michal Hocko <mhocko@suse.com> Acked-by: Christoph Lameter <cl@linux.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Andrey Konovalov <andreyknvl@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent bb1107f commit 7984c27

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

kernel/bpf/arraymap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr)
5656
attr->value_size == 0 || attr->map_flags)
5757
return ERR_PTR(-EINVAL);
5858

59-
if (attr->value_size >= 1 << (KMALLOC_SHIFT_MAX - 1))
59+
if (attr->value_size > KMALLOC_MAX_SIZE)
6060
/* if value_size is bigger, the user space won't be able to
6161
* access the elements.
6262
*/

kernel/bpf/hashtab.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ static struct bpf_map *htab_map_alloc(union bpf_attr *attr)
274274
*/
275275
goto free_htab;
276276

277-
if (htab->map.value_size >= (1 << (KMALLOC_SHIFT_MAX - 1)) -
277+
if (htab->map.value_size >= KMALLOC_MAX_SIZE -
278278
MAX_BPF_STACK - sizeof(struct htab_elem))
279279
/* if value_size is bigger, the user space won't be able to
280280
* access the elements via bpf syscall. This check also makes

0 commit comments

Comments
 (0)