diff options
Diffstat (limited to 'net/ipv6/udplite.c')
-rw-r--r-- | net/ipv6/udplite.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c index 87d4202522ee..706c5c375a01 100644 --- a/net/ipv6/udplite.c +++ b/net/ipv6/udplite.c | |||
@@ -35,11 +35,6 @@ static struct inet6_protocol udplitev6_protocol = { | |||
35 | .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL, | 35 | .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL, |
36 | }; | 36 | }; |
37 | 37 | ||
38 | static int udplite_v6_get_port(struct sock *sk, unsigned short snum) | ||
39 | { | ||
40 | return udplite_get_port(sk, snum, ipv6_rcv_saddr_equal); | ||
41 | } | ||
42 | |||
43 | DEFINE_PROTO_INUSE(udplitev6) | 38 | DEFINE_PROTO_INUSE(udplitev6) |
44 | 39 | ||
45 | struct proto udplitev6_prot = { | 40 | struct proto udplitev6_prot = { |
@@ -58,8 +53,9 @@ struct proto udplitev6_prot = { | |||
58 | .backlog_rcv = udpv6_queue_rcv_skb, | 53 | .backlog_rcv = udpv6_queue_rcv_skb, |
59 | .hash = udp_lib_hash, | 54 | .hash = udp_lib_hash, |
60 | .unhash = udp_lib_unhash, | 55 | .unhash = udp_lib_unhash, |
61 | .get_port = udplite_v6_get_port, | 56 | .get_port = udp_v6_get_port, |
62 | .obj_size = sizeof(struct udp6_sock), | 57 | .obj_size = sizeof(struct udp6_sock), |
58 | .h.udp_hash = udplite_hash, | ||
63 | #ifdef CONFIG_COMPAT | 59 | #ifdef CONFIG_COMPAT |
64 | .compat_setsockopt = compat_udpv6_setsockopt, | 60 | .compat_setsockopt = compat_udpv6_setsockopt, |
65 | .compat_getsockopt = compat_udpv6_getsockopt, | 61 | .compat_getsockopt = compat_udpv6_getsockopt, |
@@ -113,13 +109,28 @@ static struct udp_seq_afinfo udplite6_seq_afinfo = { | |||
113 | .seq_fops = &udplite6_seq_fops, | 109 | .seq_fops = &udplite6_seq_fops, |
114 | }; | 110 | }; |
115 | 111 | ||
112 | static int udplite6_proc_init_net(struct net *net) | ||
113 | { | ||
114 | return udp_proc_register(net, &udplite6_seq_afinfo); | ||
115 | } | ||
116 | |||
117 | static void udplite6_proc_exit_net(struct net *net) | ||
118 | { | ||
119 | udp_proc_unregister(net, &udplite6_seq_afinfo); | ||
120 | } | ||
121 | |||
122 | static struct pernet_operations udplite6_net_ops = { | ||
123 | .init = udplite6_proc_init_net, | ||
124 | .exit = udplite6_proc_exit_net, | ||
125 | }; | ||
126 | |||
116 | int __init udplite6_proc_init(void) | 127 | int __init udplite6_proc_init(void) |
117 | { | 128 | { |
118 | return udp_proc_register(&udplite6_seq_afinfo); | 129 | return register_pernet_subsys(&udplite6_net_ops); |
119 | } | 130 | } |
120 | 131 | ||
121 | void udplite6_proc_exit(void) | 132 | void udplite6_proc_exit(void) |
122 | { | 133 | { |
123 | udp_proc_unregister(&udplite6_seq_afinfo); | 134 | unregister_pernet_subsys(&udplite6_net_ops); |
124 | } | 135 | } |
125 | #endif | 136 | #endif |