Lines Matching refs:claim

67 	struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data;  in batadv_choose_claim()  local
70 hash = jhash(&claim->addr, sizeof(claim->addr), hash); in batadv_choose_claim()
71 hash = jhash(&claim->vid, sizeof(claim->vid), hash); in batadv_choose_claim()
178 struct batadv_bla_claim *claim; in batadv_claim_release() local
181 claim = container_of(ref, struct batadv_bla_claim, refcount); in batadv_claim_release()
183 spin_lock_bh(&claim->backbone_lock); in batadv_claim_release()
184 old_backbone_gw = claim->backbone_gw; in batadv_claim_release()
185 claim->backbone_gw = NULL; in batadv_claim_release()
186 spin_unlock_bh(&claim->backbone_lock); in batadv_claim_release()
189 old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_claim_release()
194 kfree_rcu(claim, rcu); in batadv_claim_release()
201 static void batadv_claim_put(struct batadv_bla_claim *claim) in batadv_claim_put() argument
203 if (!claim) in batadv_claim_put()
206 kref_put(&claim->refcount, batadv_claim_release); in batadv_claim_put()
222 struct batadv_bla_claim *claim; in batadv_claim_hash_find() local
233 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_claim_hash_find()
234 if (!batadv_compare_claim(&claim->hash_entry, data)) in batadv_claim_hash_find()
237 if (!kref_get_unless_zero(&claim->refcount)) in batadv_claim_hash_find()
240 claim_tmp = claim; in batadv_claim_hash_find()
302 struct batadv_bla_claim *claim; in batadv_bla_del_backbone_claims() local
315 hlist_for_each_entry_safe(claim, node_tmp, in batadv_bla_del_backbone_claims()
317 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
320 batadv_claim_put(claim); in batadv_bla_del_backbone_claims()
321 hlist_del_rcu(&claim->hash_entry); in batadv_bla_del_backbone_claims()
595 struct batadv_bla_claim *claim; in batadv_bla_answer_request() local
614 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_answer_request()
616 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
619 batadv_bla_send_claim(bat_priv, claim->addr, claim->vid, in batadv_bla_answer_request()
690 struct batadv_bla_claim *claim; in batadv_bla_add_claim() local
697 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_add_claim()
700 if (!claim) { in batadv_bla_add_claim()
701 claim = kzalloc(sizeof(*claim), GFP_ATOMIC); in batadv_bla_add_claim()
702 if (!claim) in batadv_bla_add_claim()
705 ether_addr_copy(claim->addr, mac); in batadv_bla_add_claim()
706 spin_lock_init(&claim->backbone_lock); in batadv_bla_add_claim()
707 claim->vid = vid; in batadv_bla_add_claim()
708 claim->lasttime = jiffies; in batadv_bla_add_claim()
710 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
711 kref_init(&claim->refcount); in batadv_bla_add_claim()
717 kref_get(&claim->refcount); in batadv_bla_add_claim()
720 batadv_choose_claim, claim, in batadv_bla_add_claim()
721 &claim->hash_entry); in batadv_bla_add_claim()
725 kfree(claim); in batadv_bla_add_claim()
729 claim->lasttime = jiffies; in batadv_bla_add_claim()
730 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
743 spin_lock_bh(&claim->backbone_lock); in batadv_bla_add_claim()
744 old_backbone_gw = claim->backbone_gw; in batadv_bla_add_claim()
746 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
747 spin_unlock_bh(&claim->backbone_lock); in batadv_bla_add_claim()
752 old_backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
760 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
765 batadv_claim_put(claim); in batadv_bla_add_claim()
776 batadv_bla_claim_get_backbone_gw(struct batadv_bla_claim *claim) in batadv_bla_claim_get_backbone_gw() argument
780 spin_lock_bh(&claim->backbone_lock); in batadv_bla_claim_get_backbone_gw()
781 backbone_gw = claim->backbone_gw; in batadv_bla_claim_get_backbone_gw()
783 spin_unlock_bh(&claim->backbone_lock); in batadv_bla_claim_get_backbone_gw()
797 struct batadv_bla_claim search_claim, *claim; in batadv_bla_del_claim() local
803 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_del_claim()
804 if (!claim) in batadv_bla_del_claim()
812 batadv_choose_claim, claim); in batadv_bla_del_claim()
823 batadv_claim_put(claim); in batadv_bla_del_claim()
1276 struct batadv_bla_claim *claim; in batadv_bla_purge_claims() local
1289 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_purge_claims()
1290 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_purge_claims()
1298 if (!batadv_has_timed_out(claim->lasttime, in batadv_bla_purge_claims()
1308 claim->addr, claim->vid); in batadv_bla_purge_claims()
1312 claim->addr, claim->vid); in batadv_bla_purge_claims()
1898 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_rx() local
1945 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_rx()
1947 if (!claim) { in batadv_bla_rx()
1965 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_rx()
1972 claim->lasttime = jiffies; in batadv_bla_rx()
2007 batadv_claim_put(claim); in batadv_bla_rx()
2032 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_tx() local
2058 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_tx()
2061 if (!claim) in batadv_bla_tx()
2065 backbone_gw = batadv_bla_claim_get_backbone_gw(claim); in batadv_bla_tx()
2074 if (batadv_has_timed_out(claim->lasttime, 100)) { in batadv_bla_tx()
2112 batadv_claim_put(claim); in batadv_bla_tx()
2131 struct batadv_bla_claim *claim) in batadv_bla_claim_dump_entry() argument
2149 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_dump_entry()
2152 spin_lock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2153 backbone_crc = claim->backbone_gw->crc; in batadv_bla_claim_dump_entry()
2154 spin_unlock_bh(&claim->backbone_gw->crc_lock); in batadv_bla_claim_dump_entry()
2162 if (nla_put(msg, BATADV_ATTR_BLA_ADDRESS, ETH_ALEN, claim->addr) || in batadv_bla_claim_dump_entry()
2163 nla_put_u16(msg, BATADV_ATTR_BLA_VID, claim->vid) || in batadv_bla_claim_dump_entry()
2165 claim->backbone_gw->orig) || in batadv_bla_claim_dump_entry()
2199 struct batadv_bla_claim *claim; in batadv_bla_claim_dump_bucket() local
2206 hlist_for_each_entry(claim, &hash->table[bucket], hash_entry) { in batadv_bla_claim_dump_bucket()
2211 primary_if, claim); in batadv_bla_claim_dump_bucket()
2471 struct batadv_bla_claim *claim = NULL; in batadv_bla_check_claim() local
2486 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_check_claim()
2491 if (claim) { in batadv_bla_check_claim()
2492 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_check_claim()
2495 batadv_claim_put(claim); in batadv_bla_check_claim()