Messages in this thread | | | Date | Sat, 6 Oct 2012 14:18:58 +0530 | From | Srikar Dronamraju <> | Subject | Re: [PATCH 3/7] uprobes: Do not delete uprobe if uprobe_unregister() fails |
| |
* Oleg Nesterov <oleg@redhat.com> [2012-09-30 21:42:04]:
> delete_uprobe() must not be called if register_for_each_vma(false) > fails to remove all breakpoints, __uprobe_unregister() is correct. > The problem is that register_for_each_vma(false) always returns 0 > and thus this logic does not work. > > 1. Change verify_opcode() to return 0 rather than -EINVAL when > unregister detects the !is_swbp insn, we can treat this case > as success and currently unregister paths ignore the error > code anyway. > > 2. Change remove_breakpoint() to propagate the error code from > write_opcode(). > > 3. Change register_for_each_vma(is_register => false) to remove > as much breakpoints as possible but return non-zero if > remove_breakpoint() fails at least once. > > Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
| |