diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2023-06-23 16:58:19 -0700 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2023-06-23 16:58:19 -0700 |
commit | 63773d2b593d86440c3b96fd300ed80d00cd06ef (patch) | |
tree | ebc7b1e8f1c0ce535ef9c6120209d0e87d8d4b16 /mm/vmalloc.c | |
parent | cf01724e2d73a90524450e3dd8798cfb9d7aca05 (diff) | |
parent | 814bc1de03ea4361101408e63a68e4b82aef22cb (diff) |
Merge mm-hotfixes-stable into mm-stable to pick up depended-upon changes.
Diffstat (limited to 'mm/vmalloc.c')
-rw-r--r-- | mm/vmalloc.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 5a3bf408251b..93cf99aba335 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -3148,11 +3148,20 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask, * allocation request, free them via vfree() if any. */ if (area->nr_pages != nr_small_pages) { - /* vm_area_alloc_pages() can also fail due to a fatal signal */ - if (!fatal_signal_pending(current)) + /* + * vm_area_alloc_pages() can fail due to insufficient memory but + * also:- + * + * - a pending fatal signal + * - insufficient huge page-order pages + * + * Since we always retry allocations at order-0 in the huge page + * case a warning for either is spurious. + */ + if (!fatal_signal_pending(current) && page_order == 0) warn_alloc(gfp_mask, NULL, - "vmalloc error: size %lu, page order %u, failed to allocate pages", - area->nr_pages * PAGE_SIZE, page_order); + "vmalloc error: size %lu, failed to allocate pages", + area->nr_pages * PAGE_SIZE); goto fail; } |