lkml.org 
[lkml]   [2018]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 4/4] x86/static_call: Add inline static call implementation for x86-64
    On Mon, Nov 26, 2018 at 05:39:23PM +0100, Peter Zijlstra wrote:
    > On Mon, Nov 26, 2018 at 05:11:05PM +0100, Ard Biesheuvel wrote:
    > > On Mon, 26 Nov 2018 at 17:08, Peter Zijlstra <peterz@infradead.org> wrote:
    > > >
    > > > On Mon, Nov 26, 2018 at 07:55:00AM -0600, Josh Poimboeuf wrote:
    > > > > +#ifdef CONFIG_HAVE_STATIC_CALL_INLINE
    > > > > +void arch_static_call_defuse_tramp(void *site, void *tramp)
    > > > > +{
    > > > > + unsigned short opcode = INSN_UD2;
    > > > > +
    > > > > + mutex_lock(&text_mutex);
    > > > > + text_poke((void *)tramp, &opcode, 2);
    > > > > + mutex_unlock(&text_mutex);
    > > > > +}
    > > > > +#endif
    > > >
    > > > I would rather think that makes the trampoline _more_ dangerous, rather
    > > > than less so.
    > > >
    > > > My dictionary sayeth:
    > > >
    > > > defuse: verb
    > > >
    > > > - remove the fuse from (an explosive device) in order to prevent it
    > > > from exploding.
    > > >
    > > > - make (a situation) less tense or dangerous
    > > >
    > > > patching in an UD2 seems to do the exact opposite.
    > >
    > > That is my fault.
    > >
    > > The original name was 'poison' iirc, but on arm64, we need to retain
    > > the trampoline for cases where the direct branch is out of range, and
    > > so poisoning is semantically inaccurate.
    > >
    > > But since you opened your dictionary anyway, any better suggestions? :-)
    >
    > I was leaning towards: "prime", but I'm not entirely sure that works
    > with your case.

    Maybe we should just go back to "poison", along with a comment that it
    will not necessarily be poisoned for all arches. I think "poison" at
    least describes the intent, if not always the implementation.

    --
    Josh

    \
     
     \ /
      Last update: 2018-11-26 17:45    [W:3.386 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site