Commit 605b4afe authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Paul E. McKenney

ipv4: Convert call_rcu() to kfree_rcu(), drop opt_kfree_rcu

The call_rcu() in do_ip_setsockopt() invokes opt_kfree_rcu(), which just
calls kfree().  So convert the call_rcu() to kfree_rcu(), which allows
opt_kfree_rcu() to be eliminated.
Signed-off-by: default avatarPaul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: default avatarDavid 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
parent 4f9c8c1b
...@@ -445,11 +445,6 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len) ...@@ -445,11 +445,6 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len)
} }
static void opt_kfree_rcu(struct rcu_head *head)
{
kfree(container_of(head, struct ip_options_rcu, rcu));
}
/* /*
* Socket option code for IP. This is the end of the line after any * Socket option code for IP. This is the end of the line after any
* TCP,UDP etc options on an IP socket. * TCP,UDP etc options on an IP socket.
...@@ -525,7 +520,7 @@ static int do_ip_setsockopt(struct sock *sk, int level, ...@@ -525,7 +520,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
} }
rcu_assign_pointer(inet->inet_opt, opt); rcu_assign_pointer(inet->inet_opt, opt);
if (old) if (old)
call_rcu(&old->rcu, opt_kfree_rcu); kfree_rcu(old, rcu);
break; break;
} }
case IP_PKTINFO: case IP_PKTINFO:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment