diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index fab19876b4d178986979c2b5d2cb353285507b46..083716ea38c9f7ba636cababe6859cd8e3c14106 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -402,6 +402,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
 			printk(KERN_WARNING
 				"vmap allocation for size %lu failed: "
 				"use vmalloc=<size> to increase size.\n", size);
+		kfree(va);
 		return ERR_PTR(-EBUSY);
 	}