
From: Hugh Dickins <hugh@veritas.com>

From: Andrea Arcangeli <andrea@suse.de>

zap_pmd_range, alone of all those page_range loops, lacks the check for
whether address wrapped.  Hugh is in doubt as to whether this makes any
difference to any config on any arch, but eager to fix the odd one out.


---

 25-akpm/mm/memory.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN mm/memory.c~rmap-32-zap_pmd_range-wrap mm/memory.c
--- 25/mm/memory.c~rmap-32-zap_pmd_range-wrap	2004-05-08 21:56:29.127748904 -0700
+++ 25-akpm/mm/memory.c	2004-05-08 21:56:29.132748144 -0700
@@ -449,7 +449,7 @@ static void zap_pmd_range(struct mmu_gat
 		zap_pte_range(tlb, pmd, address, end - address, details);
 		address = (address + PMD_SIZE) & PMD_MASK; 
 		pmd++;
-	} while (address < end);
+	} while (address && (address < end));
 }
 
 static void unmap_page_range(struct mmu_gather *tlb,

_
