On 07/03, Oleg Nesterov wrote: > > In short. There is a 1:1 relationship between uprobe_write_opcode(is_register > => 1) > and install_breakpoint(), and between uprobe_write_opcode(is_register => 0) > and > remove_breakpoint(). Whatever uprobe_write_opcode() can do if is_register == > 1 can be > done in install_breakpoint(), the same for is_register == 0 and > remove_breakpont(). > > What have I missed?
Ah. I missed the fact that uprobe_write_opcode() doesn't do update_ref_ctr() if verify_opcode() returns false. Now I understand what did you mean by "for each consumer". So if we move this logic into install/remove_breakpoint as I tried to suggest, we will also need another error code for the case when verify_opcode() returns false. Oleg.