[linux-next] LinuxNextTracking branch, master, updated. next-20131029

batman at open-mesh.org batman at open-mesh.org
Wed Oct 30 00:18:02 CET 2013


The following commit has been merged in the master branch:
commit 210260594782ba9bc52732d84880573466c13441
Author: Antonio Quartulli <ordex at autistici.org>
Date:   Tue May 7 00:29:22 2013 +0200

    batman-adv: don't use call_rcu if not needed
    
    batadv_tt_global_entry_free_ref uses call_rcu to schedule a
    function which will only free the global entry itself.
    
    For this reason call_rcu is useless and kfree_rcu can be
    used to simplify the code.
    
    Signed-off-by: Antonio Quartulli <ordex at autistici.org>
    Signed-off-by: Marek Lindner <lindner_marek at yahoo.de>

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index b3c4369..34fa6cc 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -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);
 	}
 }
 

-- 
LinuxNextTracking


More information about the linux-merge mailing list