ChangeSet 1.2181.1.2, 2005/03/14 21:16:17-08:00, [EMAIL PROTECTED]
[MM]: Restore pgd_index() iteration to clear_page_range().
Otherwise ia64 and sparc64 explode with the new ptwalk
iterators. The pgd level stuff does not handle virtual
address space holes (sparc64) and region based PGD indexing
(ia64) properly. It only matters in functions like
clear_page_range() which potentially walk over more than
a single VMA worth of address space.
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
memory.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff -Nru a/mm/memory.c b/mm/memory.c
--- a/mm/memory.c 2005-03-15 00:06:50 -08:00
+++ b/mm/memory.c 2005-03-15 00:06:50 -08:00
@@ -182,15 +182,19 @@
unsigned long addr, unsigned long end)
{
pgd_t *pgd;
- unsigned long next;
+ unsigned long i, next;
pgd = pgd_offset(tlb->mm, addr);
- do {
+ for (i = pgd_index(addr); i <= pgd_index(end-1); i++) {
next = pgd_addr_end(addr, end);
if (pgd_none_or_clear_bad(pgd))
continue;
clear_pud_range(tlb, pgd, addr, next);
- } while (pgd++, addr = next, addr != end);
+ pgd++;
+ addr = next;
+ if (addr == end)
+ break;
+ }
}
pte_t fastcall * pte_alloc_map(struct mm_struct *mm, pmd_t *pmd, unsigned long
address)
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html