diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 0b057628a7ba5c45d722710082ce32df3f7e8e13..b74f1d01ef76f4db4a991ee1d8e88de684c01069 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -521,7 +521,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
 		}
 	}
 
-	if (printk_ratelimit())
+	if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit())
 		pr_warn("vmap allocation for size %lu failed: use vmalloc=<size> to increase size\n",
 			size);
 	kfree(va);