From c1e9894d486dc249331f4f04859c26147a778154 Mon Sep 17 00:00:00 2001 From: "Denis V. Lunev" Date: Thu, 3 Apr 2008 14:29:00 -0700 Subject: [PATCH] [ICMP]: Simplify ICMP control socket creation. Replace sock_create_kern with inet_ctl_sock_create. Signed-off-by: Denis V. Lunev Acked-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller --- net/ipv4/icmp.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 803bc9f173a7..efc7cbe759c9 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -93,6 +93,7 @@ #include #include #include +#include /* * Build xmit assembly blocks @@ -1136,7 +1137,7 @@ static void __net_exit icmp_sk_exit(struct net *net) int i; for_each_possible_cpu(i) - sk_release_kernel(net->ipv4.icmp_sk[i]); + inet_ctl_sock_destroy(net->ipv4.icmp_sk[i]); kfree(net->ipv4.icmp_sk); net->ipv4.icmp_sk = NULL; } @@ -1152,17 +1153,13 @@ int __net_init icmp_sk_init(struct net *net) for_each_possible_cpu(i) { struct sock *sk; - struct socket *sock; - struct inet_sock *inet; - err = sock_create_kern(PF_INET, SOCK_RAW, IPPROTO_ICMP, &sock); + err = inet_ctl_sock_create(&sk, PF_INET, + SOCK_RAW, IPPROTO_ICMP, net); if (err < 0) goto fail; - net->ipv4.icmp_sk[i] = sk = sock->sk; - sk_change_net(sk, net); - - sk->sk_allocation = GFP_ATOMIC; + net->ipv4.icmp_sk[i] = sk; /* Enough space for 2 64K ICMP packets, including * sk_buff struct overhead. @@ -1170,15 +1167,7 @@ int __net_init icmp_sk_init(struct net *net) sk->sk_sndbuf = (2 * ((64 * 1024) + sizeof(struct sk_buff))); - inet = inet_sk(sk); - inet->uc_ttl = -1; - inet->pmtudisc = IP_PMTUDISC_DONT; - - /* Unhash it so that IP input processing does not even - * see it, we do not wish this socket to see incoming - * packets. - */ - sk->sk_prot->unhash(sk); + inet_sk(sk)->pmtudisc = IP_PMTUDISC_DONT; } /* Control parameters for ECHO replies. */ @@ -1208,7 +1197,7 @@ int __net_init icmp_sk_init(struct net *net) fail: for_each_possible_cpu(i) - sk_release_kernel(net->ipv4.icmp_sk[i]); + inet_ctl_sock_destroy(net->ipv4.icmp_sk[i]); kfree(net->ipv4.icmp_sk); return err; }