Messages in this thread |  | | Date | Mon, 9 Apr 2018 15:53:03 +0200 (CEST) | From | Miroslav Benes <> | Subject | Re: [PATCH 3/8] livepatch: Add atomic replace |
| |
> > + * see klp_init_object_loaded(). > > + */ > > + if (!func->new_func && !func->nop) > > return -EINVAL; > > > > > INIT_LIST_HEAD(&func->stack_node); > > @@ -742,6 +920,9 @@ static int klp_init_object_loaded(struct klp_patch *patch, > > return -ENOENT; > > } > > > > + if (func->nop) > > + func->new_func = (void *)func->old_addr; > > + > > These changes make it more obvious that 'new_func' isn't quite the right > name. It should really be 'new_addr' IMO.
I think we wanted to point out the difference from old_addr which is initialized with the symbol name while new_func is initialized with the new function itself (function pointer). I agree though that it looks awkward in this context and I'm not against changing it to new_addr.
Petr, could you also add a note to the changelog why we need to setup new_func for nop functions, please? It's not obvious because of the hack in klp_ftrace_handler() (klp_cancel_transition()->...->klp_check_stack_func() needs it).
Miroslav
|  |