Messages in this thread | | | Date | Fri, 10 Jul 2020 18:13:31 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH v6 09/17] x86/static_call: Add out-of-line static call implementation |
| |
On Fri, 10 Jul 2020 15:38:40 +0200 Peter Zijlstra <peterz@infradead.org> wrote:
> From: Josh Poimboeuf <jpoimboe@redhat.com> > > Add the x86 out-of-line static call implementation. For each key, a > permanent trampoline is created which is the destination for all static > calls for the given key. The trampoline has a direct jump which gets > patched by static_call_update() when the destination function changes.
FYI, I get the following warnings after applying this patch.
/work/git/linux-test.git/arch/x86/kernel/static_call.c: In function ‘__static_call_transform’: /work/git/linux-test.git/arch/x86/kernel/static_call.c:9:43: warning: passing argument 2 of ‘text_gen_insn’ makes pointer from integer without a cast [-Wint-conversion] 9 | const void *code = text_gen_insn(opcode, (long)insn, (long)func); | ^~~~~~~~~~ | | | long int In file included from /work/git/linux-test.git/arch/x86/include/asm/static_call.h:5, from /work/git/linux-test.git/include/linux/static_call.h:62, from /work/git/linux-test.git/arch/x86/kernel/static_call.c:2: /work/git/linux-test.git/arch/x86/include/asm/text-patching.h:95:44: note: expected ‘const void *’ but argument is of type ‘long int’ 95 | void *text_gen_insn(u8 opcode, const void *addr, const void *dest) | ~~~~~~~~~~~~^~~~ /work/git/linux-test.git/arch/x86/kernel/static_call.c:9:55: warning: passing argument 3 of ‘text_gen_insn’ makes pointer from integer without a cast [-Wint-conversion] 9 | const void *code = text_gen_insn(opcode, (long)insn, (long)func); | ^~~~~~~~~~ | | | long int In file included from /work/git/linux-test.git/arch/x86/include/asm/static_call.h:5, from /work/git/linux-test.git/include/linux/static_call.h:62, from /work/git/linux-test.git/arch/x86/kernel/static_call.c:2: /work/git/linux-test.git/arch/x86/include/asm/text-patching.h:95:62: note: expected ‘const void *’ but argument is of type ‘long int’ 95 | void *text_gen_insn(u8 opcode, const void *addr, const void *dest)
-- Steve
| |