Lines Matching refs:gw_node

64 	struct batadv_gw_node *gw_node;  in batadv_gw_node_release()  local
66 gw_node = container_of(ref, struct batadv_gw_node, refcount); in batadv_gw_node_release()
68 batadv_orig_node_put(gw_node->orig_node); in batadv_gw_node_release()
69 kfree_rcu(gw_node, rcu); in batadv_gw_node_release()
81 struct batadv_gw_node *gw_node; in batadv_gw_get_selected_gw_node() local
84 gw_node = rcu_dereference(bat_priv->gw.curr_gw); in batadv_gw_get_selected_gw_node()
85 if (!gw_node) in batadv_gw_get_selected_gw_node()
88 if (!kref_get_unless_zero(&gw_node->refcount)) in batadv_gw_get_selected_gw_node()
89 gw_node = NULL; in batadv_gw_get_selected_gw_node()
93 return gw_node; in batadv_gw_get_selected_gw_node()
105 struct batadv_gw_node *gw_node; in batadv_gw_get_selected_orig() local
108 gw_node = batadv_gw_get_selected_gw_node(bat_priv); in batadv_gw_get_selected_orig()
109 if (!gw_node) in batadv_gw_get_selected_orig()
113 orig_node = gw_node->orig_node; in batadv_gw_get_selected_orig()
123 batadv_gw_node_put(gw_node); in batadv_gw_get_selected_orig()
328 struct batadv_gw_node *gw_node; in batadv_gw_node_add() local
335 gw_node = kzalloc(sizeof(*gw_node), GFP_ATOMIC); in batadv_gw_node_add()
336 if (!gw_node) in batadv_gw_node_add()
339 kref_init(&gw_node->refcount); in batadv_gw_node_add()
340 INIT_HLIST_NODE(&gw_node->list); in batadv_gw_node_add()
342 gw_node->orig_node = orig_node; in batadv_gw_node_add()
343 gw_node->bandwidth_down = ntohl(gateway->bandwidth_down); in batadv_gw_node_add()
344 gw_node->bandwidth_up = ntohl(gateway->bandwidth_up); in batadv_gw_node_add()
346 kref_get(&gw_node->refcount); in batadv_gw_node_add()
347 hlist_add_head_rcu(&gw_node->list, &bat_priv->gw.gateway_list); in batadv_gw_node_add()
359 batadv_gw_node_put(gw_node); in batadv_gw_node_add()
372 struct batadv_gw_node *gw_node_tmp, *gw_node = NULL; in batadv_gw_node_get() local
383 gw_node = gw_node_tmp; in batadv_gw_node_get()
388 return gw_node; in batadv_gw_node_get()
402 struct batadv_gw_node *gw_node, *curr_gw = NULL; in batadv_gw_node_update() local
405 gw_node = batadv_gw_node_get(bat_priv, orig_node); in batadv_gw_node_update()
406 if (!gw_node) { in batadv_gw_node_update()
413 if (gw_node->bandwidth_down == ntohl(gateway->bandwidth_down) && in batadv_gw_node_update()
414 gw_node->bandwidth_up == ntohl(gateway->bandwidth_up)) in batadv_gw_node_update()
420 gw_node->bandwidth_down / 10, in batadv_gw_node_update()
421 gw_node->bandwidth_down % 10, in batadv_gw_node_update()
422 gw_node->bandwidth_up / 10, in batadv_gw_node_update()
423 gw_node->bandwidth_up % 10, in batadv_gw_node_update()
429 gw_node->bandwidth_down = ntohl(gateway->bandwidth_down); in batadv_gw_node_update()
430 gw_node->bandwidth_up = ntohl(gateway->bandwidth_up); in batadv_gw_node_update()
441 if (!hlist_unhashed(&gw_node->list)) { in batadv_gw_node_update()
442 hlist_del_init_rcu(&gw_node->list); in batadv_gw_node_update()
443 batadv_gw_node_put(gw_node); in batadv_gw_node_update()
449 if (gw_node == curr_gw) in batadv_gw_node_update()
456 batadv_gw_node_put(gw_node); in batadv_gw_node_update()
481 struct batadv_gw_node *gw_node; in batadv_gw_node_free() local
485 hlist_for_each_entry_safe(gw_node, node_tmp, in batadv_gw_node_free()
487 hlist_del_init_rcu(&gw_node->list); in batadv_gw_node_free()
488 batadv_gw_node_put(gw_node); in batadv_gw_node_free()
679 struct batadv_gw_node *gw_node = NULL; in batadv_gw_out_of_range() local
697 gw_node = batadv_gw_node_get(bat_priv, orig_dst_node); in batadv_gw_out_of_range()
698 if (!gw_node) in batadv_gw_out_of_range()
755 batadv_gw_node_put(gw_node); in batadv_gw_out_of_range()