From 449a68cc656fddeda448e324c57062a19cf451b9 Mon Sep 17 00:00:00 2001 From: Lai Jiangshan Date: Fri, 18 Mar 2011 12:05:57 +0800 Subject: [PATCH] security,rcu: Convert call_rcu(sel_netport_free) to kfree_rcu() The rcu callback sel_netport_free() just calls a kfree(), so we use kfree_rcu() instead of the call_rcu(sel_netport_free). Signed-off-by: Lai Jiangshan Signed-off-by: Paul E. McKenney Cc: Stephen Smalley Cc: James Morris Cc: Eric Paris Reviewed-by: Josh Triplett --- security/selinux/netport.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/security/selinux/netport.c b/security/selinux/netport.c index cfe2d72d3fb7..ae76e298de7d 100644 --- a/security/selinux/netport.c +++ b/security/selinux/netport.c @@ -67,22 +67,6 @@ static LIST_HEAD(sel_netport_list); static DEFINE_SPINLOCK(sel_netport_lock); static struct sel_netport_bkt sel_netport_hash[SEL_NETPORT_HASH_SIZE]; -/** - * sel_netport_free - Frees a port entry - * @p: the entry's RCU field - * - * Description: - * This function is designed to be used as a callback to the call_rcu() - * function so that memory allocated to a hash table port entry can be - * released safely. - * - */ -static void sel_netport_free(struct rcu_head *p) -{ - struct sel_netport *port = container_of(p, struct sel_netport, rcu); - kfree(port); -} - /** * sel_netport_hashfn - Hashing function for the port table * @pnum: port number @@ -142,7 +126,7 @@ static void sel_netport_insert(struct sel_netport *port) rcu_dereference(sel_netport_hash[idx].list.prev), struct sel_netport, list); list_del_rcu(&tail->list); - call_rcu(&tail->rcu, sel_netport_free); + kfree_rcu(tail, rcu); } else sel_netport_hash[idx].size++; } @@ -241,7 +225,7 @@ static void sel_netport_flush(void) list_for_each_entry_safe(port, port_tmp, &sel_netport_hash[idx].list, list) { list_del_rcu(&port->list); - call_rcu(&port->rcu, sel_netport_free); + kfree_rcu(port, rcu); } sel_netport_hash[idx].size = 0; } -- 2.20.1