diff options
Diffstat (limited to 'net/batman-adv/translation-table.c')
-rw-r--r-- | net/batman-adv/translation-table.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index e4f27a872c9c..c673b58f3ee1 100644 --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c | |||
@@ -149,6 +149,8 @@ static void batadv_tt_orig_list_entry_free_rcu(struct rcu_head *rcu) | |||
149 | static void | 149 | static void |
150 | batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry) | 150 | batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry) |
151 | { | 151 | { |
152 | /* to avoid race conditions, immediately decrease the tt counter */ | ||
153 | atomic_dec(&orig_entry->orig_node->tt_size); | ||
152 | call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu); | 154 | call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu); |
153 | } | 155 | } |
154 | 156 | ||