Lines Matching refs:owner

27 static int mem_charge(struct bpf_local_storage_map *smap, void *owner, u32 size)
34 return map->ops->map_local_storage_charge(smap, owner, size);
37 static void mem_uncharge(struct bpf_local_storage_map *smap, void *owner,
43 map->ops->map_local_storage_uncharge(smap, owner, size);
47 owner_storage(struct bpf_local_storage_map *smap, void *owner)
51 return map->ops->map_owner_storage_ptr(owner);
75 bpf_selem_alloc(struct bpf_local_storage_map *smap, void *owner,
80 if (charge_mem && mem_charge(smap, owner, smap->elem_size))
109 mem_uncharge(smap, owner, smap->elem_size);
259 void *owner;
262 owner = local_storage->owner;
264 /* All uncharging on the owner must be done first.
265 * The owner may be freed once the last selem is unlinked
269 mem_uncharge(smap, owner, smap->elem_size);
274 mem_uncharge(smap, owner, sizeof(struct bpf_local_storage));
275 local_storage->owner = NULL;
277 /* After this RCU_INIT, owner may be freed and cannot be used */
278 RCU_INIT_POINTER(*owner_storage(smap, owner), NULL);
448 int bpf_local_storage_alloc(void *owner,
457 err = mem_charge(smap, owner, sizeof(*storage));
478 storage->owner = owner;
484 (struct bpf_local_storage **)owner_storage(smap, owner);
485 /* Publish storage to the owner.
486 * Instead of using any lock of the kernel object (i.e. owner),
490 * From now on, the owner->storage pointer (e.g. sk->sk_bpf_storage)
492 * the owner->storage, the storage->lock must be held before
493 * setting owner->storage ptr to NULL.
516 mem_uncharge(smap, owner, sizeof(*storage));
526 bpf_local_storage_update(void *owner, struct bpf_local_storage_map *smap,
545 local_storage = rcu_dereference_check(*owner_storage(smap, owner),
548 /* Very first elem for the owner */
553 selem = bpf_selem_alloc(smap, owner, value, true, gfp_flags);
557 err = bpf_local_storage_alloc(owner, smap, selem, gfp_flags);
560 mem_uncharge(smap, owner, smap->elem_size);
587 alloc_selem = selem = bpf_selem_alloc(smap, owner, value, true, gfp_flags);
633 mem_uncharge(smap, owner, smap->elem_size);
757 * get a hold of the owner PTR_TO_BTF_ID in any context. eg. bpf_get_current_task_btf.
759 * memory immediately. To be reuse-immediate safe, the owner destruction
843 * to the owner->storage or to the map bucket's list.