Re: [PATCH v6 13/17] static_call: Add static_call_cond()

From: Peter Zijlstra
Date: Sat Jul 11 2020 - 01:10:45 EST


On Fri, Jul 10, 2020 at 07:08:25PM -0400, Steven Rostedt wrote:
> On Fri, 10 Jul 2020 15:38:44 +0200
> Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > +static void __static_call_transform(void *insn, enum insn_type type, void *func)
> > {
> > - const void *code = text_gen_insn(opcode, insn, func);
> > + int size = CALL_INSN_SIZE;
> > + const void *code;
> >
> > - if (WARN_ONCE(*(u8 *)insn != opcode,
> > - "unexpected static call insn opcode 0x%x at %pS\n",
> > - opcode, insn))
>
> I would still feel better if we did some sort of sanity check before
> just writing to the text. Confirm this is a jmp, call, ret or nop?

I'll see if I can come up with something, but I'm not sure we keep
enough state to be able to reconstruct what should be there.