]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ipv4: Convert call_rcu() to kfree_rcu(), drop opt_kfree_rcu()
authorPaul E. McKenney <paul.mckenney@linaro.org>
Sat, 7 Jan 2012 01:06:11 +0000 (17:06 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:03:31 +0000 (09:03 -0800)
Because opt_kfree_rcu() just calls kfree(), all call_rcu() uses of it
may be converted to kfree_rcu().  This permits opt_kfree_rcu() to
be eliminated.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Cc: James Morris <jmorris@namei.org>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: Patrick McHardy <kaber@trash.net>
Cc: netdev@vger.kernel.org
net/ipv4/cipso_ipv4.c

index 86f3b885b4f32c9de69cc809ba652fef0dfe9099..c48adc565e9239a45c600d791c8f97059e22696f 100644 (file)
@@ -1857,11 +1857,6 @@ static int cipso_v4_genopt(unsigned char *buf, u32 buf_len,
        return CIPSO_V4_HDR_LEN + ret_val;
 }
 
-static void opt_kfree_rcu(struct rcu_head *head)
-{
-       kfree(container_of(head, struct ip_options_rcu, rcu));
-}
-
 /**
  * cipso_v4_sock_setattr - Add a CIPSO option to a socket
  * @sk: the socket
@@ -1938,7 +1933,7 @@ int cipso_v4_sock_setattr(struct sock *sk,
        }
        rcu_assign_pointer(sk_inet->inet_opt, opt);
        if (old)
-               call_rcu(&old->rcu, opt_kfree_rcu);
+               kfree_rcu(old, rcu);
 
        return 0;
 
@@ -2005,7 +2000,7 @@ int cipso_v4_req_setattr(struct request_sock *req,
        req_inet = inet_rsk(req);
        opt = xchg(&req_inet->opt, opt);
        if (opt)
-               call_rcu(&opt->rcu, opt_kfree_rcu);
+               kfree_rcu(opt, rcu);
 
        return 0;
 
@@ -2075,7 +2070,7 @@ static int cipso_v4_delopt(struct ip_options_rcu **opt_ptr)
                 * remove the entire option struct */
                *opt_ptr = NULL;
                hdr_delta = opt->opt.optlen;
-               call_rcu(&opt->rcu, opt_kfree_rcu);
+               kfree_rcu(opt, rcu);
        }
 
        return hdr_delta;