diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 871e41c55e239afb83051d8e73fde088d746ba37..806047d7fda3c3fd6b06126f1c59358b3a0ee66c 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1505,7 +1505,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
 			addr))
 		return;
 
-	area = find_vmap_area((unsigned long)addr)->vm;
+	area = find_vm_area(addr);
 	if (unlikely(!area)) {
 		WARN(1, KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n",
 				addr);