Lines Matching refs:tt_global_entry
64 batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry);
186 struct batadv_tt_global_entry *tt_global_entry = NULL; in batadv_tt_global_hash_find() local
191 tt_global_entry = container_of(tt_common_entry, in batadv_tt_global_hash_find()
194 return tt_global_entry; in batadv_tt_global_hash_find()
210 batadv_tt_global_entry_free_ref(struct batadv_tt_global_entry *tt_global_entry) in batadv_tt_global_entry_free_ref() argument
212 if (atomic_dec_and_test(&tt_global_entry->common.refcount)) { in batadv_tt_global_entry_free_ref()
213 batadv_tt_global_del_orig_list(tt_global_entry); in batadv_tt_global_entry_free_ref()
214 kfree_rcu(tt_global_entry, common.rcu); in batadv_tt_global_entry_free_ref()
230 struct batadv_tt_global_entry *tt_global_entry; in batadv_tt_global_hash_count() local
233 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_tt_global_hash_count()
234 if (!tt_global_entry) in batadv_tt_global_hash_count()
237 count = atomic_read(&tt_global_entry->orig_list_count); in batadv_tt_global_hash_count()
238 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_tt_global_hash_count()
1351 struct batadv_tt_global_entry *tt_global_entry; in batadv_tt_global_add() local
1362 tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr, vid); in batadv_tt_global_add()
1373 if (!tt_global_entry) { in batadv_tt_global_add()
1374 tt_global_entry = kzalloc(sizeof(*tt_global_entry), GFP_ATOMIC); in batadv_tt_global_add()
1375 if (!tt_global_entry) in batadv_tt_global_add()
1378 common = &tt_global_entry->common; in batadv_tt_global_add()
1383 tt_global_entry->roam_at = 0; in batadv_tt_global_add()
1389 tt_global_entry->roam_at = jiffies; in batadv_tt_global_add()
1393 INIT_HLIST_HEAD(&tt_global_entry->orig_list); in batadv_tt_global_add()
1394 atomic_set(&tt_global_entry->orig_list_count, 0); in batadv_tt_global_add()
1395 spin_lock_init(&tt_global_entry->list_lock); in batadv_tt_global_add()
1404 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_tt_global_add()
1408 common = &tt_global_entry->common; in batadv_tt_global_add()
1422 if (batadv_tt_global_entry_has_orig(tt_global_entry, in batadv_tt_global_add()
1425 batadv_tt_global_del_orig_list(tt_global_entry); in batadv_tt_global_add()
1436 batadv_tt_global_del_orig_list(tt_global_entry); in batadv_tt_global_add()
1444 tt_global_entry->common.flags |= flags; in batadv_tt_global_add()
1454 batadv_tt_global_del_orig_list(tt_global_entry); in batadv_tt_global_add()
1456 tt_global_entry->roam_at = 0; in batadv_tt_global_add()
1461 batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn); in batadv_tt_global_add()
1480 tt_global_entry->common.flags |= local_flags & BATADV_TT_CLIENT_WIFI; in batadv_tt_global_add()
1486 tt_global_entry->common.flags &= ~BATADV_TT_CLIENT_ROAM; in batadv_tt_global_add()
1489 if (tt_global_entry) in batadv_tt_global_add()
1490 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_tt_global_add()
1506 struct batadv_tt_global_entry *tt_global_entry) in batadv_transtable_best_orig() argument
1513 head = &tt_global_entry->orig_list; in batadv_transtable_best_orig()
1552 struct batadv_tt_global_entry *tt_global_entry, in batadv_tt_global_print_entry() argument
1562 tt_common_entry = &tt_global_entry->common; in batadv_tt_global_print_entry()
1565 best_entry = batadv_transtable_best_orig(bat_priv, tt_global_entry); in batadv_tt_global_print_entry()
1580 '*', tt_global_entry->common.addr, in batadv_tt_global_print_entry()
1581 BATADV_PRINT_VID(tt_global_entry->common.vid), in batadv_tt_global_print_entry()
1593 head = &tt_global_entry->orig_list; in batadv_tt_global_print_entry()
1612 '+', tt_global_entry->common.addr, in batadv_tt_global_print_entry()
1613 BATADV_PRINT_VID(tt_global_entry->common.vid), in batadv_tt_global_print_entry()
1678 _batadv_tt_global_del_orig_entry(struct batadv_tt_global_entry *tt_global_entry, in _batadv_tt_global_del_orig_entry() argument
1681 lockdep_assert_held(&tt_global_entry->list_lock); in _batadv_tt_global_del_orig_entry()
1684 tt_global_entry->common.vid); in _batadv_tt_global_del_orig_entry()
1685 atomic_dec(&tt_global_entry->orig_list_count); in _batadv_tt_global_del_orig_entry()
1695 batadv_tt_global_del_orig_list(struct batadv_tt_global_entry *tt_global_entry) in batadv_tt_global_del_orig_list() argument
1701 spin_lock_bh(&tt_global_entry->list_lock); in batadv_tt_global_del_orig_list()
1702 head = &tt_global_entry->orig_list; in batadv_tt_global_del_orig_list()
1704 _batadv_tt_global_del_orig_entry(tt_global_entry, orig_entry); in batadv_tt_global_del_orig_list()
1705 spin_unlock_bh(&tt_global_entry->list_lock); in batadv_tt_global_del_orig_list()
1720 struct batadv_tt_global_entry *tt_global_entry, in batadv_tt_global_del_orig_node() argument
1729 spin_lock_bh(&tt_global_entry->list_lock); in batadv_tt_global_del_orig_node()
1730 head = &tt_global_entry->orig_list; in batadv_tt_global_del_orig_node()
1733 vid = tt_global_entry->common.vid; in batadv_tt_global_del_orig_node()
1737 tt_global_entry->common.addr, in batadv_tt_global_del_orig_node()
1739 _batadv_tt_global_del_orig_entry(tt_global_entry, in batadv_tt_global_del_orig_node()
1743 spin_unlock_bh(&tt_global_entry->list_lock); in batadv_tt_global_del_orig_node()
1752 struct batadv_tt_global_entry *tt_global_entry, in batadv_tt_global_del_roaming() argument
1765 head = &tt_global_entry->orig_list; in batadv_tt_global_del_roaming()
1776 tt_global_entry->common.flags |= BATADV_TT_CLIENT_ROAM; in batadv_tt_global_del_roaming()
1777 tt_global_entry->roam_at = jiffies; in batadv_tt_global_del_roaming()
1782 batadv_tt_global_del_orig_node(bat_priv, tt_global_entry, in batadv_tt_global_del_roaming()
1801 struct batadv_tt_global_entry *tt_global_entry; in batadv_tt_global_del() local
1804 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_tt_global_del()
1805 if (!tt_global_entry) in batadv_tt_global_del()
1809 batadv_tt_global_del_orig_node(bat_priv, tt_global_entry, in batadv_tt_global_del()
1812 if (hlist_empty(&tt_global_entry->orig_list)) in batadv_tt_global_del()
1813 batadv_tt_global_free(bat_priv, tt_global_entry, in batadv_tt_global_del()
1833 tt_global_entry->common.addr, in batadv_tt_global_del()
1837 batadv_tt_global_del_orig_list(tt_global_entry); in batadv_tt_global_del()
1838 batadv_tt_global_free(bat_priv, tt_global_entry, message); in batadv_tt_global_del()
1841 batadv_tt_global_del_roaming(bat_priv, tt_global_entry, in batadv_tt_global_del()
1845 if (tt_global_entry) in batadv_tt_global_del()
1846 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_tt_global_del()
2009 struct batadv_tt_global_entry *tt_global_entry) in _batadv_is_ap_isolated() argument
2014 tt_global_entry->common.flags & BATADV_TT_CLIENT_WIFI) in _batadv_is_ap_isolated()
2019 tt_global_entry->common.flags & BATADV_TT_CLIENT_ISOLA) in _batadv_is_ap_isolated()
2045 struct batadv_tt_global_entry *tt_global_entry = NULL; in batadv_transtable_search() local
2056 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_transtable_search()
2057 if (!tt_global_entry) in batadv_transtable_search()
2064 _batadv_is_ap_isolated(tt_local_entry, tt_global_entry)) in batadv_transtable_search()
2068 best_entry = batadv_transtable_best_orig(bat_priv, tt_global_entry); in batadv_transtable_search()
2077 if (tt_global_entry) in batadv_transtable_search()
2078 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_transtable_search()
2340 const struct batadv_tt_global_entry *tt_global_entry; in batadv_tt_global_valid() local
2347 tt_global_entry = container_of(tt_common_entry, in batadv_tt_global_valid()
2351 return batadv_tt_global_entry_has_orig(tt_global_entry, orig_node); in batadv_tt_global_valid()
3323 struct batadv_tt_global_entry *tt_global_entry = NULL; in batadv_is_ap_isolated() local
3335 tt_global_entry = batadv_tt_global_hash_find(bat_priv, src, vid); in batadv_is_ap_isolated()
3336 if (!tt_global_entry) in batadv_is_ap_isolated()
3339 if (!_batadv_is_ap_isolated(tt_local_entry, tt_global_entry)) in batadv_is_ap_isolated()
3347 if (tt_global_entry) in batadv_is_ap_isolated()
3348 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_is_ap_isolated()
3453 struct batadv_tt_global_entry *tt_global_entry; in batadv_tt_global_client_is_roaming() local
3456 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr, vid); in batadv_tt_global_client_is_roaming()
3457 if (!tt_global_entry) in batadv_tt_global_client_is_roaming()
3460 ret = tt_global_entry->common.flags & BATADV_TT_CLIENT_ROAM; in batadv_tt_global_client_is_roaming()
3461 batadv_tt_global_entry_free_ref(tt_global_entry); in batadv_tt_global_client_is_roaming()