aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2008-04-03 17:27:58 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-03 17:27:58 -0400
commiteee4fe4ded6e9c196168aee8f9787771f4df9c90 (patch)
tree271a5837eef0a7f25bf7c8e1e36f413271dd70c7 /net/ipv4
parent8258175c811440e93baa15ab1962a5905686dda3 (diff)
[INET]: Let inet_ctl_sock_create return sock rather than socket.
All upper protocol layers are already use sock internally. Signed-off-by: Denis V. Lunev <den@openvz.org> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/af_inet.c12
-rw-r--r--net/ipv4/tcp_ipv4.c4
2 files changed, 8 insertions, 8 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 7ab0bd64c9d1..cad664bf3f2e 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1250,19 +1250,21 @@ out:
1250 return segs; 1250 return segs;
1251} 1251}
1252 1252
1253int inet_ctl_sock_create(struct socket **sock, unsigned short family, 1253int inet_ctl_sock_create(struct sock **sk, unsigned short family,
1254 unsigned short type, unsigned char protocol) 1254 unsigned short type, unsigned char protocol)
1255{ 1255{
1256 int rc = sock_create_kern(family, type, protocol, sock); 1256 struct socket *sock;
1257 int rc = sock_create_kern(family, type, protocol, &sock);
1257 1258
1258 if (rc == 0) { 1259 if (rc == 0) {
1259 (*sock)->sk->sk_allocation = GFP_ATOMIC; 1260 *sk = sock->sk;
1260 inet_sk((*sock)->sk)->uc_ttl = -1; 1261 (*sk)->sk_allocation = GFP_ATOMIC;
1262 inet_sk(*sk)->uc_ttl = -1;
1261 /* 1263 /*
1262 * Unhash it so that IP input processing does not even see it, 1264 * Unhash it so that IP input processing does not even see it,
1263 * we do not wish this socket to see incoming packets. 1265 * we do not wish this socket to see incoming packets.
1264 */ 1266 */
1265 (*sock)->sk->sk_prot->unhash((*sock)->sk); 1267 (*sk)->sk_prot->unhash(*sk);
1266 } 1268 }
1267 return rc; 1269 return rc;
1268} 1270}
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index edf5a37bb5c3..cfe5df76e14b 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -2490,11 +2490,9 @@ struct proto tcp_prot = {
2490 2490
2491void __init tcp_v4_init(void) 2491void __init tcp_v4_init(void)
2492{ 2492{
2493 struct socket *__tcp_socket; 2493 if (inet_ctl_sock_create(&tcp_sock, PF_INET, SOCK_RAW,
2494 if (inet_ctl_sock_create(&__tcp_socket, PF_INET, SOCK_RAW,
2495 IPPROTO_TCP) < 0) 2494 IPPROTO_TCP) < 0)
2496 panic("Failed to create the TCP control socket.\n"); 2495 panic("Failed to create the TCP control socket.\n");
2497 tcp_sock = __tcp_socket->sk;
2498} 2496}
2499 2497
2500EXPORT_SYMBOL(ipv4_specific); 2498EXPORT_SYMBOL(ipv4_specific);