Lines Matching defs:st_map

258 	struct bpf_struct_ops_map *st_map = (struct bpf_struct_ops_map *)map;
266 kvalue = &st_map->kvalue;
278 memcpy(uvalue, st_map->uvalue, map->value_size);
297 static void bpf_struct_ops_map_put_progs(struct bpf_struct_ops_map *st_map)
299 const struct btf_type *t = st_map->st_ops->type;
303 if (st_map->links[i]) {
304 bpf_link_put(st_map->links[i]);
305 st_map->links[i] = NULL;
372 struct bpf_struct_ops_map *st_map = (struct bpf_struct_ops_map *)map;
373 const struct bpf_struct_ops *st_ops = st_map->st_ops;
405 uvalue = (struct bpf_struct_ops_value *)st_map->uvalue;
406 kvalue = (struct bpf_struct_ops_value *)&st_map->kvalue;
408 mutex_lock(&st_map->lock);
419 image = st_map->image;
420 image_end = st_map->image + PAGE_SIZE;
496 st_map->links[i] = &link->link;
511 if (st_map->map.map_flags & BPF_F_LINK) {
518 set_memory_rox((long)st_map->image, 1);
527 set_memory_rox((long)st_map->image, 1);
550 set_memory_nx((long)st_map->image, 1);
551 set_memory_rw((long)st_map->image, 1);
554 bpf_struct_ops_map_put_progs(st_map);
559 mutex_unlock(&st_map->lock);
566 struct bpf_struct_ops_map *st_map;
568 st_map = (struct bpf_struct_ops_map *)map;
569 if (st_map->map.map_flags & BPF_F_LINK)
572 prev_state = cmpxchg(&st_map->kvalue.state,
577 st_map->st_ops->unreg(&st_map->kvalue.data);
613 struct bpf_struct_ops_map *st_map = (struct bpf_struct_ops_map *)map;
615 if (st_map->links)
616 bpf_struct_ops_map_put_progs(st_map);
617 bpf_map_area_free(st_map->links);
618 bpf_jit_free_exec(st_map->image);
619 bpf_map_area_free(st_map->uvalue);
620 bpf_map_area_free(st_map);
657 struct bpf_struct_ops_map *st_map;
671 st_map_size = sizeof(*st_map) +
677 st_map = bpf_map_area_alloc(st_map_size, NUMA_NO_NODE);
678 if (!st_map)
681 st_map->st_ops = st_ops;
682 map = &st_map->map;
684 st_map->uvalue = bpf_map_area_alloc(vt->size, NUMA_NO_NODE);
685 st_map->links =
688 st_map->image = bpf_jit_alloc_exec(PAGE_SIZE);
689 if (!st_map->uvalue || !st_map->links || !st_map->image) {
694 mutex_init(&st_map->lock);
695 set_vm_flush_reset_perms(st_map->image);
703 struct bpf_struct_ops_map *st_map = (struct bpf_struct_ops_map *)map;
704 const struct bpf_struct_ops *st_ops = st_map->st_ops;
708 usage = sizeof(*st_map) +
736 struct bpf_struct_ops_map *st_map;
740 st_map = container_of(kvalue, struct bpf_struct_ops_map, kvalue);
742 map = __bpf_map_inc_not_zero(&st_map->map, false);
749 struct bpf_struct_ops_map *st_map;
752 st_map = container_of(kvalue, struct bpf_struct_ops_map, kvalue);
754 bpf_map_put(&st_map->map);
759 struct bpf_struct_ops_map *st_map = (struct bpf_struct_ops_map *)map;
764 smp_load_acquire(&st_map->kvalue.state) == BPF_STRUCT_OPS_STATE_READY;
770 struct bpf_struct_ops_map *st_map;
773 st_map = (struct bpf_struct_ops_map *)
775 if (st_map) {
779 st_map->st_ops->unreg(&st_map->kvalue.data);
780 bpf_map_put(&st_map->map);
815 struct bpf_struct_ops_map *st_map, *old_st_map;
821 st_map = container_of(new_map, struct bpf_struct_ops_map, map);
826 if (!st_map->st_ops->update)
839 if (st_map->st_ops != old_st_map->st_ops) {
844 err = st_map->st_ops->update(st_map->kvalue.data, old_st_map->kvalue.data);
869 struct bpf_struct_ops_map *st_map;
877 st_map = (struct bpf_struct_ops_map *)map;
895 err = st_map->st_ops->reg(st_map->kvalue.data);