Jesse Barnes <[EMAIL PROTECTED]> wrote: > > I'd be happy to test and fix things, but the page table walker patches broke > ia64... Once that's cleared up I can go digging.
We're hoping that davem's fix (committed yesterday) fixed that. 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) ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel