Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux] / net / netfilter / nf_conntrack_core.c
index e92e749..741b533 100644 (file)
@@ -2110,10 +2110,7 @@ i_see_dead_people:
 
        list_for_each_entry(net, net_exit_list, exit_list) {
                nf_conntrack_proto_pernet_fini(net);
-               nf_conntrack_helper_pernet_fini(net);
                nf_conntrack_ecache_pernet_fini(net);
-               nf_conntrack_tstamp_pernet_fini(net);
-               nf_conntrack_acct_pernet_fini(net);
                nf_conntrack_expect_pernet_fini(net);
                free_percpu(net->ct.stat);
                free_percpu(net->ct.pcpu_lists);
@@ -2251,6 +2248,7 @@ static __always_inline unsigned int total_extension_size(void)
 
 int nf_conntrack_init_start(void)
 {
+       unsigned long nr_pages = totalram_pages();
        int max_factor = 8;
        int ret = -ENOMEM;
        int i;
@@ -2270,11 +2268,11 @@ int nf_conntrack_init_start(void)
                 * >= 4GB machines have 65536 buckets.
                 */
                nf_conntrack_htable_size
-                       = (((totalram_pages << PAGE_SHIFT) / 16384)
+                       = (((nr_pages << PAGE_SHIFT) / 16384)
                           / sizeof(struct hlist_head));
-               if (totalram_pages > (4 * (1024 * 1024 * 1024 / PAGE_SIZE)))
+               if (nr_pages > (4 * (1024 * 1024 * 1024 / PAGE_SIZE)))
                        nf_conntrack_htable_size = 65536;
-               else if (totalram_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
+               else if (nr_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
                        nf_conntrack_htable_size = 16384;
                if (nf_conntrack_htable_size < 32)
                        nf_conntrack_htable_size = 32;
@@ -2410,32 +2408,19 @@ int nf_conntrack_init_net(struct net *net)
        ret = nf_conntrack_expect_pernet_init(net);
        if (ret < 0)
                goto err_expect;
-       ret = nf_conntrack_acct_pernet_init(net);
-       if (ret < 0)
-               goto err_acct;
-       ret = nf_conntrack_tstamp_pernet_init(net);
-       if (ret < 0)
-               goto err_tstamp;
-       ret = nf_conntrack_ecache_pernet_init(net);
-       if (ret < 0)
-               goto err_ecache;
-       ret = nf_conntrack_helper_pernet_init(net);
-       if (ret < 0)
-               goto err_helper;
+
+       nf_conntrack_acct_pernet_init(net);
+       nf_conntrack_tstamp_pernet_init(net);
+       nf_conntrack_ecache_pernet_init(net);
+       nf_conntrack_helper_pernet_init(net);
+
        ret = nf_conntrack_proto_pernet_init(net);
        if (ret < 0)
                goto err_proto;
        return 0;
 
 err_proto:
-       nf_conntrack_helper_pernet_fini(net);
-err_helper:
        nf_conntrack_ecache_pernet_fini(net);
-err_ecache:
-       nf_conntrack_tstamp_pernet_fini(net);
-err_tstamp:
-       nf_conntrack_acct_pernet_fini(net);
-err_acct:
        nf_conntrack_expect_pernet_fini(net);
 err_expect:
        free_percpu(net->ct.stat);