Commit 78f74116 authored by Oleg Nesterov's avatar Oleg Nesterov

uprobes: Do not use -EEXIST in install_breakpoint() paths

-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: default avatarOleg Nesterov <oleg@redhat.com>
Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
parent 5e5be71a
...@@ -332,7 +332,7 @@ int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned ...@@ -332,7 +332,7 @@ int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned
*/ */
result = is_swbp_at_addr(mm, vaddr); result = is_swbp_at_addr(mm, vaddr);
if (result == 1) if (result == 1)
return -EEXIST; return 0;
if (result) if (result)
return result; return result;
...@@ -657,7 +657,7 @@ install_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, ...@@ -657,7 +657,7 @@ install_breakpoint(struct uprobe *uprobe, struct mm_struct *mm,
* Hence behave as if probe already existed. * Hence behave as if probe already existed.
*/ */
if (!uprobe->consumers) if (!uprobe->consumers)
return -EEXIST; return 0;
if (!(uprobe->flags & UPROBE_COPY_INSN)) { if (!(uprobe->flags & UPROBE_COPY_INSN)) {
ret = copy_insn(uprobe, vma->vm_file); ret = copy_insn(uprobe, vma->vm_file);
...@@ -817,17 +817,11 @@ static int register_for_each_vma(struct uprobe *uprobe, bool is_register) ...@@ -817,17 +817,11 @@ static int register_for_each_vma(struct uprobe *uprobe, bool is_register)
vaddr_to_offset(vma, info->vaddr) != uprobe->offset) vaddr_to_offset(vma, info->vaddr) != uprobe->offset)
goto unlock; goto unlock;
if (is_register) { if (is_register)
err = install_breakpoint(uprobe, mm, vma, info->vaddr); err = install_breakpoint(uprobe, mm, vma, info->vaddr);
/* else
* We can race against uprobe_mmap(), see the
* comment near uprobe_hash().
*/
if (err == -EEXIST)
err = 0;
} else {
remove_breakpoint(uprobe, mm, info->vaddr); remove_breakpoint(uprobe, mm, info->vaddr);
}
unlock: unlock:
up_write(&mm->mmap_sem); up_write(&mm->mmap_sem);
free: free:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment