On Tue, Feb 17, 2015 at 04:48:39PM +0100, Miroslav Benes wrote: > On Tue, 17 Feb 2015, Josh Poimboeuf wrote: > > > On Mon, Feb 16, 2015 at 03:19:10PM +0100, Miroslav Benes wrote: > > > On Mon, 9 Feb 2015, Josh Poimboeuf wrote: > > > > > [...] > > > > > + > > > > +void klp_unpatch_objects(struct klp_patch *patch) > > > > +{ > > > > + struct klp_object *obj; > > > > + > > > > + for (obj = patch->objs; obj->funcs; obj++) > > > > + if (obj->patched) > > > > + klp_unpatch_object(obj); > > > > +} > > > > > > Maybe we should introduce for_each_* macros which could be used in the > > > code and avoid such functions. I do not have strong opinion about it. > > > > Yeah, but each such loop seems to differ a little bit, so I'm not quite > > sure how to structure the macros such that they'd be useful. Maybe for > > a future patch. > > Yes, that is correct. The code in the caller of klp_unpatch_objects would > look something like this > > klp_for_each_object(obj, patch->objs) > if (obj->patched) > klp_unpatch_object(obj) Yeah, that is slightly more readable and less error prone. I'll do it. > > > and externs for functions are redundant. > > > > I agree, but it seems to be the norm in Linux. I have no idea why. I'm > > just following the existing convention. > > Yes, I know. It seems that each author does it differently. You can find > both forms even in one header file in the kernel. There is no functional > difference AFAIK (it is not the case for variables of course). So as long > as we are consistent I do not care. And since we have externs already in > livepatch.h... you can scratch this remark if you want to :) Ok. If there are no objections, let's stick with our existing nonsensical convention for now :-) -- Josh -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html