lkml.org 
[lkml]   [2020]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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

\
 
 \ /
  Last update: 2020-07-11 00:14    [W:0.250 / U:0.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site