• Oleg Nesterov's avatar
    uprobes/x86: Kill adjust_ret_addr(), simplify UPROBE_FIX_CALL logic · 1dc76e6e
    Oleg Nesterov authored
    The only insn which could have both UPROBE_FIX_IP and UPROBE_FIX_CALL
    was 0xe8 "call relative", and now it is handled by branch_xol_ops.
    
    So we can change default_post_xol_op(UPROBE_FIX_CALL) to simply push
    the address of next insn == utask->vaddr + insn.length, just we need
    to record insn.length into the new auprobe->def.ilen member.
    
    Note: if/when we teach branch_xol_ops to support jcxz/loopz we can
    remove the "correction" logic, UPROBE_FIX_IP can use the same address.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    1dc76e6e
uprobes.h 1.61 KB