Lines Matching refs:elem
547 struct bpf_htab_elem *elem; in sock_hash_lookup_elem_raw() local
549 hlist_for_each_entry_rcu(elem, head, node) { in sock_hash_lookup_elem_raw()
550 if (elem->hash == hash && in sock_hash_lookup_elem_raw()
551 !memcmp(&elem->key, key, key_size)) in sock_hash_lookup_elem_raw()
552 return elem; in sock_hash_lookup_elem_raw()
563 struct bpf_htab_elem *elem; in __sock_hash_lookup_elem() local
569 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in __sock_hash_lookup_elem()
571 return elem ? elem->sk : NULL; in __sock_hash_lookup_elem()
575 struct bpf_htab_elem *elem) in sock_hash_free_elem() argument
578 kfree_rcu(elem, rcu); in sock_hash_free_elem()
585 struct bpf_htab_elem *elem_probe, *elem = link_raw; in sock_hash_delete_from_link() local
589 bucket = sock_hash_select_bucket(htab, elem->hash); in sock_hash_delete_from_link()
596 elem_probe = sock_hash_lookup_elem_raw(&bucket->head, elem->hash, in sock_hash_delete_from_link()
597 elem->key, map->key_size); in sock_hash_delete_from_link()
598 if (elem_probe && elem_probe == elem) { in sock_hash_delete_from_link()
599 hlist_del_rcu(&elem->node); in sock_hash_delete_from_link()
600 sock_map_unref(elem->sk, elem); in sock_hash_delete_from_link()
601 sock_hash_free_elem(htab, elem); in sock_hash_delete_from_link()
611 struct bpf_htab_elem *elem; in sock_hash_delete_elem() local
618 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in sock_hash_delete_elem()
619 if (elem) { in sock_hash_delete_elem()
620 hlist_del_rcu(&elem->node); in sock_hash_delete_elem()
621 sock_map_unref(elem->sk, elem); in sock_hash_delete_elem()
622 sock_hash_free_elem(htab, elem); in sock_hash_delete_elem()
661 struct bpf_htab_elem *elem, *elem_new; in sock_hash_update_common() local
688 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in sock_hash_update_common()
689 if (elem && flags == BPF_NOEXIST) { in sock_hash_update_common()
692 } else if (!elem && flags == BPF_EXIST) { in sock_hash_update_common()
697 elem_new = sock_hash_alloc_elem(htab, key, key_size, hash, sk, elem); in sock_hash_update_common()
708 if (elem) { in sock_hash_update_common()
709 hlist_del_rcu(&elem->node); in sock_hash_update_common()
710 sock_map_unref(elem->sk, elem); in sock_hash_update_common()
711 sock_hash_free_elem(htab, elem); in sock_hash_update_common()
757 struct bpf_htab_elem *elem, *elem_next; in sock_hash_get_next_key() local
766 elem = sock_hash_lookup_elem_raw(head, hash, key, key_size); in sock_hash_get_next_key()
767 if (!elem) in sock_hash_get_next_key()
770 elem_next = hlist_entry_safe(rcu_dereference_raw(hlist_next_rcu(&elem->node)), in sock_hash_get_next_key()
854 struct bpf_htab_elem *elem; in sock_hash_free() local
863 hlist_for_each_entry_safe(elem, node, &bucket->head, node) { in sock_hash_free()
864 hlist_del_rcu(&elem->node); in sock_hash_free()
865 sock_map_unref(elem->sk, elem); in sock_hash_free()