Message ID | 20170126141349.GN6590@dhcp22.suse.cz |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
Hi Michal, [auto build test ERROR on next-20170125] [cannot apply to linus/master linux/master nf-next/master v4.9-rc8 v4.9-rc7 v4.9-rc6 v4.10-rc5] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Michal-Hocko/net-bpf-use-kvzalloc-helper/20170126-221904 config: x86_64-randconfig-x017-201704 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): net/netfilter/x_tables.c: In function 'xt_alloc_table_info': >> net/netfilter/x_tables.c:1012:9: error: implicit declaration of function 'kvzalloc' [-Werror=implicit-function-declaration] info = kvzalloc(sz, GFP_KERNEL); ^~~~~~~~ >> net/netfilter/x_tables.c:1012:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion] info = kvzalloc(sz, GFP_KERNEL); ^ cc1: some warnings being treated as errors vim +/kvzalloc +1012 net/netfilter/x_tables.c 1006 1007 /* 1008 * FIXME: we would really like to not trigger the OOM killer and rather 1009 * fail instead. This is not supported right now. Please nag MM people 1010 * if these OOM start bothering people. 1011 */ > 1012 info = kvzalloc(sz, GFP_KERNEL); 1013 info->size = size; 1014 return info; 1015 } --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Michal, [auto build test ERROR on next-20170125] [cannot apply to linus/master linux/master nf-next/master v4.9-rc8 v4.9-rc7 v4.9-rc6 v4.10-rc5] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Michal-Hocko/net-bpf-use-kvzalloc-helper/20170126-221904 config: x86_64-randconfig-x014-201704 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): kernel/bpf/syscall.c: In function 'bpf_map_area_alloc': >> kernel/bpf/syscall.c:61:9: error: implicit declaration of function 'kvzalloc' [-Werror=implicit-function-declaration] return kvzalloc(size, GFP_USER); ^~~~~~~~ >> kernel/bpf/syscall.c:61:9: warning: return makes pointer from integer without a cast [-Wint-conversion] return kvzalloc(size, GFP_USER); ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/kvzalloc +61 kernel/bpf/syscall.c 55 { 56 /* 57 * FIXME: we would really like to not trigger the OOM killer and rather 58 * fail instead. This is not supported right now. Please nag MM people 59 * if these OOM start bothering people. 60 */ > 61 return kvzalloc(size, GFP_USER); 62 } 63 64 void bpf_map_area_free(void *area) --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 19b6129eab23..a6dc4d596f14 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -53,21 +53,12 @@ void bpf_register_map_type(struct bpf_map_type_list *tl) void *bpf_map_area_alloc(size_t size) { - /* We definitely need __GFP_NORETRY, so OOM killer doesn't - * trigger under memory pressure as we really just want to - * fail instead. + /* + * FIXME: we would really like to not trigger the OOM killer and rather + * fail instead. This is not supported right now. Please nag MM people + * if these OOM start bothering people. */ - const gfp_t flags = __GFP_NOWARN | __GFP_NORETRY | __GFP_ZERO; - void *area; - - if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) { - area = kmalloc(size, GFP_USER | flags); - if (area != NULL) - return area; - } - - return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | flags, - PAGE_KERNEL); + return kvzalloc(size, GFP_USER); } void bpf_map_area_free(void *area) diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index d529989f5791..ba8ba633da72 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c @@ -995,16 +995,12 @@ 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 | __GFP_HIGHMEM, - PAGE_KERNEL); - if (!info) - return NULL; - } - memset(info, 0, sizeof(*info)); + /* + * FIXME: we would really like to not trigger the OOM killer and rather + * fail instead. This is not supported right now. Please nag MM people + * if these OOM start bothering people. + */ + info = kvzalloc(sz, GFP_KERNEL); info->size = size; return info; }