The patch titled Subject: mm: vmalloc: correct use of __GFP_NOWARN mask in __vmalloc_area_node() has been added to the -mm mm-unstable branch. Its filename is mm-vmalloc-correct-use-of-__gfp_nowarn-mask-in-__vmalloc_area_node.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-vmalloc-correct-use-of-__gfp_nowarn-mask-in-__vmalloc_area_node.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Lorenzo Stoakes <lstoakes@xxxxxxxxx> Subject: mm: vmalloc: correct use of __GFP_NOWARN mask in __vmalloc_area_node() Date: Fri, 16 Dec 2022 23:46:59 +0000 This function invokes warn_alloc() with __GFP_NOWARN set which is a no-op. Set this flag _after_ this call so it is actually invoked, and additionally remove a duplicate application of __GFP_NOWARN afterwards. Link: https://lkml.kernel.org/r/20221216234659.493794-1-lstoakes@xxxxxxxxx Signed-off-by: Lorenzo Stoakes <lstoakes@xxxxxxxxx> Cc: Baoquan He <bhe@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Cc: Nicholas Piggin <npiggin@xxxxxxxxx> Cc: Uladzislau Rezki <urezki@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/vmalloc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/mm/vmalloc.c~mm-vmalloc-correct-use-of-__gfp_nowarn-mask-in-__vmalloc_area_node +++ a/mm/vmalloc.c @@ -3031,7 +3031,7 @@ static void *__vmalloc_area_node(struct int ret; array_size = (unsigned long)nr_small_pages * sizeof(struct page *); - gfp_mask |= __GFP_NOWARN; + if (!(gfp_mask & (GFP_DMA | GFP_DMA32))) gfp_mask |= __GFP_HIGHMEM; @@ -3051,10 +3051,12 @@ static void *__vmalloc_area_node(struct return NULL; } + gfp_mask |= __GFP_NOWARN; + set_vm_area_page_order(area, page_shift - PAGE_SHIFT); page_order = vm_area_page_order(area); - area->nr_pages = vm_area_alloc_pages(gfp_mask | __GFP_NOWARN, + area->nr_pages = vm_area_alloc_pages(gfp_mask, node, page_order, nr_small_pages, area->pages); atomic_long_add(area->nr_pages, &nr_vmalloc_pages); _ Patches currently in -mm which might be from lstoakes@xxxxxxxxx are selftest-vm-add-mremap-expand-merge-offset-test.patch mm-vmalloc-correct-use-of-__gfp_nowarn-mask-in-__vmalloc_area_node.patch