-EEXIST from install_breakpoint() no longer makes sense, all
callers should simply treat it as "success". Change the code
to return zero and simplify register_for_each_vma().

Signed-off-by: Oleg Nesterov <o...@redhat.com>
---
 kernel/events/uprobes.c |   16 +++++-----------
 1 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 2e269d1..309309e 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -334,7 +334,7 @@ int __weak set_swbp(struct arch_uprobe *auprobe, struct 
mm_struct *mm, unsigned
         */
        result = is_swbp_at_addr(mm, vaddr);
        if (result == 1)
-               return -EEXIST;
+               return 0;
 
        if (result)
                return result;
@@ -659,7 +659,7 @@ install_breakpoint(struct uprobe *uprobe, struct mm_struct 
*mm,
         * Hence behave as if probe already existed.
         */
        if (!uprobe->consumers)
-               return -EEXIST;
+               return 0;
 
        if (!(uprobe->flags & UPROBE_COPY_INSN)) {
                ret = copy_insn(uprobe, vma->vm_file);
@@ -819,17 +819,11 @@ static int register_for_each_vma(struct uprobe *uprobe, 
bool is_register)
                    vaddr_to_offset(vma, info->vaddr) != uprobe->offset)
                        goto unlock;
 
-               if (is_register) {
+               if (is_register)
                        err = install_breakpoint(uprobe, mm, vma, info->vaddr);
-                       /*
-                        * We can race against uprobe_mmap(), see the
-                        * comment near uprobe_hash().
-                        */
-                       if (err == -EEXIST)
-                               err = 0;
-               } else {
+               else
                        remove_breakpoint(uprobe, mm, info->vaddr);
-               }
+
  unlock:
                up_write(&mm->mmap_sem);
  free:
-- 
1.5.5.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to