lkml.org 
[lkml]   [2018]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 2/3] x86/speculation: apply IBPB more strictly to avoid cross-process data leak
    On Tue, 4 Sep 2018, Jiri Kosina wrote:
    > if (tsk && tsk->mm &&
    > tsk->mm->context.ctx_id != last_ctx_id &&
    > - get_dumpable(tsk->mm) != SUID_DUMP_USER)
    > + ___ptrace_may_access(current, tsk, PTRACE_MODE_IBPB))

    Uurgh. If X86_FEATURE_USE_IBPB is not enabled, then the whole
    __ptrace_may_access() overhead is just done for nothing.

    > indirect_branch_prediction_barrier();

    This really wants to be runtime patched:

    if (static_cpu_has(X86_FEATURE_USE_IBPB))
    stop_speculation(tsk, last_ctx_id);

    and have an inline for that:

    static inline void stop_speculation(struct task_struct *tsk, u64 last_ctx_id)
    {
    if (tsk && tsk->mm && tsk->mm->context.ctx_id != last_ctx_id &&
    ___ptrace_may_access(current, tsk, PTRACE_MODE_IBPB))
    indirect_branch_prediction_barrier();
    }

    which also makes the whole mess readable.

    Hmm?

    Thanks,

    tglx



    \
     
     \ /
      Last update: 2018-09-04 18:20    [W:9.106 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site