Lines Matching refs:claim
81 struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data; in batadv_choose_claim() local
84 hash = jhash(&claim->addr, sizeof(claim->addr), hash); in batadv_choose_claim()
85 hash = jhash(&claim->vid, sizeof(claim->vid), hash); in batadv_choose_claim()
99 const struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data; in batadv_choose_backbone_gw() local
102 hash = jhash(&claim->addr, sizeof(claim->addr), hash); in batadv_choose_backbone_gw()
103 hash = jhash(&claim->vid, sizeof(claim->vid), hash); in batadv_choose_backbone_gw()
188 struct batadv_bla_claim *claim; in batadv_claim_release() local
191 claim = container_of(ref, struct batadv_bla_claim, refcount); in batadv_claim_release()
193 spin_lock_bh(&claim->backbone_lock); in batadv_claim_release()
194 old_backbone_gw = claim->backbone_gw; in batadv_claim_release()
195 claim->backbone_gw = NULL; in batadv_claim_release()
196 spin_unlock_bh(&claim->backbone_lock); in batadv_claim_release()
199 old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_claim_release()
204 kfree_rcu(claim, rcu); in batadv_claim_release()
211 static void batadv_claim_put(struct batadv_bla_claim *claim) in batadv_claim_put() argument
213 kref_put(&claim->refcount, batadv_claim_release); in batadv_claim_put()
229 struct batadv_bla_claim *claim; in batadv_claim_hash_find() local
240 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_claim_hash_find()
241 if (!batadv_compare_claim(&claim->hash_entry, data)) in batadv_claim_hash_find()
244 if (!kref_get_unless_zero(&claim->refcount)) in batadv_claim_hash_find()
247 claim_tmp = claim; in batadv_claim_hash_find()
309 struct batadv_bla_claim *claim; in batadv_bla_del_backbone_claims() local
322 hlist_for_each_entry_safe(claim, node_tmp, in batadv_bla_del_backbone_claims()
324 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
327 batadv_claim_put(claim); in batadv_bla_del_backbone_claims()
328 hlist_del_rcu(&claim->hash_entry); in batadv_bla_del_backbone_claims()
603 struct batadv_bla_claim *claim; in batadv_bla_answer_request() local
622 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_answer_request()
624 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
627 batadv_bla_send_claim(bat_priv, claim->addr, claim->vid, in batadv_bla_answer_request()
698 struct batadv_bla_claim *claim; in batadv_bla_add_claim() local
705 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_add_claim()
708 if (!claim) { in batadv_bla_add_claim()
709 claim = kzalloc(sizeof(*claim), GFP_ATOMIC); in batadv_bla_add_claim()
710 if (!claim) in batadv_bla_add_claim()
713 ether_addr_copy(claim->addr, mac); in batadv_bla_add_claim()
714 spin_lock_init(&claim->backbone_lock); in batadv_bla_add_claim()
715 claim->vid = vid; in batadv_bla_add_claim()
716 claim->lasttime = jiffies; in batadv_bla_add_claim()
718 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
719 kref_init(&claim->refcount); in batadv_bla_add_claim()
725 kref_get(&claim->refcount); in batadv_bla_add_claim()
728 batadv_choose_claim, claim, in batadv_bla_add_claim()
729 &claim->hash_entry); in batadv_bla_add_claim()
733 kfree(claim); in batadv_bla_add_claim()
737 claim->lasttime = jiffies; in batadv_bla_add_claim()
738 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
751 spin_lock_bh(&claim->backbone_lock); in batadv_bla_add_claim()
752 old_backbone_gw = claim->backbone_gw; in batadv_bla_add_claim()
754 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
755 spin_unlock_bh(&claim->backbone_lock); in batadv_bla_add_claim()
760 old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
768 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
773 batadv_claim_put(claim); in batadv_bla_add_claim()
784 batadv_bla_claim_get_backbone_gw(struct batadv_bla_claim *claim) in batadv_bla_claim_get_backbone_gw() argument
788 spin_lock_bh(&claim->backbone_lock); in batadv_bla_claim_get_backbone_gw()
789 backbone_gw = claim->backbone_gw; in batadv_bla_claim_get_backbone_gw()
791 spin_unlock_bh(&claim->backbone_lock); in batadv_bla_claim_get_backbone_gw()
805 struct batadv_bla_claim search_claim, *claim; in batadv_bla_del_claim() local
809 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_del_claim()
810 if (!claim) in batadv_bla_del_claim()
817 batadv_choose_claim, claim); in batadv_bla_del_claim()
818 batadv_claim_put(claim); /* reference from the hash is gone */ in batadv_bla_del_claim()
821 batadv_claim_put(claim); in batadv_bla_del_claim()
1274 struct batadv_bla_claim *claim; in batadv_bla_purge_claims() local
1287 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_purge_claims()
1288 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_purge_claims()
1296 if (!batadv_has_timed_out(claim->lasttime, in batadv_bla_purge_claims()
1306 claim->addr, claim->vid); in batadv_bla_purge_claims()
1310 claim->addr, claim->vid); in batadv_bla_purge_claims()
1831 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_rx() local
1855 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_rx()
1857 if (!claim) { in batadv_bla_rx()
1875 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_rx()
1882 claim->lasttime = jiffies; in batadv_bla_rx()
1917 if (claim) in batadv_bla_rx()
1918 batadv_claim_put(claim); in batadv_bla_rx()
1943 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_tx() local
1969 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_tx()
1972 if (!claim) in batadv_bla_tx()
1976 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_tx()
1985 if (batadv_has_timed_out(claim->lasttime, 100)) { in batadv_bla_tx()
2024 if (claim) in batadv_bla_tx()
2025 batadv_claim_put(claim); in batadv_bla_tx()
2043 struct batadv_bla_claim *claim; in batadv_bla_claim_table_seq_print_text() local
2066 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_claim_table_seq_print_text()
2067 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_claim_table_seq_print_text()
2076 claim->addr, batadv_print_vid(claim->vid), in batadv_bla_claim_table_seq_print_text()
2106 struct batadv_bla_claim *claim) in batadv_bla_claim_dump_entry() argument
2121 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_dump_entry()
2124 spin_lock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2125 backbone_crc = claim->backbone_gw->crc; in batadv_bla_claim_dump_entry()
2126 spin_unlock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2134 if (nla_put(msg, BATADV_ATTR_BLA_ADDRESS, ETH_ALEN, claim->addr) || in batadv_bla_claim_dump_entry()
2135 nla_put_u16(msg, BATADV_ATTR_BLA_VID, claim->vid) || in batadv_bla_claim_dump_entry()
2137 claim->backbone_gw->orig) || in batadv_bla_claim_dump_entry()
2168 struct batadv_bla_claim *claim; in batadv_bla_claim_dump_bucket() local
2173 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_claim_dump_bucket()
2178 primary_if, claim); in batadv_bla_claim_dump_bucket()
2507 struct batadv_bla_claim *claim = NULL; in batadv_bla_check_claim() local
2522 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_check_claim()
2527 if (claim) { in batadv_bla_check_claim()
2528 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_check_claim()
2531 batadv_claim_put(claim); in batadv_bla_check_claim()