net/netfilter/x_tables.c: use kvmalloc() in xt_alloc_table_info()
authorMichal Hocko <mhocko@suse.com>
Wed, 12 Jul 2017 21:35:37 +0000 (14:35 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 12 Jul 2017 23:26:02 +0000 (16:26 -0700)
xt_alloc_table_info() basically opencodes kvmalloc() so use the library
function instead.

Link: http://lkml.kernel.org/r/20170531155145.17111-4-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Cc: Florian Westphal <fw@strlen.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
net/netfilter/x_tables.c

index 1770c1d..e164823 100644 (file)
@@ -1003,14 +1003,10 @@ struct xt_table_info *xt_alloc_table_info(unsigned int size)
        if ((SMP_ALIGN(size) >> PAGE_SHIFT) + 2 > totalram_pages)
                return NULL;
 
-       if (sz <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER))
-               info = kmalloc(sz, GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY);
-       if (!info) {
-               info = __vmalloc(sz, GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY,
-                                PAGE_KERNEL);
-               if (!info)
-                       return NULL;
-       }
+       info = kvmalloc(sz, GFP_KERNEL);
+       if (!info)
+               return NULL;
+
        memset(info, 0, sizeof(*info));
        info->size = size;
        return info;