• Home
  • Raw
  • Download

Lines Matching refs:info

37 	struct batadv_vis_info *info;  in batadv_free_info()  local
41 info = container_of(ref, struct batadv_vis_info, refcount); in batadv_free_info()
42 bat_priv = info->bat_priv; in batadv_free_info()
44 list_del_init(&info->send_list); in batadv_free_info()
46 list_for_each_entry_safe(entry, tmp, &info->recv_list, list) { in batadv_free_info()
52 kfree_skb(info->skb_packet); in batadv_free_info()
53 kfree(info); in batadv_free_info()
217 struct batadv_vis_info *info; in batadv_vis_seq_print_text_bucket() local
226 hlist_for_each_entry_rcu(info, head, hash_entry) { in batadv_vis_seq_print_text_bucket()
227 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_vis_seq_print_text_bucket()
280 struct batadv_vis_info *info) in batadv_send_list_add() argument
282 if (list_empty(&info->send_list)) { in batadv_send_list_add()
283 kref_get(&info->refcount); in batadv_send_list_add()
284 list_add_tail(&info->send_list, &bat_priv->vis.send_list); in batadv_send_list_add()
291 static void batadv_send_list_del(struct batadv_vis_info *info) in batadv_send_list_del() argument
293 if (!list_empty(&info->send_list)) { in batadv_send_list_del()
294 list_del_init(&info->send_list); in batadv_send_list_del()
295 kref_put(&info->refcount, batadv_free_info); in batadv_send_list_del()
342 struct batadv_vis_info *info, *old_info; in batadv_add_packet() local
390 info = kmalloc(sizeof(*info), GFP_ATOMIC); in batadv_add_packet()
391 if (!info) in batadv_add_packet()
395 info->skb_packet = dev_alloc_skb(len + ETH_HLEN + NET_IP_ALIGN); in batadv_add_packet()
396 if (!info->skb_packet) { in batadv_add_packet()
397 kfree(info); in batadv_add_packet()
400 skb_reserve(info->skb_packet, ETH_HLEN + NET_IP_ALIGN); in batadv_add_packet()
401 packet = (struct batadv_vis_packet *)skb_put(info->skb_packet, len); in batadv_add_packet()
403 kref_init(&info->refcount); in batadv_add_packet()
404 INIT_LIST_HEAD(&info->send_list); in batadv_add_packet()
405 INIT_LIST_HEAD(&info->recv_list); in batadv_add_packet()
406 info->first_seen = jiffies; in batadv_add_packet()
407 info->bat_priv = bat_priv; in batadv_add_packet()
422 batadv_recv_list_add(bat_priv, &info->recv_list, packet->sender_orig); in batadv_add_packet()
426 batadv_vis_info_choose, info, in batadv_add_packet()
427 &info->hash_entry); in batadv_add_packet()
430 kref_put(&info->refcount, batadv_free_info); in batadv_add_packet()
431 info = NULL; in batadv_add_packet()
434 return info; in batadv_add_packet()
442 struct batadv_vis_info *info; in batadv_receive_server_sync_packet() local
449 info = batadv_add_packet(bat_priv, vis_packet, vis_info_len, in batadv_receive_server_sync_packet()
451 if (!info) in batadv_receive_server_sync_packet()
458 batadv_send_list_add(bat_priv, info); in batadv_receive_server_sync_packet()
468 struct batadv_vis_info *info; in batadv_receive_client_update_packet() local
484 info = batadv_add_packet(bat_priv, vis_packet, vis_info_len, in batadv_receive_client_update_packet()
487 if (!info) in batadv_receive_client_update_packet()
491 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_receive_client_update_packet()
496 batadv_send_list_add(bat_priv, info); in batadv_receive_client_update_packet()
500 batadv_send_list_add(bat_priv, info); in batadv_receive_client_update_packet()
513 struct batadv_vis_info *info) in batadv_find_best_vis_server() argument
523 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_find_best_vis_server()
549 static bool batadv_vis_packet_full(const struct batadv_vis_info *info) in batadv_vis_packet_full() argument
554 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_vis_packet_full()
571 struct batadv_vis_info *info = bat_priv->vis.my_info; in batadv_generate_vis_packet() local
579 info->first_seen = jiffies; in batadv_generate_vis_packet()
580 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_generate_vis_packet()
588 skb_trim(info->skb_packet, sizeof(*packet)); in batadv_generate_vis_packet()
591 best_tq = batadv_find_best_vis_server(bat_priv, info); in batadv_generate_vis_packet()
616 packet_pos = skb_put(info->skb_packet, sizeof(*entry)); in batadv_generate_vis_packet()
628 if (batadv_vis_packet_full(info)) in batadv_generate_vis_packet()
642 packet_pos = skb_put(info->skb_packet, sizeof(*entry)); in batadv_generate_vis_packet()
649 if (batadv_vis_packet_full(info)) in batadv_generate_vis_packet()
671 struct batadv_vis_info *info; in batadv_purge_vis_packets() local
676 hlist_for_each_entry_safe(info, node_tmp, in batadv_purge_vis_packets()
679 if (info == bat_priv->vis.my_info) in batadv_purge_vis_packets()
682 if (batadv_has_timed_out(info->first_seen, in batadv_purge_vis_packets()
684 hlist_del(&info->hash_entry); in batadv_purge_vis_packets()
685 batadv_send_list_del(info); in batadv_purge_vis_packets()
686 kref_put(&info->refcount, batadv_free_info); in batadv_purge_vis_packets()
693 struct batadv_vis_info *info) in batadv_broadcast_vis_packet() argument
703 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_broadcast_vis_packet()
718 if (batadv_recv_list_is_in(bat_priv, &info->recv_list, in batadv_broadcast_vis_packet()
723 skb = skb_clone(info->skb_packet, GFP_ATOMIC); in batadv_broadcast_vis_packet()
735 struct batadv_vis_info *info) in batadv_unicast_vis_packet() argument
741 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_unicast_vis_packet()
747 skb = skb_clone(info->skb_packet, GFP_ATOMIC); in batadv_unicast_vis_packet()
761 struct batadv_vis_info *info) in batadv_send_vis_packet() argument
770 packet = (struct batadv_vis_packet *)info->skb_packet->data; in batadv_send_vis_packet()
780 batadv_broadcast_vis_packet(bat_priv, info); in batadv_send_vis_packet()
782 batadv_unicast_vis_packet(bat_priv, info); in batadv_send_vis_packet()
796 struct batadv_vis_info *info; in batadv_send_vis_packets() local
810 info = list_first_entry(&bat_priv->vis.send_list, in batadv_send_vis_packets()
811 typeof(*info), send_list); in batadv_send_vis_packets()
813 kref_get(&info->refcount); in batadv_send_vis_packets()
816 batadv_send_vis_packet(bat_priv, info); in batadv_send_vis_packets()
819 batadv_send_list_del(info); in batadv_send_vis_packets()
820 kref_put(&info->refcount, batadv_free_info); in batadv_send_vis_packets()
914 struct batadv_vis_info *info; in batadv_free_info_ref() local
916 info = container_of(node, struct batadv_vis_info, hash_entry); in batadv_free_info_ref()
917 batadv_send_list_del(info); in batadv_free_info_ref()
918 kref_put(&info->refcount, batadv_free_info); in batadv_free_info_ref()