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@xxxxxxxxxx> > Signed-off-by: Petr Mladek <pmladek@xxxxxxxx> 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