diff --git a/mm/mincore.c b/mm/mincore.c
index 9780097e3812cf2c5c57a2fa3e21517215fedb8d..9c1d0a426e95f7b10cd14ee986d9cbe69fcc37f9 100644
--- a/mm/mincore.c
+++ b/mm/mincore.c
@@ -125,6 +125,8 @@ static long do_mincore(unsigned long addr, unsigned char *vec, unsigned long pag
 #endif
 			}
 		}
+
+		vec[i] = present;
 	}
 	pte_unmap_unlock(ptep-1, ptl);
 
@@ -135,6 +137,9 @@ static long do_mincore(unsigned long addr, unsigned char *vec, unsigned long pag
 		pgoff = linear_page_index(vma, addr);
 		for (i = 0; i < nr; i++, pgoff++)
 			vec[i] = mincore_page(vma->vm_file->f_mapping, pgoff);
+	} else {
+		for (i = 0; i < nr; i++)
+			vec[i] = 0;
 	}
 
 	return nr;