diff options
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index fa640765385e..1e3bd39f54ec 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -1016,9 +1016,27 @@ static struct inet_protosw udpv6_protosw = { | |||
1016 | }; | 1016 | }; |
1017 | 1017 | ||
1018 | 1018 | ||
1019 | void __init udpv6_init(void) | 1019 | int __init udpv6_init(void) |
1020 | { | 1020 | { |
1021 | if (inet6_add_protocol(&udpv6_protocol, IPPROTO_UDP) < 0) | 1021 | int ret; |
1022 | printk(KERN_ERR "udpv6_init: Could not register protocol\n"); | 1022 | |
1023 | inet6_register_protosw(&udpv6_protosw); | 1023 | ret = inet6_add_protocol(&udpv6_protocol, IPPROTO_UDP); |
1024 | if (ret) | ||
1025 | goto out; | ||
1026 | |||
1027 | ret = inet6_register_protosw(&udpv6_protosw); | ||
1028 | if (ret) | ||
1029 | goto out_udpv6_protocol; | ||
1030 | out: | ||
1031 | return ret; | ||
1032 | |||
1033 | out_udpv6_protocol: | ||
1034 | inet6_del_protocol(&udpv6_protocol, IPPROTO_UDP); | ||
1035 | goto out; | ||
1036 | } | ||
1037 | |||
1038 | void __exit udpv6_exit(void) | ||
1039 | { | ||
1040 | inet6_unregister_protosw(&udpv6_protosw); | ||
1041 | inet6_del_protocol(&udpv6_protocol, IPPROTO_UDP); | ||
1024 | } | 1042 | } |