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 <pet...@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