diff --git a/include/linux/mm.h b/include/linux/mm.h
index 515ec5045b60b7e5db07b66b5c87a478673f3aa4..68c21b2374c480dc7f6b26e53a2e5dda56365a77 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1894,10 +1894,10 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
 static inline unsigned long
 vm_unmapped_area(struct vm_unmapped_area_info *info)
 {
-	if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN))
-		return unmapped_area(info);
-	else
+	if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
 		return unmapped_area_topdown(info);
+	else
+		return unmapped_area(info);
 }
 
 /* truncate.c */