Lines Matching refs:elem

882 	struct bpf_shtab_elem *elem;  in sock_hash_lookup_elem_raw()  local
884 hlist_for_each_entry_rcu(elem, head, node) { in sock_hash_lookup_elem_raw()
885 if (elem->hash == hash && in sock_hash_lookup_elem_raw()
886 !memcmp(&elem->key, key, key_size)) in sock_hash_lookup_elem_raw()
887 return elem; in sock_hash_lookup_elem_raw()
898 struct bpf_shtab_elem *elem; in __sock_hash_lookup_elem() local
904 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in __sock_hash_lookup_elem()
906 return elem ? elem->sk : NULL; in __sock_hash_lookup_elem()
910 struct bpf_shtab_elem *elem) in sock_hash_free_elem() argument
913 kfree_rcu(elem, rcu); in sock_hash_free_elem()
920 struct bpf_shtab_elem *elem_probe, *elem = link_raw; in sock_hash_delete_from_link() local
924 bucket = sock_hash_select_bucket(htab, elem->hash); in sock_hash_delete_from_link()
931 elem_probe = sock_hash_lookup_elem_raw(&bucket->head, elem->hash, in sock_hash_delete_from_link()
932 elem->key, map->key_size); in sock_hash_delete_from_link()
933 if (elem_probe && elem_probe == elem) { in sock_hash_delete_from_link()
934 hlist_del_rcu(&elem->node); in sock_hash_delete_from_link()
935 sock_map_unref(elem->sk, elem); in sock_hash_delete_from_link()
936 sock_hash_free_elem(htab, elem); in sock_hash_delete_from_link()
946 struct bpf_shtab_elem *elem; in sock_hash_delete_elem() local
953 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in sock_hash_delete_elem()
954 if (elem) { in sock_hash_delete_elem()
955 hlist_del_rcu(&elem->node); in sock_hash_delete_elem()
956 sock_map_unref(elem->sk, elem); in sock_hash_delete_elem()
957 sock_hash_free_elem(htab, elem); in sock_hash_delete_elem()
996 struct bpf_shtab_elem *elem, *elem_new; in sock_hash_update_common() local
1021 elem = sock_hash_lookup_elem_raw(&bucket->head, hash, key, key_size); in sock_hash_update_common()
1022 if (elem && flags == BPF_NOEXIST) { in sock_hash_update_common()
1025 } else if (!elem && flags == BPF_EXIST) { in sock_hash_update_common()
1030 elem_new = sock_hash_alloc_elem(htab, key, key_size, hash, sk, elem); in sock_hash_update_common()
1041 if (elem) { in sock_hash_update_common()
1042 hlist_del_rcu(&elem->node); in sock_hash_update_common()
1043 sock_map_unref(elem->sk, elem); in sock_hash_update_common()
1044 sock_hash_free_elem(htab, elem); in sock_hash_update_common()
1060 struct bpf_shtab_elem *elem, *elem_next; in sock_hash_get_next_key() local
1069 elem = sock_hash_lookup_elem_raw(head, hash, key, key_size); in sock_hash_get_next_key()
1070 if (!elem) in sock_hash_get_next_key()
1073 elem_next = hlist_entry_safe(rcu_dereference(hlist_next_rcu(&elem->node)), in sock_hash_get_next_key()
1149 struct bpf_shtab_elem *elem; in sock_hash_free() local
1168 hlist_for_each_entry(elem, &bucket->head, node) in sock_hash_free()
1169 sock_hold(elem->sk); in sock_hash_free()
1177 hlist_for_each_entry_safe(elem, node, &unlink_list, node) { in sock_hash_free()
1178 hlist_del(&elem->node); in sock_hash_free()
1179 lock_sock(elem->sk); in sock_hash_free()
1181 sock_map_unref(elem->sk, elem); in sock_hash_free()
1183 release_sock(elem->sk); in sock_hash_free()
1184 sock_put(elem->sk); in sock_hash_free()
1185 sock_hash_free_elem(htab, elem); in sock_hash_free()
1321 struct bpf_shtab_elem *elem; in sock_hash_seq_find_next() local
1327 elem = hlist_entry_safe(node, struct bpf_shtab_elem, node); in sock_hash_seq_find_next()
1328 if (elem) in sock_hash_seq_find_next()
1329 return elem; in sock_hash_seq_find_next()
1338 elem = hlist_entry_safe(node, struct bpf_shtab_elem, node); in sock_hash_seq_find_next()
1339 if (elem) in sock_hash_seq_find_next()
1340 return elem; in sock_hash_seq_find_next()
1373 struct bpf_shtab_elem *elem = v; in sock_hash_seq_show() local
1378 prog = bpf_iter_get_info(&meta, !elem); in sock_hash_seq_show()
1384 if (elem) { in sock_hash_seq_show()
1385 ctx.key = elem->key; in sock_hash_seq_show()
1386 ctx.sk = elem->sk; in sock_hash_seq_show()