Lines Matching refs:gw_node
65 struct batadv_gw_node *gw_node; in batadv_gw_node_release() local
67 gw_node = container_of(ref, struct batadv_gw_node, refcount); in batadv_gw_node_release()
69 batadv_orig_node_put(gw_node->orig_node); in batadv_gw_node_release()
70 kfree_rcu(gw_node, rcu); in batadv_gw_node_release()
82 struct batadv_gw_node *gw_node; in batadv_gw_get_selected_gw_node() local
85 gw_node = rcu_dereference(bat_priv->gw.curr_gw); in batadv_gw_get_selected_gw_node()
86 if (!gw_node) in batadv_gw_get_selected_gw_node()
89 if (!kref_get_unless_zero(&gw_node->refcount)) in batadv_gw_get_selected_gw_node()
90 gw_node = NULL; in batadv_gw_get_selected_gw_node()
94 return gw_node; in batadv_gw_get_selected_gw_node()
106 struct batadv_gw_node *gw_node; in batadv_gw_get_selected_orig() local
109 gw_node = batadv_gw_get_selected_gw_node(bat_priv); in batadv_gw_get_selected_orig()
110 if (!gw_node) in batadv_gw_get_selected_orig()
114 orig_node = gw_node->orig_node; in batadv_gw_get_selected_orig()
124 batadv_gw_node_put(gw_node); in batadv_gw_get_selected_orig()
329 struct batadv_gw_node *gw_node; in batadv_gw_node_add() local
336 gw_node = kzalloc(sizeof(*gw_node), GFP_ATOMIC); in batadv_gw_node_add()
337 if (!gw_node) in batadv_gw_node_add()
340 kref_init(&gw_node->refcount); in batadv_gw_node_add()
341 INIT_HLIST_NODE(&gw_node->list); in batadv_gw_node_add()
343 gw_node->orig_node = orig_node; in batadv_gw_node_add()
344 gw_node->bandwidth_down = ntohl(gateway->bandwidth_down); in batadv_gw_node_add()
345 gw_node->bandwidth_up = ntohl(gateway->bandwidth_up); in batadv_gw_node_add()
347 kref_get(&gw_node->refcount); in batadv_gw_node_add()
348 hlist_add_head_rcu(&gw_node->list, &bat_priv->gw.gateway_list); in batadv_gw_node_add()
360 batadv_gw_node_put(gw_node); in batadv_gw_node_add()
373 struct batadv_gw_node *gw_node_tmp, *gw_node = NULL; in batadv_gw_node_get() local
384 gw_node = gw_node_tmp; in batadv_gw_node_get()
389 return gw_node; in batadv_gw_node_get()
403 struct batadv_gw_node *gw_node, *curr_gw = NULL; in batadv_gw_node_update() local
406 gw_node = batadv_gw_node_get(bat_priv, orig_node); in batadv_gw_node_update()
407 if (!gw_node) { in batadv_gw_node_update()
414 if (gw_node->bandwidth_down == ntohl(gateway->bandwidth_down) && in batadv_gw_node_update()
415 gw_node->bandwidth_up == ntohl(gateway->bandwidth_up)) in batadv_gw_node_update()
421 gw_node->bandwidth_down / 10, in batadv_gw_node_update()
422 gw_node->bandwidth_down % 10, in batadv_gw_node_update()
423 gw_node->bandwidth_up / 10, in batadv_gw_node_update()
424 gw_node->bandwidth_up % 10, in batadv_gw_node_update()
430 gw_node->bandwidth_down = ntohl(gateway->bandwidth_down); in batadv_gw_node_update()
431 gw_node->bandwidth_up = ntohl(gateway->bandwidth_up); in batadv_gw_node_update()
442 if (!hlist_unhashed(&gw_node->list)) { in batadv_gw_node_update()
443 hlist_del_init_rcu(&gw_node->list); in batadv_gw_node_update()
444 batadv_gw_node_put(gw_node); in batadv_gw_node_update()
450 if (gw_node == curr_gw) in batadv_gw_node_update()
457 batadv_gw_node_put(gw_node); in batadv_gw_node_update()
482 struct batadv_gw_node *gw_node; in batadv_gw_node_free() local
486 hlist_for_each_entry_safe(gw_node, node_tmp, in batadv_gw_node_free()
488 hlist_del_init_rcu(&gw_node->list); in batadv_gw_node_free()
489 batadv_gw_node_put(gw_node); in batadv_gw_node_free()
689 struct batadv_gw_node *gw_node = NULL; in batadv_gw_out_of_range() local
707 gw_node = batadv_gw_node_get(bat_priv, orig_dst_node); in batadv_gw_out_of_range()
708 if (!gw_node) in batadv_gw_out_of_range()
765 batadv_gw_node_put(gw_node); in batadv_gw_out_of_range()