Messages in this thread Patch in this message | | | Subject | [PATCH] fs/proc: smaps should avoid VM_PFNMAP areas | From | Cliff Wickman <> | Date | Mon, 29 Apr 2013 16:25:53 -0500 |
| |
/proc/<pid>/smaps should not be looking at VM_PFNMAP areas.
Certain tests in show_smap() (especially for huge pages) assume that the mapped PFN's are backed with page structures. And this is not usually true for VM_PFNMAP areas. This can result in panics on kernel page faults when attempting to address those page structures.
VM_PFNMAP areas are used by - graphics memory manager gpu/drm/drm_gem.c - global reference unit sgi-gru/grufile.c - sgi special memory char/mspec.c - probably several out-of-tree modules
I'm copying everyone who has changed fs/proc/task_mmu.c recently, in case of some reason to provide /proc/<pid>/smaps for these areas that I am not aware of.
Signed-off-by: Cliff Wickman <cpw@sgi.com> --- fs/proc/task_mmu.c | 3 +++ 1 file changed, 3 insertions(+)
Index: linux/fs/proc/task_mmu.c =================================================================== --- linux.orig/fs/proc/task_mmu.c +++ linux/fs/proc/task_mmu.c @@ -589,6 +589,9 @@ static int show_smap(struct seq_file *m, .private = &mss, }; + if (vma->vm_flags & VM_PFNMAP) + return 0; + memset(&mss, 0, sizeof mss); mss.vma = vma; /* mmap_sem is held in m_start */
| |