forked from luck/tmp_suning_uos_patched
batman-adv: Use kref_get for batadv_nc_get_nc_node
batadv_nc_get_nc_node requires that the caller already has a valid reference for orig_neigh_node. It is therefore not possible that it has an reference counter of 0 and was still given to this function The kref_get function instead WARNs (with debug information) when the reference counter would still be 0. This makes a bug in batman-adv better visible because kref_get_unless_zero would have ignored this problem. Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Antonio Quartulli <a@unstable.cc>
This commit is contained in:
parent
c9dad805e9
commit
0de32ceee1
|
@ -856,8 +856,7 @@ batadv_nc_get_nc_node(struct batadv_priv *bat_priv,
|
|||
if (!nc_node)
|
||||
return NULL;
|
||||
|
||||
if (!kref_get_unless_zero(&orig_neigh_node->refcount))
|
||||
goto free;
|
||||
kref_get(&orig_neigh_node->refcount);
|
||||
|
||||
/* Initialize nc_node */
|
||||
INIT_LIST_HEAD(&nc_node->list);
|
||||
|
@ -884,10 +883,6 @@ batadv_nc_get_nc_node(struct batadv_priv *bat_priv,
|
|||
spin_unlock_bh(lock);
|
||||
|
||||
return nc_node;
|
||||
|
||||
free:
|
||||
kfree(nc_node);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user