Commit c5a432f1 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

[IPV6]: Use the {DEFINE|REF}_PROTO_INUSE infrastructure

Trivial patch to make "tcpv6,udpv6,udplitev6,rawv6" protocols uses the
fast "inuse sockets" infrastructure

Each protocol use then a static percpu var, instead of a dynamic one.
This saves some ram and some cpu cycles
Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 47a31a6f
...@@ -1144,6 +1144,8 @@ static int rawv6_init_sk(struct sock *sk) ...@@ -1144,6 +1144,8 @@ static int rawv6_init_sk(struct sock *sk)
return(0); return(0);
} }
DEFINE_PROTO_INUSE(rawv6)
struct proto rawv6_prot = { struct proto rawv6_prot = {
.name = "RAWv6", .name = "RAWv6",
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -1166,6 +1168,7 @@ struct proto rawv6_prot = { ...@@ -1166,6 +1168,7 @@ struct proto rawv6_prot = {
.compat_setsockopt = compat_rawv6_setsockopt, .compat_setsockopt = compat_rawv6_setsockopt,
.compat_getsockopt = compat_rawv6_getsockopt, .compat_getsockopt = compat_rawv6_getsockopt,
#endif #endif
REF_PROTO_INUSE(rawv6)
}; };
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
......
...@@ -2107,6 +2107,8 @@ void tcp6_proc_exit(void) ...@@ -2107,6 +2107,8 @@ void tcp6_proc_exit(void)
} }
#endif #endif
DEFINE_PROTO_INUSE(tcpv6)
struct proto tcpv6_prot = { struct proto tcpv6_prot = {
.name = "TCPv6", .name = "TCPv6",
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -2141,6 +2143,7 @@ struct proto tcpv6_prot = { ...@@ -2141,6 +2143,7 @@ struct proto tcpv6_prot = {
.compat_setsockopt = compat_tcp_setsockopt, .compat_setsockopt = compat_tcp_setsockopt,
.compat_getsockopt = compat_tcp_getsockopt, .compat_getsockopt = compat_tcp_getsockopt,
#endif #endif
REF_PROTO_INUSE(tcpv6)
}; };
static struct inet6_protocol tcpv6_protocol = { static struct inet6_protocol tcpv6_protocol = {
......
...@@ -970,6 +970,8 @@ void udp6_proc_exit(void) { ...@@ -970,6 +970,8 @@ void udp6_proc_exit(void) {
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
DEFINE_PROTO_INUSE(udpv6)
struct proto udpv6_prot = { struct proto udpv6_prot = {
.name = "UDPv6", .name = "UDPv6",
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -991,6 +993,7 @@ struct proto udpv6_prot = { ...@@ -991,6 +993,7 @@ struct proto udpv6_prot = {
.compat_setsockopt = compat_udpv6_setsockopt, .compat_setsockopt = compat_udpv6_setsockopt,
.compat_getsockopt = compat_udpv6_getsockopt, .compat_getsockopt = compat_udpv6_getsockopt,
#endif #endif
REF_PROTO_INUSE(udpv6)
}; };
static struct inet_protosw udpv6_protosw = { static struct inet_protosw udpv6_protosw = {
......
...@@ -40,6 +40,8 @@ static int udplite_v6_get_port(struct sock *sk, unsigned short snum) ...@@ -40,6 +40,8 @@ static int udplite_v6_get_port(struct sock *sk, unsigned short snum)
return udplite_get_port(sk, snum, ipv6_rcv_saddr_equal); return udplite_get_port(sk, snum, ipv6_rcv_saddr_equal);
} }
DEFINE_PROTO_INUSE(udplitev6)
struct proto udplitev6_prot = { struct proto udplitev6_prot = {
.name = "UDPLITEv6", .name = "UDPLITEv6",
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -62,6 +64,7 @@ struct proto udplitev6_prot = { ...@@ -62,6 +64,7 @@ struct proto udplitev6_prot = {
.compat_setsockopt = compat_udpv6_setsockopt, .compat_setsockopt = compat_udpv6_setsockopt,
.compat_getsockopt = compat_udpv6_getsockopt, .compat_getsockopt = compat_udpv6_getsockopt,
#endif #endif
REF_PROTO_INUSE(udplitev6)
}; };
static struct inet_protosw udplite6_protosw = { static struct inet_protosw udplite6_protosw = {
......
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