Lines Matching defs:orig_ifinfo
296 struct batadv_orig_ifinfo *orig_ifinfo;
300 hlist_for_each_entry_rcu(orig_ifinfo, &orig_node->ifinfo_list, list) {
301 if (orig_ifinfo->if_outgoing != if_outgoing)
304 router = rcu_dereference(orig_ifinfo->router);
320 * Return: the requested orig_ifinfo or NULL if not found.
328 struct batadv_orig_ifinfo *tmp, *orig_ifinfo = NULL;
339 orig_ifinfo = tmp;
344 return orig_ifinfo;
348 * batadv_orig_ifinfo_new() - search and possibly create an orig_ifinfo object
352 * Return: NULL in case of failure or the orig_ifinfo object for the if_outgoing
362 struct batadv_orig_ifinfo *orig_ifinfo;
367 orig_ifinfo = batadv_orig_ifinfo_get(orig_node, if_outgoing);
368 if (orig_ifinfo)
371 orig_ifinfo = kzalloc(sizeof(*orig_ifinfo), GFP_ATOMIC);
372 if (!orig_ifinfo)
380 orig_ifinfo->batman_seqno_reset = reset_time;
381 orig_ifinfo->if_outgoing = if_outgoing;
382 INIT_HLIST_NODE(&orig_ifinfo->list);
383 kref_init(&orig_ifinfo->refcount);
385 kref_get(&orig_ifinfo->refcount);
386 hlist_add_head_rcu(&orig_ifinfo->list,
390 return orig_ifinfo;
810 * batadv_orig_ifinfo_release() - release orig_ifinfo from lists and queue for
812 * @ref: kref pointer of the orig_ifinfo
816 struct batadv_orig_ifinfo *orig_ifinfo;
819 orig_ifinfo = container_of(ref, struct batadv_orig_ifinfo, refcount);
821 if (orig_ifinfo->if_outgoing != BATADV_IF_DEFAULT)
822 batadv_hardif_put(orig_ifinfo->if_outgoing);
825 router = rcu_dereference_protected(orig_ifinfo->router, true);
829 kfree_rcu(orig_ifinfo, rcu);
860 struct batadv_orig_ifinfo *orig_ifinfo;
875 hlist_for_each_entry_safe(orig_ifinfo, node_tmp,
877 hlist_del_rcu(&orig_ifinfo->list);
878 batadv_orig_ifinfo_put(orig_ifinfo);
1069 struct batadv_orig_ifinfo *orig_ifinfo;
1077 hlist_for_each_entry_safe(orig_ifinfo, node_tmp,
1079 if_outgoing = orig_ifinfo->if_outgoing;
1097 hlist_del_rcu(&orig_ifinfo->list);
1098 batadv_orig_ifinfo_put(orig_ifinfo);
1099 if (orig_node->last_bonding_candidate == orig_ifinfo) {
1101 batadv_orig_ifinfo_put(orig_ifinfo);