|
@@ -135,8 +135,8 @@ static void batadv_gw_select(struct batadv_priv *bat_priv,
|
|
|
|
|
|
spin_lock_bh(&bat_priv->gw.list_lock);
|
|
|
|
|
|
- if (new_gw_node && !kref_get_unless_zero(&new_gw_node->refcount))
|
|
|
- new_gw_node = NULL;
|
|
|
+ if (new_gw_node)
|
|
|
+ kref_get(&new_gw_node->refcount);
|
|
|
|
|
|
curr_gw_node = rcu_dereference_protected(bat_priv->gw.curr_gw, 1);
|
|
|
rcu_assign_pointer(bat_priv->gw.curr_gw, new_gw_node);
|