|
@@ -257,8 +257,13 @@ void batadv_tvlv_container_register(struct batadv_priv *bat_priv,
|
|
|
spin_lock_bh(&bat_priv->tvlv.container_list_lock);
|
|
|
tvlv_old = batadv_tvlv_container_get(bat_priv, type, version);
|
|
|
batadv_tvlv_container_remove(bat_priv, tvlv_old);
|
|
|
+
|
|
|
+ kref_get(&tvlv_new->refcount);
|
|
|
hlist_add_head(&tvlv_new->list, &bat_priv->tvlv.container_list);
|
|
|
spin_unlock_bh(&bat_priv->tvlv.container_list_lock);
|
|
|
+
|
|
|
+ /* don't return reference to new tvlv_container */
|
|
|
+ batadv_tvlv_container_put(tvlv_new);
|
|
|
}
|
|
|
|
|
|
/**
|