• Oleg Nesterov's avatar
    uprobes/x86: Conditionalize the usage of handle_riprel_insn() · e55848a4
    Oleg Nesterov authored
    arch_uprobe_analyze_insn() calls handle_riprel_insn() at the start,
    but only "0xff" and "default" cases need the UPROBE_FIX_RIP_ logic.
    Move the callsite into "default" case and change the "0xff" case to
    fall-through.
    
    We are going to add the various hooks to handle the rip-relative
    jmp/call instructions (and more), we need this change to enforce the
    fact that the new code can not conflict with is_riprel_insn() logic
    which, after this change, can only be used by default_xol_ops.
    
    Note: arch_uprobe_abort_xol() still calls handle_riprel_post_xol()
    directly. This is fine unless another _xol_ops we may add later will
    need to reuse "UPROBE_FIX_RIP_AX|UPROBE_FIX_RIP_CX" bits in ->fixup.
    In this case we can add uprobe_xol_ops->abort() hook, which (perhaps)
    we will need anyway in the long term.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Reviewed-by: default avatarJim Keniston <jkenisto@us.ibm.com>
    Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    e55848a4
uprobes.c 22.8 KB