lkml.org 
[lkml]   [2018]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v12 01/12] livepatch: Change void *new_func -> unsigned long new_addr in struct klp_func
On Tue, 28 Aug 2018, Petr Mladek wrote:

> The address of the to be patched function and new function is stored
> in struct klp_func as:
>
> void *new_func;
> unsigned long old_addr;
>
> The different naming scheme and type is derived from the way how
> the addresses are set. @old_addr is assigned at runtime using
> kallsyms-based search. @new_func is statically initialized,
> for example:
>
> static struct klp_func funcs[] = {
> {
> .old_name = "cmdline_proc_show",
> .new_func = livepatch_cmdline_proc_show,
> }, { }
> };
>
> This patch changes void *new_func -> unsigned long new_addr. It removes
> some confusion when these address are later used in the code. It is
> motivated by a followup patch that adds special NOP struct klp_func
> where we want to assign func->new_func = func->old_addr respectively
> func->new_addr = func->old_addr.
>
> This patch does not modify the existing behavior.
>
> IMPORTANT: This patch modifies ABI. The patches will need to use,
> for example:
>
> static struct klp_func funcs[] = {
> {
> .old_name = "cmdline_proc_show",
> .new_addr = (unsigned long)livepatch_cmdline_proc_show,
> }, { }
> };
>
> Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
> Signed-off-by: Petr Mladek <pmladek@suse.com>

I'm not convinced the patch makes things any better. The next patch
slightly improves it, but still. Is new_func really such a problem?

Thanks,
Miroslav

\
 
 \ /
  Last update: 2018-08-31 10:39    [W:0.081 / U:52.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site