On Fri, 21 Nov 2014, Jiri Kosina wrote: [...] > [ ... snip ... ] > > +static int klp_init_patch(struct klp_patch *patch) > > +{ > > + int ret; > > + > > + mutex_lock(&klp_mutex); > > + > > + /* init */ > > + patch->state = LPC_DISABLED; > > + > > + /* sysfs */ > > + ret = kobject_init_and_add(&patch->kobj, &klp_ktype_patch, > > + klp_root_kobj, patch->mod->name); > > + if (ret) > > + return ret; > > klp_mutex is leaked locked here. > > > + > > + /* create objects */ > > + ret = klp_init_objects(patch); > > + if (ret) { > > + kobject_put(&patch->kobj); > > + return ret; > > And here as well. > > All in all, this is looking very good to me. I think we are really close > to having a code that all the parties would agree with. Thanks everybody, The leaking is my fault. I missed that somehow during rebasing. Seth, could you please fix it in v4? Thanks -- Miroslav Benes SUSE Labs -- 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