On Thu, Nov 29, 2018 at 10:44:28AM +0100, Petr Mladek wrote: > +static void __klp_free_funcs(struct klp_object *obj, bool free_all) > { > - struct klp_func *func; > + struct klp_func *func, *tmp_func; > + > + klp_for_each_func_safe(obj, func, tmp_func) { > + if (!free_all && !func->nop) > + continue; I suspect that changing 'free_all" to 'nops_only' (and inverting the condition) would make the code more readable. And a similar suggestion for __klp_free_objects(). > + > + /* > + * Avoid double free. It would be tricky to wait for kobject > + * callbacks when only NOPs are handled. > + */ > + list_del(&func->node); I've read this comment several times but I still have no idea how it relates to the code :-) And a similar comment for __klp_free_objects(). -- Josh