]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/netfilter/nf_conntrack_proto_udplite.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[mirror_ubuntu-artful-kernel.git] / net / netfilter / nf_conntrack_proto_udplite.c
index 029206e8dec4958f7651279d81e27833b584cdd0..8cdb4b1bf933676054bc455dd0e617b96e6d2354 100644 (file)
@@ -336,32 +336,21 @@ static struct nf_conntrack_l4proto nf_conntrack_l4proto_udplite6 __read_mostly =
        .init_net               = udplite_init_net,
 };
 
+static struct nf_conntrack_l4proto *udplite_proto[] = {
+       &nf_conntrack_l4proto_udplite4,
+       &nf_conntrack_l4proto_udplite6,
+};
+
 static int udplite_net_init(struct net *net)
 {
-       int ret = 0;
-
-       ret = nf_ct_l4proto_pernet_register(net, &nf_conntrack_l4proto_udplite4);
-       if (ret < 0) {
-               pr_err("nf_conntrack_udplite4: pernet registration failed.\n");
-               goto out;
-       }
-       ret = nf_ct_l4proto_pernet_register(net, &nf_conntrack_l4proto_udplite6);
-       if (ret < 0) {
-               pr_err("nf_conntrack_udplite6: pernet registration failed.\n");
-               goto cleanup_udplite4;
-       }
-       return 0;
-
-cleanup_udplite4:
-       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_udplite4);
-out:
-       return ret;
+       return nf_ct_l4proto_pernet_register(net, udplite_proto,
+                                            ARRAY_SIZE(udplite_proto));
 }
 
 static void udplite_net_exit(struct net *net)
 {
-       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_udplite6);
-       nf_ct_l4proto_pernet_unregister(net, &nf_conntrack_l4proto_udplite4);
+       nf_ct_l4proto_pernet_unregister(net, udplite_proto,
+                                       ARRAY_SIZE(udplite_proto));
 }
 
 static struct pernet_operations udplite_net_ops = {
@@ -377,29 +366,16 @@ static int __init nf_conntrack_proto_udplite_init(void)
 
        ret = register_pernet_subsys(&udplite_net_ops);
        if (ret < 0)
-               goto out_pernet;
-
-       ret = nf_ct_l4proto_register(&nf_conntrack_l4proto_udplite4);
-       if (ret < 0)
-               goto out_udplite4;
-
-       ret = nf_ct_l4proto_register(&nf_conntrack_l4proto_udplite6);
+               return ret;
+       ret = nf_ct_l4proto_register(udplite_proto, ARRAY_SIZE(udplite_proto));
        if (ret < 0)
-               goto out_udplite6;
-
-       return 0;
-out_udplite6:
-       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_udplite4);
-out_udplite4:
-       unregister_pernet_subsys(&udplite_net_ops);
-out_pernet:
+               unregister_pernet_subsys(&udplite_net_ops);
        return ret;
 }
 
 static void __exit nf_conntrack_proto_udplite_exit(void)
 {
-       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_udplite6);
-       nf_ct_l4proto_unregister(&nf_conntrack_l4proto_udplite4);
+       nf_ct_l4proto_unregister(udplite_proto, ARRAY_SIZE(udplite_proto));
        unregister_pernet_subsys(&udplite_net_ops);
 }