On Mon, 26 Nov 2018 at 17:08, Peter Zijlstra <[email protected]> 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? :-)

Reply via email to