The patch titled maps: remove vma from args in the page walker has been added to the -mm tree. Its filename is maps2-remove-vma-from-args-in-the-page-walker.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: maps: remove vma from args in the page walker From: Matt Mackall <mpm@xxxxxxxxxxx> This makes the walker more generic. Signed-off-by: Matt Mackall <mpm@xxxxxxxxxxx> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/proc/task_mmu.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff -puN fs/proc/task_mmu.c~maps2-remove-vma-from-args-in-the-page-walker fs/proc/task_mmu.c --- a/fs/proc/task_mmu.c~maps2-remove-vma-from-args-in-the-page-walker +++ a/fs/proc/task_mmu.c @@ -309,25 +309,26 @@ static void walk_pud_range(pgd_t *pgd, u } /* - * walk_page_range - walk the page tables of a VMA with a callback - * @vma - VMA to walk + * walk_page_range - walk a memory map's page tables with a callback + * @mm - memory map to walk + * @addr - starting address + * @end - ending address * @action - callback invoked for every bottom-level (PTE) page table * @private - private data passed to the callback function * * Recursively walk the page table for the memory area in a VMA, calling * a callback for every bottom-level (PTE) page table. */ -static void walk_page_range(struct vm_area_struct *vma, +static void walk_page_range(struct mm_struct *mm, + unsigned long addr, unsigned long end, void (*action)(pmd_t *, unsigned long, unsigned long, void *), void *private) { - unsigned long addr = vma->vm_start; - unsigned long end = vma->vm_end; pgd_t *pgd; unsigned long next; - for (pgd = pgd_offset(vma->vm_mm, addr); addr != end; + for (pgd = pgd_offset(mm, addr); addr != end; pgd++, addr = next) { next = pgd_addr_end(addr, end); if (pgd_none_or_clear_bad(pgd)) @@ -344,7 +345,8 @@ static int show_smap(struct seq_file *m, memset(&mss, 0, sizeof mss); mss.vma = vma; if (vma->vm_mm && !is_vm_hugetlb_page(vma)) - walk_page_range(vma, smaps_pte_range, &mss); + walk_page_range(vma->vm_mm, vma->vm_start, vma->vm_end, + smaps_pte_range, &mss); return show_map_internal(m, v, &mss); } @@ -355,7 +357,8 @@ void clear_refs_smap(struct mm_struct *m down_read(&mm->mmap_sem); for (vma = mm->mmap; vma; vma = vma->vm_next) if (vma->vm_mm && !is_vm_hugetlb_page(vma)) - walk_page_range(vma, clear_refs_pte_range, vma); + walk_page_range(vma->vm_mm, vma->vm_start, vma->vm_end, + clear_refs_pte_range, vma); flush_tlb_mm(mm); up_read(&mm->mmap_sem); } _ Patches currently in -mm which might be from mpm@xxxxxxxxxxx are slab-introduce-krealloc.patch slab-introduce-krealloc-fix.patch smaps-add-clear_refs-file-to-clear-reference-cleanup.patch maps2-uninline-some-functions-in-the-page-walker.patch maps2-eliminate-the-pmd_walker-struct-in-the-page-walker.patch maps2-remove-vma-from-args-in-the-page-walker.patch maps2-propagate-errors-from-callback-in-page-walker.patch maps2-add-callbacks-for-each-level-to-page-walker.patch maps2-move-the-page-walker-code-to-lib.patch maps2-simplify-interdependence-of-proc-pid-maps-and-smaps.patch maps2-move-clear_refs-code-to-task_mmuc.patch maps2-regroup-task_mmu-by-interface.patch maps2-make-proc-pid-smaps-optional-under-config_embedded.patch maps2-make-proc-pid-clear_refs-option-under-config_embedded.patch maps2-add-proc-pid-pagemap-interface.patch maps2-add-proc-kpagemap-interface.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html