diff --git a/mm/filemap.c b/mm/filemap.c
index 5357fcc4643b5a653c82d849690ababaeaec9a0e..4eb958c402fe298b011c82c1d1cbe868b3f8e485 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1332,7 +1332,7 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 	struct file_ra_state *ra = &file->f_ra;
 	struct inode *inode = mapping->host;
 	struct page *page;
-	unsigned long size;
+	pgoff_t size;
 	int did_readaround = 0;
 	int ret = 0;
 
diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
index 0420a0292b0306425306b8db141b55b59f1010be..5e598c42afd726be44f9d862a086d52ed8adbd2a 100644
--- a/mm/filemap_xip.c
+++ b/mm/filemap_xip.c
@@ -56,7 +56,8 @@ do_xip_mapping_read(struct address_space *mapping,
 		    read_actor_t actor)
 {
 	struct inode *inode = mapping->host;
-	unsigned long index, end_index, offset;
+	pgoff_t index, end_index;
+	unsigned long offset;
 	loff_t isize;
 
 	BUG_ON(!mapping->a_ops->get_xip_page);