Skip to content

Commit

Permalink
[INET]: Rename inet_csk_ctl_sock_create to inet_ctl_sock_create.
Browse files Browse the repository at this point in the history
This call is nothing common with INET connection sockets code. It
simply creates an unhashes kernel sockets for protocol messages.

Move the new call into af_inet.c after the rename.

Signed-off-by: Denis V. Lunev <[email protected]>
Acked-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Denis V. Lunev authored and davem330 committed Apr 3, 2008
1 parent 4f049b4 commit 3d58b5f
Showing 8 changed files with 32 additions and 31 deletions.
5 changes: 5 additions & 0 deletions include/net/inet_common.h
Original file line number Diff line number Diff line change
@@ -39,6 +39,11 @@ extern int inet_getname(struct socket *sock,
extern int inet_ioctl(struct socket *sock,
unsigned int cmd, unsigned long arg);

extern int inet_ctl_sock_create(struct socket **sock,
unsigned short family,
unsigned short type,
unsigned char protocol);

#endif


5 changes: 0 additions & 5 deletions include/net/inet_connection_sock.h
Original file line number Diff line number Diff line change
@@ -327,11 +327,6 @@ extern void inet_csk_listen_stop(struct sock *sk);

extern void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr);

extern int inet_csk_ctl_sock_create(struct socket **sock,
unsigned short family,
unsigned short type,
unsigned char protocol);

extern int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen);
extern int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
4 changes: 2 additions & 2 deletions net/dccp/ipv4.c
Original file line number Diff line number Diff line change
@@ -1003,8 +1003,8 @@ static int __init dccp_v4_init(void)

inet_register_protosw(&dccp_v4_protosw);

err = inet_csk_ctl_sock_create(&socket, PF_INET,
SOCK_DCCP, IPPROTO_DCCP);
err = inet_ctl_sock_create(&socket, PF_INET,
SOCK_DCCP, IPPROTO_DCCP);
if (err)
goto out_unregister_protosw;
dccp_v4_ctl_sk = socket->sk;
4 changes: 2 additions & 2 deletions net/dccp/ipv6.c
Original file line number Diff line number Diff line change
@@ -1185,8 +1185,8 @@ static int __init dccp_v6_init(void)

inet6_register_protosw(&dccp_v6_protosw);

err = inet_csk_ctl_sock_create(&socket, PF_INET6,
SOCK_DCCP, IPPROTO_DCCP);
err = inet_ctl_sock_create(&socket, PF_INET6,
SOCK_DCCP, IPPROTO_DCCP);
if (err != 0)
goto out_unregister_protosw;
dccp_v6_ctl_sk = socket->sk;
19 changes: 19 additions & 0 deletions net/ipv4/af_inet.c
Original file line number Diff line number Diff line change
@@ -1250,6 +1250,25 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb, int features)
return segs;
}

int inet_ctl_sock_create(struct socket **sock, unsigned short family,
unsigned short type, unsigned char protocol)
{
int rc = sock_create_kern(family, type, protocol, sock);

if (rc == 0) {
(*sock)->sk->sk_allocation = GFP_ATOMIC;
inet_sk((*sock)->sk)->uc_ttl = -1;
/*
* Unhash it so that IP input processing does not even see it,
* we do not wish this socket to see incoming packets.
*/
(*sock)->sk->sk_prot->unhash((*sock)->sk);
}
return rc;
}

EXPORT_SYMBOL_GPL(inet_ctl_sock_create);

unsigned long snmp_fold_field(void *mib[], int offt)
{
unsigned long res = 0;
19 changes: 0 additions & 19 deletions net/ipv4/inet_connection_sock.c
Original file line number Diff line number Diff line change
@@ -651,25 +651,6 @@ void inet_csk_addr2sockaddr(struct sock *sk, struct sockaddr *uaddr)

EXPORT_SYMBOL_GPL(inet_csk_addr2sockaddr);

int inet_csk_ctl_sock_create(struct socket **sock, unsigned short family,
unsigned short type, unsigned char protocol)
{
int rc = sock_create_kern(family, type, protocol, sock);

if (rc == 0) {
(*sock)->sk->sk_allocation = GFP_ATOMIC;
inet_sk((*sock)->sk)->uc_ttl = -1;
/*
* Unhash it so that IP input processing does not even see it,
* we do not wish this socket to see incoming packets.
*/
(*sock)->sk->sk_prot->unhash((*sock)->sk);
}
return rc;
}

EXPORT_SYMBOL_GPL(inet_csk_ctl_sock_create);

#ifdef CONFIG_COMPAT
int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
char __user *optval, int __user *optlen)
4 changes: 2 additions & 2 deletions net/ipv4/tcp_ipv4.c
Original file line number Diff line number Diff line change
@@ -2491,8 +2491,8 @@ struct proto tcp_prot = {
void __init tcp_v4_init(void)
{
struct socket *__tcp_socket;
if (inet_csk_ctl_sock_create(&__tcp_socket, PF_INET, SOCK_RAW,
IPPROTO_TCP) < 0)
if (inet_ctl_sock_create(&__tcp_socket, PF_INET, SOCK_RAW,
IPPROTO_TCP) < 0)
panic("Failed to create the TCP control socket.\n");
tcp_sock = __tcp_socket->sk;
}
3 changes: 2 additions & 1 deletion net/ipv6/tcp_ipv6.c
Original file line number Diff line number Diff line change
@@ -60,6 +60,7 @@
#include <net/dsfield.h>
#include <net/timewait_sock.h>
#include <net/netdma.h>
#include <net/inet_common.h>

#include <asm/uaccess.h>

@@ -2202,7 +2203,7 @@ static int tcpv6_net_init(struct net *net)
struct socket *sock;
struct sock *sk;

err = inet_csk_ctl_sock_create(&sock, PF_INET6, SOCK_RAW, IPPROTO_TCP);
err = inet_ctl_sock_create(&sock, PF_INET6, SOCK_RAW, IPPROTO_TCP);
if (err)
return err;

0 comments on commit 3d58b5f

Please sign in to comment.