Index: kernel/generic/src/mm/backend_elf.c
===================================================================
--- kernel/generic/src/mm/backend_elf.c	(revision 01029fc7e46acbe4cd80f0a678a085d214882028)
+++ kernel/generic/src/mm/backend_elf.c	(revision 0041cd6d597281fdb27ed659c3150bb7003ececa)
@@ -235,5 +235,5 @@
  *
  * @param area		Pointer to the address space area.
- * @param addr		Faulting virtual address.
+ * @param upage		Faulting virtual page.
  * @param access	Access mode that caused the fault (i.e.
  * 			read/write/exec).
@@ -242,5 +242,5 @@
  * 			on success (i.e. serviced).
  */
-int elf_page_fault(as_area_t *area, uintptr_t addr, pf_access_t access)
+int elf_page_fault(as_area_t *area, uintptr_t upage, pf_access_t access)
 {
 	elf_header_t *elf = area->backend_data.elf;
@@ -250,5 +250,4 @@
 	uintptr_t frame;
 	uintptr_t kpage;
-	uintptr_t upage;
 	uintptr_t start_anon;
 	size_t i;
@@ -257,20 +256,18 @@
 	ASSERT(page_table_locked(AS));
 	ASSERT(mutex_locked(&area->lock));
+	ASSERT(IS_ALIGNED(upage, PAGE_SIZE));
 
 	if (!as_area_check_access(area, access))
 		return AS_PF_FAULT;
 	
-	if (addr < ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE))
+	if (upage < ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE))
 		return AS_PF_FAULT;
 	
-	if (addr >= entry->p_vaddr + entry->p_memsz)
+	if (upage >= entry->p_vaddr + entry->p_memsz)
 		return AS_PF_FAULT;
 	
-	i = (addr - ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) >> PAGE_WIDTH;
+	i = (upage - ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE)) >> PAGE_WIDTH;
 	base = (uintptr_t)
 	    (((void *) elf) + ALIGN_DOWN(entry->p_offset, PAGE_SIZE));
-
-	/* Virtual address of faulting page */
-	upage = ALIGN_DOWN(addr, PAGE_SIZE);
 
 	/* Virtual address of the end of initialized part of segment */
