uprobes: Kill dup_mmap()->uprobe_mmap(), simplify uprobe_mmap/munmap
authorOleg Nesterov <oleg@redhat.com>
Mon, 6 Aug 2012 12:13:23 +0000 (14:13 +0200)
committerOleg Nesterov <oleg@redhat.com>
Tue, 28 Aug 2012 16:21:17 +0000 (18:21 +0200)
commitf1a45d023193f7d8e55e384090b645d609325393
tree7f901f3dbd23a7602bf3d4bf774862a3ee5b7640
parent647c42dfd40fec032a4c8525a755160f0765921f
uprobes: Kill dup_mmap()->uprobe_mmap(), simplify uprobe_mmap/munmap

1. Kill dup_mmap()->uprobe_mmap(), it was only needed to calculate
   new_mm->uprobes_state.count removed by the previous patch.

   If the forking process has a pending uprobe (int3) in vma, it will
   be copied by copy_page_range(), note that it checks vma->anon_vma
   so "Don't copy ptes" is not possible after install_breakpoint()
   which does anon_vma_prepare().

2. Remove is_swbp_at_addr() and "int count" in uprobe_mmap(). Again,
   this was needed for uprobes_state.count.

   As a side effect this fixes the bug pointed out by Srikar,
   this code lacked the necessary put_uprobe().

3. uprobe_munmap() becomes a nop after the previous patch. Remove the
   meaningless code but do not remove the helper, we will need it.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
kernel/events/uprobes.c
kernel/fork.c