Messages in this thread Patch in this message | | | From | "Paul E. McKenney" <> | Subject | [PATCH tip/core/rcu 1/7] net,rcu: convert call_rcu(sk_filter_release_rcu) to kfree_rcu | Date | Mon, 2 May 2011 09:13:38 -0700 |
| |
The RCU callback sk_filter_release_rcu just calls kfree(), so we use kfree_rcu() instead of call_rcu().
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Patrick McHardy <kaber@trash.net> Cc: David S. Miller <davem@davemloft.net> --- include/net/sock.h | 4 +--- net/core/filter.c | 12 ------------ 2 files changed, 1 insertions(+), 15 deletions(-)
diff --git a/include/net/sock.h b/include/net/sock.h index 01810a3..60caa06 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1179,8 +1179,6 @@ extern void sk_common_release(struct sock *sk); /* Initialise core socket variables */ extern void sock_init_data(struct socket *sock, struct sock *sk); -extern void sk_filter_release_rcu(struct rcu_head *rcu); - /** * sk_filter_release - release a socket filter * @fp: filter to remove @@ -1191,7 +1189,7 @@ extern void sk_filter_release_rcu(struct rcu_head *rcu); static inline void sk_filter_release(struct sk_filter *fp) { if (atomic_dec_and_test(&fp->refcnt)) - call_rcu(&fp->rcu, sk_filter_release_rcu); + kfree_rcu(fp, rcu); } static inline void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp) diff --git a/net/core/filter.c b/net/core/filter.c index afb8afb..7195ce0 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -631,18 +631,6 @@ int sk_chk_filter(struct sock_filter *filter, int flen) EXPORT_SYMBOL(sk_chk_filter); /** - * sk_filter_release_rcu - Release a socket filter by rcu_head - * @rcu: rcu_head that contains the sk_filter to free - */ -void sk_filter_release_rcu(struct rcu_head *rcu) -{ - struct sk_filter *fp = container_of(rcu, struct sk_filter, rcu); - - kfree(fp); -} -EXPORT_SYMBOL(sk_filter_release_rcu); - -/** * sk_attach_filter - attach a socket filter * @fprog: the filter program * @sk: the socket to use -- 1.7.3.2
| |