OSDN Git Service

livepatch: Change unsigned long old_addr -> void *old_func in struct klp_func
authorPetr Mladek <pmladek@suse.com>
Wed, 9 Jan 2019 12:43:19 +0000 (13:43 +0100)
committerJiri Kosina <jkosina@suse.cz>
Fri, 11 Jan 2019 19:51:23 +0000 (20:51 +0100)
commit19514910d021c93c7823ec32067e6b7dea224f0f
tree3df053de0eb62fec2557e24bd807cae328d4f21a
parent1686cc1a31f45a3fd090e5d0c6fce777422e13fa
livepatch: Change unsigned long old_addr -> void *old_func in struct klp_func

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 are derived from the way
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 unsigned long old_addr -> void *old_func. 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_func = func->old_func.

This patch does not modify the existing behavior.

Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
Acked-by: Alice Ferrazzi <alice.ferrazzi@gmail.com>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
include/linux/livepatch.h
kernel/livepatch/core.c
kernel/livepatch/patch.c
kernel/livepatch/patch.h
kernel/livepatch/transition.c