• KAMEZAWA Hiroyuki's avatar
    proc: pagemap: Hold mmap_sem during page walk · d82ef020
    KAMEZAWA Hiroyuki authored
    In initial design, walk_page_range() was designed just for walking page
    table and it didn't require mmap_sem.  Now, find_vma() etc..  are used
    in walk_page_range() and we need mmap_sem around it.
    
    This patch adds mmap_sem around walk_page_range().
    
    Because /proc/<pid>/pagemap's callback routine use put_user(), we have
    to get rid of it to do sane fix.
    
    Changelog: 2010/Apr/2
     - fixed start_vaddr and end overflow
    Changelog: 2010/Apr/1
     - fixed start_vaddr calculation
     - removed unnecessary cast.
     - removed unnecessary change in smaps.
     - use GFP_TEMPORARY instead of GFP_KERNEL
    Signed-off-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Matt Mackall <mpm@selenic.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: San Mehat <san@google.com>
    Cc: Brian Swetland <swetland@google.com>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    [ Fixed kmalloc failure return code as per Matt ]
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d82ef020
task_mmu.c 20.9 KB