lkml.org 
[lkml]   [2018]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 3/3] kprobes/x86: Simplify indirect-jump check in retpoline
    From
    Date
    On 2018/10/30 16:36, Peter Zijlstra wrote:
    > On Mon, Oct 29, 2018 at 11:55:06PM -0700, Zhenzhong Duan wrote:
    >> Since CONFIG_RETPOLINE hard depends on compiler support now, so
    >> replacing indirect-jump check with the range check is safe in that case.
    >
    > Can we put kprobes on module init text before we run alternatives on it?

    Forgive me I doesn't understand your question. Do you mean this patch
    impact kprobes on module init text?

    >
    >> @@ -240,20 +242,16 @@ static int insn_jump_into_range(struct insn *insn, unsigned long start, int len)
    >>
    >> static int insn_is_indirect_jump(struct insn *insn)
    >> {
    >> - int ret = __insn_is_indirect_jump(insn);
    >> + int ret;
    >>
    >> #ifdef CONFIG_RETPOLINE
    >> - /*
    >> - * Jump to x86_indirect_thunk_* is treated as an indirect jump.
    >> - * Note that even with CONFIG_RETPOLINE=y, the kernel compiled with
    >> - * older gcc may use indirect jump. So we add this check instead of
    >> - * replace indirect-jump check.
    >> - */
    >> - if (!ret)
    >> + /* Jump to x86_indirect_thunk_* is treated as an indirect jump. */
    >> ret = insn_jump_into_range(insn,
    >> (unsigned long)__indirect_thunk_start,
    >> (unsigned long)__indirect_thunk_end -
    >> (unsigned long)__indirect_thunk_start);
    >> +#else
    >> + ret = __insn_is_indirect_jump(insn);
    >> #endif
    >> return ret;
    >> }
    >
    > The resulting code is indented wrong.
    >

    Oh, yes. Thanks for point out.

    Zhenzhong

    \
     
     \ /
      Last update: 2018-10-31 07:01    [W:3.259 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site