[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200710181331.1ad69ef6@oasis.local.home>
Date: Fri, 10 Jul 2020 18:13:31 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org, mhiramat@...nel.org,
bristot@...hat.com, jbaron@...mai.com,
torvalds@...ux-foundation.org, tglx@...utronix.de,
mingo@...nel.org, namit@...are.com, hpa@...or.com, luto@...nel.org,
ard.biesheuvel@...aro.org, jpoimboe@...hat.com,
pbonzini@...hat.com, mathieu.desnoyers@...icios.com,
linux@...musvillemoes.dk
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@...radead.org> wrote:
> From: Josh Poimboeuf <jpoimboe@...hat.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
Powered by blists - more mailing lists