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:0.076 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site