diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ba6b0f5f7fac6dcce7a9e8a7c71f00e0e691d193..46aab4dbf618adbee6ac4fc272ffa9eb99b66a56 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -362,7 +362,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size,
 				goto found;
 		}
 
-		while (addr + size >= first->va_start && addr + size <= vend) {
+		while (addr + size > first->va_start && addr + size <= vend) {
 			addr = ALIGN(first->va_end + PAGE_SIZE, align);
 
 			n = rb_next(&first->rb_node);