Lines Matching refs:nc_node

207 	struct batadv_nc_node *nc_node;  in batadv_nc_node_release()  local
209 nc_node = container_of(ref, struct batadv_nc_node, refcount); in batadv_nc_node_release()
211 batadv_orig_node_put(nc_node->orig_node); in batadv_nc_node_release()
212 kfree_rcu(nc_node, rcu); in batadv_nc_node_release()
220 static void batadv_nc_node_put(struct batadv_nc_node *nc_node) in batadv_nc_node_put() argument
222 if (!nc_node) in batadv_nc_node_put()
225 kref_put(&nc_node->refcount, batadv_nc_node_release); in batadv_nc_node_put()
280 struct batadv_nc_node *nc_node) in batadv_nc_to_purge_nc_node() argument
285 return batadv_has_timed_out(nc_node->last_seen, BATADV_NC_NODE_TIMEOUT); in batadv_nc_to_purge_nc_node()
347 struct batadv_nc_node *nc_node, *nc_node_tmp; in batadv_nc_purge_orig_nc_nodes() local
351 list_for_each_entry_safe(nc_node, nc_node_tmp, list, list) { in batadv_nc_purge_orig_nc_nodes()
355 if (to_purge && !to_purge(bat_priv, nc_node)) in batadv_nc_purge_orig_nc_nodes()
360 nc_node->addr, nc_node->orig_node->orig); in batadv_nc_purge_orig_nc_nodes()
361 list_del_rcu(&nc_node->list); in batadv_nc_purge_orig_nc_nodes()
362 batadv_nc_node_put(nc_node); in batadv_nc_purge_orig_nc_nodes()
803 struct batadv_nc_node *nc_node, *nc_node_out = NULL; in batadv_nc_find_nc_node() local
813 list_for_each_entry_rcu(nc_node, list, list) { in batadv_nc_find_nc_node()
814 if (!batadv_compare_eth(nc_node->addr, orig_node->orig)) in batadv_nc_find_nc_node()
817 if (!kref_get_unless_zero(&nc_node->refcount)) in batadv_nc_find_nc_node()
821 nc_node_out = nc_node; in batadv_nc_find_nc_node()
846 struct batadv_nc_node *nc_node; in batadv_nc_get_nc_node() local
862 nc_node = batadv_nc_find_nc_node(orig_node, orig_neigh_node, in_coding); in batadv_nc_get_nc_node()
865 if (nc_node) in batadv_nc_get_nc_node()
868 nc_node = kzalloc(sizeof(*nc_node), GFP_ATOMIC); in batadv_nc_get_nc_node()
869 if (!nc_node) in batadv_nc_get_nc_node()
873 INIT_LIST_HEAD(&nc_node->list); in batadv_nc_get_nc_node()
874 kref_init(&nc_node->refcount); in batadv_nc_get_nc_node()
875 ether_addr_copy(nc_node->addr, orig_node->orig); in batadv_nc_get_nc_node()
877 nc_node->orig_node = orig_neigh_node; in batadv_nc_get_nc_node()
880 nc_node->addr, nc_node->orig_node->orig); in batadv_nc_get_nc_node()
883 kref_get(&nc_node->refcount); in batadv_nc_get_nc_node()
884 list_add_tail_rcu(&nc_node->list, list); in batadv_nc_get_nc_node()
889 return nc_node; in batadv_nc_get_nc_node()
1418 struct batadv_nc_node *nc_node; in batadv_nc_skb_dst_search() local
1422 list_for_each_entry_rcu(nc_node, &orig_node->in_coding_list, list) { in batadv_nc_skb_dst_search()
1426 ethhdr->h_source, nc_node); in batadv_nc_skb_dst_search()