|
|
@@ -117,25 +117,17 @@ batadv_tt_local_entry_free_ref(struct batadv_tt_local_entry *tt_local_entry)
|
|
|
kfree_rcu(tt_local_entry, common.rcu);
|
|
|
}
|
|
|
|
|
|
-static void batadv_tt_global_entry_free_rcu(struct rcu_head *rcu)
|
|
|
-{
|
|
|
- struct batadv_tt_common_entry *tt_common_entry;
|
|
|
- struct batadv_tt_global_entry *tt_global_entry;
|
|
|
-
|
|
|
- tt_common_entry = container_of(rcu, struct batadv_tt_common_entry, rcu);
|
|
|
- tt_global_entry = container_of(tt_common_entry,
|
|
|
- struct batadv_tt_global_entry, common);
|
|
|
-
|
|
|
- kfree(tt_global_entry);
|
|
|
-}
|
|
|
-
|
|
|
+/**
|
|
|
+ * batadv_tt_global_entry_free_ref - decrement the refcounter for a
|
|
|
+ * tt_global_entry and possibly free it
|
|
|
+ * @tt_global_entry: the object to free
|
|
|
+ */
|
|
|
static void
|
|
|
batadv_tt_global_entry_free_ref(struct batadv_tt_global_entry *tt_global_entry)
|
|
|
{
|
|
|
if (atomic_dec_and_test(&tt_global_entry->common.refcount)) {
|
|
|
batadv_tt_global_del_orig_list(tt_global_entry);
|
|
|
- call_rcu(&tt_global_entry->common.rcu,
|
|
|
- batadv_tt_global_entry_free_rcu);
|
|
|
+ kfree_rcu(tt_global_entry, common.rcu);
|
|
|
}
|
|
|
}
|
|
|
|