aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/af_inet6.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-03-01 01:06:47 +0900
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-03-04 15:18:22 +0900
commite898d4db2749c6052072e9bc4448e396cbdeb06a (patch)
tree2b8673d85210a23e67d0817b18f401411e8936f3 /net/ipv6/af_inet6.c
parentc6aefafb7ec620911d46174eed514f9df639e5a4 (diff)
downloadkernel_samsung_crespo-e898d4db2749c6052072e9bc4448e396cbdeb06a.zip
kernel_samsung_crespo-e898d4db2749c6052072e9bc4448e396cbdeb06a.tar.gz
kernel_samsung_crespo-e898d4db2749c6052072e9bc4448e396cbdeb06a.tar.bz2
[UDP]: Allow users to configure UDP-Lite.
Let's give users an option for disabling UDP-Lite (~4K). old: | text data bss dec hex filename | 286498 12432 6072 305002 4a76a net/ipv4/built-in.o | 193830 8192 3204 205226 321aa net/ipv6/ipv6.o new (without UDP-Lite): | text data bss dec hex filename | 284086 12136 5432 301654 49a56 net/ipv4/built-in.o | 191835 7832 3076 202743 317f7 net/ipv6/ipv6.o Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Diffstat (limited to 'net/ipv6/af_inet6.c')
-rw-r--r--net/ipv6/af_inet6.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 9869f87..243c42a 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -691,12 +691,16 @@ static int __init init_ipv6_mibs(void)
goto err_icmpmsg_mib;
if (snmp_mib_init((void **)udp_stats_in6, sizeof (struct udp_mib)) < 0)
goto err_udp_mib;
+#ifdef CONFIG_IP_UDPLITE
if (snmp_mib_init((void **)udplite_stats_in6,
sizeof (struct udp_mib)) < 0)
goto err_udplite_mib;
+#endif
return 0;
+#ifdef CONFIG_IP_UDPLITE
err_udplite_mib:
+#endif
snmp_mib_free((void **)udp_stats_in6);
err_udp_mib:
snmp_mib_free((void **)icmpv6msg_statistics);
@@ -715,7 +719,9 @@ static void cleanup_ipv6_mibs(void)
snmp_mib_free((void **)icmpv6_statistics);
snmp_mib_free((void **)icmpv6msg_statistics);
snmp_mib_free((void **)udp_stats_in6);
+#ifdef CONFIG_IP_UDPLITE
snmp_mib_free((void **)udplite_stats_in6);
+#endif
}
static int inet6_net_init(struct net *net)
@@ -760,9 +766,11 @@ static int __init inet6_init(void)
if (err)
goto out_unregister_tcp_proto;
+#ifdef CONFIG_IP_UDPLITE
err = proto_register(&udplitev6_prot, 1);
if (err)
goto out_unregister_udp_proto;
+#endif
err = proto_register(&rawv6_prot, 1);
if (err)
@@ -933,8 +941,10 @@ out_sock_register_fail:
out_unregister_raw_proto:
proto_unregister(&rawv6_prot);
out_unregister_udplite_proto:
+#ifdef CONFIG_IP_UDPLITE
proto_unregister(&udplitev6_prot);
out_unregister_udp_proto:
+#endif
proto_unregister(&udpv6_prot);
out_unregister_tcp_proto:
proto_unregister(&tcpv6_prot);
@@ -950,7 +960,9 @@ static void __exit inet6_exit(void)
rtnl_unregister_all(PF_INET6);
udpv6_exit();
+#ifdef CONFIG_IP_UDPLITE
udplitev6_exit();
+#endif
tcpv6_exit();
/* Cleanup code parts. */
@@ -982,7 +994,9 @@ static void __exit inet6_exit(void)
unregister_pernet_subsys(&inet6_net_ops);
cleanup_ipv6_mibs();
proto_unregister(&rawv6_prot);
+#ifdef CONFIG_IP_UDPLITE
proto_unregister(&udplitev6_prot);
+#endif
proto_unregister(&udpv6_prot);
proto_unregister(&tcpv6_prot);
}