diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index d231f23088a7738f614a9b9ffa719170373b8704..9951fb7412cc73dffdf2695c6c4e5e80f3e62c67 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -6546,7 +6546,7 @@ struct page *hugetlb_follow_page_mask(struct vm_area_struct *vma,
 			}
 		}
 
-		page += ((address & ~huge_page_mask(h)) >> PAGE_SHIFT);
+		page = nth_page(page, ((address & ~huge_page_mask(h)) >> PAGE_SHIFT));
 
 		/*
 		 * Note that page may be a sub-page, and with vmemmap