Lines Matching refs:claim
64 struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data; in batadv_choose_claim() local
67 hash = jhash(&claim->addr, sizeof(claim->addr), hash); in batadv_choose_claim()
68 hash = jhash(&claim->vid, sizeof(claim->vid), hash); in batadv_choose_claim()
76 const struct batadv_bla_claim *claim = (struct batadv_bla_claim *)data; in batadv_choose_backbone_gw() local
79 hash = jhash(&claim->addr, sizeof(claim->addr), hash); in batadv_choose_backbone_gw()
80 hash = jhash(&claim->vid, sizeof(claim->vid), hash); in batadv_choose_backbone_gw()
130 static void batadv_claim_release(struct batadv_bla_claim *claim) in batadv_claim_release() argument
132 batadv_backbone_gw_free_ref(claim->backbone_gw); in batadv_claim_release()
133 kfree_rcu(claim, rcu); in batadv_claim_release()
137 static void batadv_claim_free_ref(struct batadv_bla_claim *claim) in batadv_claim_free_ref() argument
139 if (atomic_dec_and_test(&claim->refcount)) in batadv_claim_free_ref()
140 batadv_claim_release(claim); in batadv_claim_free_ref()
157 struct batadv_bla_claim *claim; in batadv_claim_hash_find() local
168 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_claim_hash_find()
169 if (!batadv_compare_claim(&claim->hash_entry, data)) in batadv_claim_hash_find()
172 if (!atomic_inc_not_zero(&claim->refcount)) in batadv_claim_hash_find()
175 claim_tmp = claim; in batadv_claim_hash_find()
234 struct batadv_bla_claim *claim; in batadv_bla_del_backbone_claims() local
247 hlist_for_each_entry_safe(claim, node_tmp, in batadv_bla_del_backbone_claims()
249 if (claim->backbone_gw != backbone_gw) in batadv_bla_del_backbone_claims()
252 batadv_claim_free_ref(claim); in batadv_bla_del_backbone_claims()
253 hlist_del_rcu(&claim->hash_entry); in batadv_bla_del_backbone_claims()
480 struct batadv_bla_claim *claim; in batadv_bla_answer_request() local
498 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_answer_request()
500 if (claim->backbone_gw != backbone_gw) in batadv_bla_answer_request()
503 batadv_bla_send_claim(bat_priv, claim->addr, claim->vid, in batadv_bla_answer_request()
574 struct batadv_bla_claim *claim; in batadv_bla_add_claim() local
580 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_add_claim()
583 if (!claim) { in batadv_bla_add_claim()
584 claim = kzalloc(sizeof(*claim), GFP_ATOMIC); in batadv_bla_add_claim()
585 if (!claim) in batadv_bla_add_claim()
588 ether_addr_copy(claim->addr, mac); in batadv_bla_add_claim()
589 claim->vid = vid; in batadv_bla_add_claim()
590 claim->lasttime = jiffies; in batadv_bla_add_claim()
591 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
593 atomic_set(&claim->refcount, 2); in batadv_bla_add_claim()
599 batadv_choose_claim, claim, in batadv_bla_add_claim()
600 &claim->hash_entry); in batadv_bla_add_claim()
604 kfree(claim); in batadv_bla_add_claim()
608 claim->lasttime = jiffies; in batadv_bla_add_claim()
609 if (claim->backbone_gw == backbone_gw) in batadv_bla_add_claim()
617 claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
618 batadv_backbone_gw_free_ref(claim->backbone_gw); in batadv_bla_add_claim()
622 claim->backbone_gw = backbone_gw; in batadv_bla_add_claim()
624 backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_add_claim()
628 batadv_claim_free_ref(claim); in batadv_bla_add_claim()
637 struct batadv_bla_claim search_claim, *claim; in batadv_bla_del_claim() local
641 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_del_claim()
642 if (!claim) in batadv_bla_del_claim()
649 batadv_choose_claim, claim); in batadv_bla_del_claim()
650 batadv_claim_free_ref(claim); /* reference from the hash is gone */ in batadv_bla_del_claim()
652 claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN); in batadv_bla_del_claim()
655 batadv_claim_free_ref(claim); in batadv_bla_del_claim()
1059 struct batadv_bla_claim *claim; in batadv_bla_purge_claims() local
1072 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_purge_claims()
1075 if (!batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_purge_claims()
1078 if (!batadv_has_timed_out(claim->lasttime, in batadv_bla_purge_claims()
1084 claim->addr, claim->vid); in batadv_bla_purge_claims()
1088 claim->backbone_gw->orig, in batadv_bla_purge_claims()
1089 claim->addr, claim->vid); in batadv_bla_purge_claims()
1474 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_rx() local
1494 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_rx()
1496 if (!claim) { in batadv_bla_rx()
1507 if (batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_rx()
1510 claim->lasttime = jiffies; in batadv_bla_rx()
1545 if (claim) in batadv_bla_rx()
1546 batadv_claim_free_ref(claim); in batadv_bla_rx()
1570 struct batadv_bla_claim search_claim, *claim = NULL; in batadv_bla_tx() local
1594 claim = batadv_claim_hash_find(bat_priv, &search_claim); in batadv_bla_tx()
1597 if (!claim) in batadv_bla_tx()
1601 if (batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_tx()
1633 if (claim) in batadv_bla_tx()
1634 batadv_claim_free_ref(claim); in batadv_bla_tx()
1643 struct batadv_bla_claim *claim; in batadv_bla_claim_table_seq_print_text() local
1665 hlist_for_each_entry_rcu(claim, head, hash_entry) { in batadv_bla_claim_table_seq_print_text()
1666 is_own = batadv_compare_eth(claim->backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
1669 claim->addr, BATADV_PRINT_VID(claim->vid), in batadv_bla_claim_table_seq_print_text()
1670 claim->backbone_gw->orig, in batadv_bla_claim_table_seq_print_text()
1672 claim->backbone_gw->crc); in batadv_bla_claim_table_seq_print_text()