proto.c (60fe62e789076ae7c13f7ffb35fec4b24802530d) proto.c (e55d912f5b75723159348a7fc7692f869a86636a)
1/*
2 * net/dccp/proto.c
3 *
4 * An implementation of the DCCP protocol
5 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as

--- 920 unchanged lines hidden (view full) ---

929 goto out_free_dccp_v4_mibs;
930
931 inet_register_protosw(&dccp_v4_protosw);
932
933 rc = dccp_ackvec_init();
934 if (rc)
935 goto out_unregister_protosw;
936
1/*
2 * net/dccp/proto.c
3 *
4 * An implementation of the DCCP protocol
5 * Arnaldo Carvalho de Melo <acme@conectiva.com.br>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as

--- 920 unchanged lines hidden (view full) ---

929 goto out_free_dccp_v4_mibs;
930
931 inet_register_protosw(&dccp_v4_protosw);
932
933 rc = dccp_ackvec_init();
934 if (rc)
935 goto out_unregister_protosw;
936
937 rc = dccp_ctl_sock_init();
937 rc = dccp_sysctl_init();
938 if (rc)
939 goto out_ackvec_exit;
938 if (rc)
939 goto out_ackvec_exit;
940
941 rc = dccp_ctl_sock_init();
942 if (rc)
943 goto out_sysctl_exit;
940out:
941 return rc;
944out:
945 return rc;
946out_sysctl_exit:
947 dccp_sysctl_exit();
942out_ackvec_exit:
943 dccp_ackvec_exit();
944out_unregister_protosw:
945 inet_unregister_protosw(&dccp_v4_protosw);
946 inet_del_protocol(&dccp_protocol, IPPROTO_DCCP);
947out_free_dccp_v4_mibs:
948 free_percpu(dccp_statistics[0]);
949 free_percpu(dccp_statistics[1]);

--- 28 unchanged lines hidden (view full) ---

978 get_order(dccp_hashinfo.bhash_size *
979 sizeof(struct inet_bind_hashbucket)));
980 free_pages((unsigned long)dccp_hashinfo.ehash,
981 get_order(dccp_hashinfo.ehash_size *
982 sizeof(struct inet_ehash_bucket)));
983 kmem_cache_destroy(dccp_hashinfo.bind_bucket_cachep);
984 proto_unregister(&dccp_prot);
985 dccp_ackvec_exit();
948out_ackvec_exit:
949 dccp_ackvec_exit();
950out_unregister_protosw:
951 inet_unregister_protosw(&dccp_v4_protosw);
952 inet_del_protocol(&dccp_protocol, IPPROTO_DCCP);
953out_free_dccp_v4_mibs:
954 free_percpu(dccp_statistics[0]);
955 free_percpu(dccp_statistics[1]);

--- 28 unchanged lines hidden (view full) ---

984 get_order(dccp_hashinfo.bhash_size *
985 sizeof(struct inet_bind_hashbucket)));
986 free_pages((unsigned long)dccp_hashinfo.ehash,
987 get_order(dccp_hashinfo.ehash_size *
988 sizeof(struct inet_ehash_bucket)));
989 kmem_cache_destroy(dccp_hashinfo.bind_bucket_cachep);
990 proto_unregister(&dccp_prot);
991 dccp_ackvec_exit();
992 dccp_sysctl_exit();
986}
987
988module_init(dccp_init);
989module_exit(dccp_fini);
990
991/*
992 * __stringify doesn't likes enums, so use SOCK_DCCP (6) and IPPROTO_DCCP (33)
993 * values directly, Also cover the case where the protocol is not specified,
994 * i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
995 */
996MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-33-type-6");
997MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-0-type-6");
998MODULE_LICENSE("GPL");
999MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@conectiva.com.br>");
1000MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
993}
994
995module_init(dccp_init);
996module_exit(dccp_fini);
997
998/*
999 * __stringify doesn't likes enums, so use SOCK_DCCP (6) and IPPROTO_DCCP (33)
1000 * values directly, Also cover the case where the protocol is not specified,
1001 * i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
1002 */
1003MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-33-type-6");
1004MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-0-type-6");
1005MODULE_LICENSE("GPL");
1006MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@conectiva.com.br>");
1007MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");