|
@@ -149,6 +149,8 @@ static void batadv_tt_orig_list_entry_free_rcu(struct rcu_head *rcu)
|
|
static void
|
|
static void
|
|
batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry)
|
|
batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry)
|
|
{
|
|
{
|
|
|
|
+ /* to avoid race conditions, immediately decrease the tt counter */
|
|
|
|
+ atomic_dec(&orig_entry->orig_node->tt_size);
|
|
call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
|
|
call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
|
|
}
|
|
}
|
|
|
|
|