Small fix to the PageReserved patch: the mips ZERO_PAGE(address) depends on address, so __xip_unmap is wrong to initialize page with that before address is initialized; and in fact must re-evaluate it each iteration. Signed-off-by: Hugh Dickins --- Signed-off-by: Andrew Morton --- mm/filemap_xip.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN mm/filemap_xip.c~mm-xip_unmap-zero_page-fix mm/filemap_xip.c --- devel/mm/filemap_xip.c~mm-xip_unmap-zero_page-fix 2005-10-13 16:06:16.000000000 -0700 +++ devel-akpm/mm/filemap_xip.c 2005-10-13 16:06:16.000000000 -0700 @@ -174,7 +174,7 @@ __xip_unmap (struct address_space * mapp unsigned long address; pte_t *pte; pte_t pteval; - struct page *page = ZERO_PAGE(address); + struct page *page; spin_lock(&mapping->i_mmap_lock); vma_prio_tree_foreach(vma, &iter, &mapping->i_mmap, pgoff, pgoff) { @@ -182,6 +182,7 @@ __xip_unmap (struct address_space * mapp address = vma->vm_start + ((pgoff - vma->vm_pgoff) << PAGE_SHIFT); BUG_ON(address < vma->vm_start || address >= vma->vm_end); + page = ZERO_PAGE(address); /* * We need the page_table_lock to protect us from page faults, * munmap, fork, etc... _