bpf: Fix off-by-one error in bpf_mem_cache_idx()
authorHou Tao <houtao1@huawei.com>
Wed, 18 Jan 2023 08:46:30 +0000 (16:46 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 19 Jan 2023 02:36:26 +0000 (18:36 -0800)
According to the definition of sizes[NUM_CACHES], when the size passed
to bpf_mem_cache_size() is 256, it should return 6 instead 7.

Fixes: 7c8199e24fa0 ("bpf: Introduce any context BPF specific memory allocator.")
Signed-off-by: Hou Tao <houtao1@huawei.com>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/r/20230118084630.3750680-1-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/memalloc.c

index ebcc3dd0fa19cd35b4d17a49477681c2fd074c30..1db156405b68b339ca68a196f714be6d29b556b6 100644 (file)
@@ -71,7 +71,7 @@ static int bpf_mem_cache_idx(size_t size)
        if (size <= 192)
                return size_index[(size - 1) / 8] - 1;
 
-       return fls(size - 1) - 1;
+       return fls(size - 1) - 2;
 }
 
 #define NUM_CACHES 11