uprobes: Remove insert_vm_struct()->uprobe_mmap()
authorOleg Nesterov <[email protected]>
Sun, 29 Jul 2012 18:22:38 +0000 (20:22 +0200)
committerIngo Molnar <[email protected]>
Mon, 30 Jul 2012 09:27:22 +0000 (11:27 +0200)
Remove insert_vm_struct()->uprobe_mmap(). It is not needed, nobody
except arch/ia64/kernel/perfmon.c uses insert_vm_struct(vma)
with vma->vm_file != NULL.

And it is wrong. Again, get_user_pages() can not succeed before
vma_link(vma) makes is visible to find_vma(). And even if this
worked, we must not insert the new bp before this mapping is
visible to vma_prio_tree_foreach() for uprobe_unregister().

Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Srikar Dronamraju <srikar.vnet.ibm.com>
Cc: Anton Arapov <[email protected]>
Cc: Srikar Dronamraju <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
mm/mmap.c

index e5a46149d1f1e7959c5a998e538cea831f0aaa45..4fe2697339ed479296d9fb9b54553e32b8f8fe7f 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2345,9 +2345,6 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
             security_vm_enough_memory_mm(mm, vma_pages(vma)))
                return -ENOMEM;
 
-       if (vma->vm_file && uprobe_mmap(vma))
-               return -EINVAL;
-
        vma_link(mm, vma, prev, rb_link, rb_parent);
        return 0;
 }