diff options
Diffstat (limited to 'net/batman-adv/network-coding.c')
| -rw-r--r-- | net/batman-adv/network-coding.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/net/batman-adv/network-coding.c b/net/batman-adv/network-coding.c index 293ef4ffd4e1..e3baf697a35c 100644 --- a/net/batman-adv/network-coding.c +++ b/net/batman-adv/network-coding.c @@ -856,14 +856,12 @@ batadv_nc_get_nc_node(struct batadv_priv *bat_priv,  	if (!nc_node)  		return NULL; -	kref_get(&orig_neigh_node->refcount); -  	/* Initialize nc_node */  	INIT_LIST_HEAD(&nc_node->list); +	kref_init(&nc_node->refcount);  	ether_addr_copy(nc_node->addr, orig_node->orig); +	kref_get(&orig_neigh_node->refcount);  	nc_node->orig_node = orig_neigh_node; -	kref_init(&nc_node->refcount); -	kref_get(&nc_node->refcount);  	/* Select ingoing or outgoing coding node */  	if (in_coding) { @@ -879,6 +877,7 @@ batadv_nc_get_nc_node(struct batadv_priv *bat_priv,  	/* Add nc_node to orig_node */  	spin_lock_bh(lock); +	kref_get(&nc_node->refcount);  	list_add_tail_rcu(&nc_node->list, list);  	spin_unlock_bh(lock); @@ -979,7 +978,6 @@ static struct batadv_nc_path *batadv_nc_get_path(struct batadv_priv *bat_priv,  	INIT_LIST_HEAD(&nc_path->packet_list);  	spin_lock_init(&nc_path->packet_list_lock);  	kref_init(&nc_path->refcount); -	kref_get(&nc_path->refcount);  	nc_path->last_valid = jiffies;  	ether_addr_copy(nc_path->next_hop, dst);  	ether_addr_copy(nc_path->prev_hop, src); @@ -989,6 +987,7 @@ static struct batadv_nc_path *batadv_nc_get_path(struct batadv_priv *bat_priv,  		   nc_path->next_hop);  	/* Add nc_path to hash table */ +	kref_get(&nc_path->refcount);  	hash_added = batadv_hash_add(hash, batadv_nc_hash_compare,  				     batadv_nc_hash_choose, &nc_path_key,  				     &nc_path->hash_entry); @@ -1882,6 +1881,7 @@ void batadv_nc_mesh_free(struct batadv_priv *bat_priv)  	batadv_hash_destroy(bat_priv->nc.decoding_hash);  } +#ifdef CONFIG_BATMAN_ADV_DEBUGFS  /**   * batadv_nc_nodes_seq_print_text - print the nc node information   * @seq: seq file to print on @@ -1981,3 +1981,4 @@ int batadv_nc_init_debugfs(struct batadv_priv *bat_priv)  out:  	return -ENOMEM;  } +#endif  |