path: root/mm/vmalloc.c
diff options
authorUladzislau Rezki (Sony) <>2021-06-28 19:40:17 -0700
committerLinus Torvalds <>2021-06-29 10:53:52 -0700
commitcd61413baa1052fc13e75dd092a0e23ac29a0205 (patch)
treee0e542a6466ee5f888f42c1f1f0866666e8ff17d /mm/vmalloc.c
parent5c1f4e690eecc795b2e4d4408e87302040fceca4 (diff)
mm/vmalloc: print a warning message first on failure
When a memory allocation for array of pages are not succeed emit a warning message as a first step and then perform the further cleanup. The reason it should be done in a right order is the clean up function which is free_vm_area() can potentially also follow its error paths what can lead to confusion what was broken first. Link: Signed-off-by: Uladzislau Rezki (Sony) <> Cc: Hillf Danton <> Cc: Matthew Wilcox <> Cc: Mel Gorman <> Cc: Michal Hocko <> Cc: Nicholas Piggin <> Cc: Oleksiy Avramchenko <> Cc: Steven Rostedt <> Signed-off-by: Andrew Morton <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'mm/vmalloc.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index e630f2cf7900..74a31abaa52c 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2783,11 +2783,11 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
if (!area->pages) {
- free_vm_area(area);
warn_alloc(gfp_mask, NULL,
"vmalloc size %lu allocation failure: "
"page array size %lu allocation failed",
nr_small_pages * PAGE_SIZE, array_size);
+ free_vm_area(area);
return NULL;