Lines Matching refs:orig_entry

411  * batadv_tt_orig_list_entry_free_rcu() - free the orig_entry
412 * @rcu: rcu pointer of the orig_entry
416 struct batadv_tt_orig_list_entry *orig_entry;
418 orig_entry = container_of(rcu, struct batadv_tt_orig_list_entry, rcu);
420 kmem_cache_free(batadv_tt_orig_cache, orig_entry);
430 struct batadv_tt_orig_list_entry *orig_entry;
432 orig_entry = container_of(ref, struct batadv_tt_orig_list_entry,
435 batadv_orig_node_put(orig_entry->orig_node);
436 call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
442 * @orig_entry: tt orig entry to be free'd
445 batadv_tt_orig_list_entry_put(struct batadv_tt_orig_list_entry *orig_entry)
447 if (!orig_entry)
450 kref_put(&orig_entry->refcount, batadv_tt_orig_list_entry_release);
646 struct batadv_tt_orig_list_entry *orig_entry;
768 hlist_for_each_entry_rcu(orig_entry, head, list) {
771 orig_entry->orig_node);
1444 struct batadv_tt_orig_list_entry *tmp_orig_entry, *orig_entry = NULL;
1455 orig_entry = tmp_orig_entry;
1460 return orig_entry;
1480 struct batadv_tt_orig_list_entry *orig_entry;
1483 orig_entry = batadv_tt_global_orig_entry_find(entry, orig_node);
1484 if (orig_entry) {
1488 *flags = orig_entry->flags;
1490 batadv_tt_orig_list_entry_put(orig_entry);
1506 struct batadv_tt_orig_list_entry *orig_entry;
1512 hlist_for_each_entry_rcu(orig_entry, head, list)
1513 flags |= orig_entry->flags;
1532 struct batadv_tt_orig_list_entry *orig_entry;
1536 orig_entry = batadv_tt_global_orig_entry_find(tt_global, orig_node);
1537 if (orig_entry) {
1541 orig_entry->ttvn = ttvn;
1542 orig_entry->flags = flags;
1546 orig_entry = kmem_cache_zalloc(batadv_tt_orig_cache, GFP_ATOMIC);
1547 if (!orig_entry)
1550 INIT_HLIST_NODE(&orig_entry->list);
1553 orig_entry->orig_node = orig_node;
1554 orig_entry->ttvn = ttvn;
1555 orig_entry->flags = flags;
1556 kref_init(&orig_entry->refcount);
1558 kref_get(&orig_entry->refcount);
1559 hlist_add_head_rcu(&orig_entry->list,
1566 batadv_tt_orig_list_entry_put(orig_entry);
1665 * originator list and add the new one orig_entry
1709 /* add the new orig_entry (if needed) or update it */
1759 struct batadv_tt_orig_list_entry *orig_entry, *best_entry = NULL;
1762 hlist_for_each_entry_rcu(orig_entry, head, list) {
1763 router = batadv_orig_router_get(orig_entry->orig_node,
1778 best_entry = orig_entry;
1866 struct batadv_tt_orig_list_entry *orig_entry, *best_entry;
1876 hlist_for_each_entry_rcu(orig_entry, head, list) {
1880 best = (orig_entry == best_entry);
1883 orig_entry, best)) {
1999 * _batadv_tt_global_del_orig_entry() - remove and free an orig_entry
2000 * @tt_global_entry: the global entry to remove the orig_entry from
2001 * @orig_entry: the orig entry to remove and free
2003 * Remove an orig_entry from its list in the given tt_global_entry and
2004 * free this orig_entry afterwards.
2006 * Caller must hold tt_global_entry->list_lock and ensure orig_entry->list is
2011 struct batadv_tt_orig_list_entry *orig_entry)
2015 batadv_tt_global_size_dec(orig_entry->orig_node,
2018 /* requires holding tt_global_entry->list_lock and orig_entry->list
2021 hlist_del_rcu(&orig_entry->list);
2022 batadv_tt_orig_list_entry_put(orig_entry);
2031 struct batadv_tt_orig_list_entry *orig_entry;
2035 hlist_for_each_entry_safe(orig_entry, safe, head, list)
2036 _batadv_tt_global_del_orig_entry(tt_global_entry, orig_entry);
2047 * Remove the given orig_node and its according orig_entry from the given
2058 struct batadv_tt_orig_list_entry *orig_entry;
2063 hlist_for_each_entry_safe(orig_entry, safe, head, list) {
2064 if (orig_entry->orig_node == orig_node) {
2072 orig_entry);
2090 struct batadv_tt_orig_list_entry *orig_entry;
2098 hlist_for_each_entry_rcu(orig_entry, head, list) {
2099 if (orig_entry->orig_node != orig_node) {