Lines Matching refs:orig_ifinfo
296 struct batadv_orig_ifinfo *orig_ifinfo; in batadv_orig_router_get() local
300 hlist_for_each_entry_rcu(orig_ifinfo, &orig_node->ifinfo_list, list) { in batadv_orig_router_get()
301 if (orig_ifinfo->if_outgoing != if_outgoing) in batadv_orig_router_get()
304 router = rcu_dereference(orig_ifinfo->router); in batadv_orig_router_get()
328 struct batadv_orig_ifinfo *tmp, *orig_ifinfo = NULL; in batadv_orig_ifinfo_get() local
339 orig_ifinfo = tmp; in batadv_orig_ifinfo_get()
344 return orig_ifinfo; in batadv_orig_ifinfo_get()
362 struct batadv_orig_ifinfo *orig_ifinfo; in batadv_orig_ifinfo_new() local
367 orig_ifinfo = batadv_orig_ifinfo_get(orig_node, if_outgoing); in batadv_orig_ifinfo_new()
368 if (orig_ifinfo) in batadv_orig_ifinfo_new()
371 orig_ifinfo = kzalloc(sizeof(*orig_ifinfo), GFP_ATOMIC); in batadv_orig_ifinfo_new()
372 if (!orig_ifinfo) in batadv_orig_ifinfo_new()
380 orig_ifinfo->batman_seqno_reset = reset_time; in batadv_orig_ifinfo_new()
381 orig_ifinfo->if_outgoing = if_outgoing; in batadv_orig_ifinfo_new()
382 INIT_HLIST_NODE(&orig_ifinfo->list); in batadv_orig_ifinfo_new()
383 kref_init(&orig_ifinfo->refcount); in batadv_orig_ifinfo_new()
385 kref_get(&orig_ifinfo->refcount); in batadv_orig_ifinfo_new()
386 hlist_add_head_rcu(&orig_ifinfo->list, in batadv_orig_ifinfo_new()
390 return orig_ifinfo; in batadv_orig_ifinfo_new()
816 struct batadv_orig_ifinfo *orig_ifinfo; in batadv_orig_ifinfo_release() local
819 orig_ifinfo = container_of(ref, struct batadv_orig_ifinfo, refcount); in batadv_orig_ifinfo_release()
821 if (orig_ifinfo->if_outgoing != BATADV_IF_DEFAULT) in batadv_orig_ifinfo_release()
822 batadv_hardif_put(orig_ifinfo->if_outgoing); in batadv_orig_ifinfo_release()
825 router = rcu_dereference_protected(orig_ifinfo->router, true); in batadv_orig_ifinfo_release()
829 kfree_rcu(orig_ifinfo, rcu); in batadv_orig_ifinfo_release()
860 struct batadv_orig_ifinfo *orig_ifinfo; in batadv_orig_node_release() local
875 hlist_for_each_entry_safe(orig_ifinfo, node_tmp, in batadv_orig_node_release()
877 hlist_del_rcu(&orig_ifinfo->list); in batadv_orig_node_release()
878 batadv_orig_ifinfo_put(orig_ifinfo); in batadv_orig_node_release()
1069 struct batadv_orig_ifinfo *orig_ifinfo; in batadv_purge_orig_ifinfo() local
1077 hlist_for_each_entry_safe(orig_ifinfo, node_tmp, in batadv_purge_orig_ifinfo()
1079 if_outgoing = orig_ifinfo->if_outgoing; in batadv_purge_orig_ifinfo()
1097 hlist_del_rcu(&orig_ifinfo->list); in batadv_purge_orig_ifinfo()
1098 batadv_orig_ifinfo_put(orig_ifinfo); in batadv_purge_orig_ifinfo()
1099 if (orig_node->last_bonding_candidate == orig_ifinfo) { in batadv_purge_orig_ifinfo()
1101 batadv_orig_ifinfo_put(orig_ifinfo); in batadv_purge_orig_ifinfo()