CC: [email protected] CC: [email protected] TO: Andrii Nakryiko <[email protected]> CC: Daniel Borkmann <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: a96bfed64c8986d6404e553f18203cae1f5ac7e6 commit: 517bbe1994a3cee29a35c730662277bb5daff582 bpf: Enforce BPF ringbuf size to be the power of 2 date: 12 months ago :::::: branch date: 14 hours ago :::::: commit date: 12 months ago config: powerpc64-randconfig-m031-20210622 (attached as .config) compiler: powerpc64le-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: kernel/bpf/ringbuf.c:166 ringbuf_map_alloc() warn: impossible condition '(attr->max_entries > (((1 << 24) - 2 - ($expr_0x7f42f1247d80(30) >> 12)) * (1 << 12))) => (0-u32max > 68719464448)' vim +166 kernel/bpf/ringbuf.c 457f44363a8894 Andrii Nakryiko 2020-05-29 149 457f44363a8894 Andrii Nakryiko 2020-05-29 150 static struct bpf_map *ringbuf_map_alloc(union bpf_attr *attr) 457f44363a8894 Andrii Nakryiko 2020-05-29 151 { 457f44363a8894 Andrii Nakryiko 2020-05-29 152 struct bpf_ringbuf_map *rb_map; 457f44363a8894 Andrii Nakryiko 2020-05-29 153 u64 cost; 457f44363a8894 Andrii Nakryiko 2020-05-29 154 int err; 457f44363a8894 Andrii Nakryiko 2020-05-29 155 457f44363a8894 Andrii Nakryiko 2020-05-29 156 if (attr->map_flags & ~RINGBUF_CREATE_FLAG_MASK) 457f44363a8894 Andrii Nakryiko 2020-05-29 157 return ERR_PTR(-EINVAL); 457f44363a8894 Andrii Nakryiko 2020-05-29 158 457f44363a8894 Andrii Nakryiko 2020-05-29 159 if (attr->key_size || attr->value_size || 517bbe1994a3ce Andrii Nakryiko 2020-06-29 160 !is_power_of_2(attr->max_entries) || 517bbe1994a3ce Andrii Nakryiko 2020-06-29 161 !PAGE_ALIGNED(attr->max_entries)) 457f44363a8894 Andrii Nakryiko 2020-05-29 162 return ERR_PTR(-EINVAL); 457f44363a8894 Andrii Nakryiko 2020-05-29 163 517bbe1994a3ce Andrii Nakryiko 2020-06-29 164 #ifdef CONFIG_64BIT 517bbe1994a3ce Andrii Nakryiko 2020-06-29 165 /* on 32-bit arch, it's impossible to overflow record's hdr->pgoff */ 517bbe1994a3ce Andrii Nakryiko 2020-06-29 @166 if (attr->max_entries > RINGBUF_MAX_DATA_SZ) 517bbe1994a3ce Andrii Nakryiko 2020-06-29 167 return ERR_PTR(-E2BIG); 517bbe1994a3ce Andrii Nakryiko 2020-06-29 168 #endif 517bbe1994a3ce Andrii Nakryiko 2020-06-29 169 457f44363a8894 Andrii Nakryiko 2020-05-29 170 rb_map = kzalloc(sizeof(*rb_map), GFP_USER); 457f44363a8894 Andrii Nakryiko 2020-05-29 171 if (!rb_map) 457f44363a8894 Andrii Nakryiko 2020-05-29 172 return ERR_PTR(-ENOMEM); 457f44363a8894 Andrii Nakryiko 2020-05-29 173 457f44363a8894 Andrii Nakryiko 2020-05-29 174 bpf_map_init_from_attr(&rb_map->map, attr); 457f44363a8894 Andrii Nakryiko 2020-05-29 175 457f44363a8894 Andrii Nakryiko 2020-05-29 176 cost = sizeof(struct bpf_ringbuf_map) + 457f44363a8894 Andrii Nakryiko 2020-05-29 177 sizeof(struct bpf_ringbuf) + 457f44363a8894 Andrii Nakryiko 2020-05-29 178 attr->max_entries; 457f44363a8894 Andrii Nakryiko 2020-05-29 179 err = bpf_map_charge_init(&rb_map->map.memory, cost); 457f44363a8894 Andrii Nakryiko 2020-05-29 180 if (err) 457f44363a8894 Andrii Nakryiko 2020-05-29 181 goto err_free_map; 457f44363a8894 Andrii Nakryiko 2020-05-29 182 457f44363a8894 Andrii Nakryiko 2020-05-29 183 rb_map->rb = bpf_ringbuf_alloc(attr->max_entries, rb_map->map.numa_node); 457f44363a8894 Andrii Nakryiko 2020-05-29 184 if (IS_ERR(rb_map->rb)) { 457f44363a8894 Andrii Nakryiko 2020-05-29 185 err = PTR_ERR(rb_map->rb); 457f44363a8894 Andrii Nakryiko 2020-05-29 186 goto err_uncharge; 457f44363a8894 Andrii Nakryiko 2020-05-29 187 } 457f44363a8894 Andrii Nakryiko 2020-05-29 188 457f44363a8894 Andrii Nakryiko 2020-05-29 189 return &rb_map->map; 457f44363a8894 Andrii Nakryiko 2020-05-29 190 457f44363a8894 Andrii Nakryiko 2020-05-29 191 err_uncharge: 457f44363a8894 Andrii Nakryiko 2020-05-29 192 bpf_map_charge_finish(&rb_map->map.memory); 457f44363a8894 Andrii Nakryiko 2020-05-29 193 err_free_map: 457f44363a8894 Andrii Nakryiko 2020-05-29 194 kfree(rb_map); 457f44363a8894 Andrii Nakryiko 2020-05-29 195 return ERR_PTR(err); 457f44363a8894 Andrii Nakryiko 2020-05-29 196 } 457f44363a8894 Andrii Nakryiko 2020-05-29 197 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
