On Wed, 1 Apr 2015, Minfei Huang wrote: > > > diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c > > > index 3f9f1d6..0266950 100644 > > > --- a/kernel/livepatch/core.c > > > +++ b/kernel/livepatch/core.c > > > @@ -502,6 +502,17 @@ static int __klp_disable_patch(struct klp_patch *patch) > > > return 0; > > > } > > > > > > +static int __klp_disable_patch_nolock(struct klp_patch *patch) > > > +{ > > > + int ret = 0; > > > + > > > + ret = __klp_disable_patch(patch); > > > + if (ret) > > > + return ret; > > > + module_put(patch->mod); > > > + return ret; > > > +} > > > + > > > > Your patch doesn't solve the problem at all. > > > > There is no guarantee that once __klp_disable_patch() returns noone is > > using the old code any more. > > > > Yes, thanks. > > The __klp_disable_patch only guarantees that we will never call the > function in patch module. For now, patch module can never be removed > from the kernel once it was loaded. It may be inconvenience if we want > re-load a new patch module replace the old patch module. Patch stacking is possible though. -- Jiri Kosina 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