Index: kernel/generic/src/mm/backend_anon.c
===================================================================
--- kernel/generic/src/mm/backend_anon.c	(revision c99693a9b69ad41dd664481e472c657770b571c1)
+++ kernel/generic/src/mm/backend_anon.c	(revision b4ffe5bc5eb3ffce96cc4d6093843f6d99cd1144)
@@ -122,9 +122,9 @@
 				page_table_lock(area->as, false);
 				pte = page_mapping_find(area->as,
-				    base + j * PAGE_SIZE, false);
+				    base + P2SZ(j), false);
 				ASSERT(pte && PTE_VALID(pte) &&
 				    PTE_PRESENT(pte));
 				btree_insert(&area->sh_info->pagemap,
-				    (base + j * PAGE_SIZE) - area->base,
+				    (base + P2SZ(j)) - area->base,
 				    (void *) PTE_GET_FRAME(pte), NULL);
 				page_table_unlock(area->as, false);
Index: kernel/generic/src/mm/backend_elf.c
===================================================================
--- kernel/generic/src/mm/backend_elf.c	(revision c99693a9b69ad41dd664481e472c657770b571c1)
+++ kernel/generic/src/mm/backend_elf.c	(revision b4ffe5bc5eb3ffce96cc4d6093843f6d99cd1144)
@@ -170,5 +170,5 @@
 			if (!(area->flags & AS_AREA_WRITE))
 				if (base >= entry->p_vaddr &&
-				    base + count * PAGE_SIZE <= start_anon)
+				    base + P2SZ(count) <= start_anon)
 					continue;
 			
@@ -182,15 +182,14 @@
 				if (!(area->flags & AS_AREA_WRITE))
 					if (base >= entry->p_vaddr &&
-					    base + (j + 1) * PAGE_SIZE <=
-					    start_anon)
+					    base + P2SZ(j + 1) <= start_anon)
 						continue;
 				
 				page_table_lock(area->as, false);
 				pte = page_mapping_find(area->as,
-				    base + j * PAGE_SIZE, false);
+				    base + P2SZ(j), false);
 				ASSERT(pte && PTE_VALID(pte) &&
 				    PTE_PRESENT(pte));
 				btree_insert(&area->sh_info->pagemap,
-				    (base + j * PAGE_SIZE) - area->base,
+				    (base + P2SZ(j)) - area->base,
 				    (void *) PTE_GET_FRAME(pte), NULL);
 				page_table_unlock(area->as, false);
